GeekProxy в changedetection.io

changedetection.io следит за изменениями страниц и даёт выбрать прокси на каждый watch. Встроенный сканер прогоняет страницу через все прокси из списка и показывает, какие из них ловят 403. Прокси берутся из вкладки настроек, JSON-файла или переменных окружения. В гайде разбираем все три слоя, выбор прокси на watch, кнопку Check/Scan all и одну ловушку с SOCKS5.

Что нужно: активный план GeekProxy и данные прокси из кабинета. Настройка занимает минут пять.

Получить прокси

1 Перед началом

changedetection.io открытый проект. Запускается из Docker-образа dgtlmoon/changedetection.io или ставится через pip на любом хосте с Docker, включая Docker Desktop на Mac. На момент написания актуален релиз 0.60.10. Есть и хостинговая версия за месячную плату, там прокси называются locations, и свои тоже можно добавить. Гайд идёт по интерфейсу самостоятельной установки.

  • URL прокси начинается с http://, https:// или socks5://, логин и пароль внутри URL
  • Один прокси на watch. Ротации внутри приложения нет, она должна идти от самого прокси
  • SOCKS5 с логином работает только с простым fetcher на requests. Для Chrome или Playwright берите HTTP с логином либо SOCKS5 с белым списком IP
  • Символы #, /, ? и @ в логине или пароле нужно percent-кодировать
  • С версии 0.40.0.4 интерфейс сам предлагает добавить прокси, когда watch получает 403, а в настройках появился свой список прокси

Что понадобится

  • Активный план GeekProxy (ISP, датацентр или Residential Turbo)
  • Данные прокси из кабинета: хост, порт, логин, пароль
  • Запущенный changedetection.io, Docker или pip, с доступом к его настройкам
Ваши данные доступа
  • Поле Откуда взять
  • Протокол HTTP или SOCKS5 с простым fetcher
  • Хост IP или имя шлюза из кабинета
  • Порт из кабинета
  • Логин из кабинета
  • Пароль из кабинета

2 Где взять данные прокси

  1. Войдите в кабинет GeekProxy
  2. Откройте план. У планов с оплатой за IP (датацентр, ISP) список адресов, порты, логин и пароль лежат прямо на карточке, а кнопка Export отдаёт весь список текстом
  3. У резидентских и мобильных планов нажмите Options. Панель Proxy Configuration соберёт строку логина со страной, городом и настройками сессии. Готовую строку копируйте из Proxy List
  4. Склейте четыре значения в один URL: http://LOGIN:PASSWORD@IP:PORT. Больше приложение ничего не спросит

Если планируете браузерный fetcher с SOCKS5, переведите план на белый список IP в кабинете и добавьте внешний адрес сервера, где крутится контейнер. Тогда в URL вообще не будет логина. HTTP с логином ничего такого не требует.

changedetection.io, проверка прокси
Кабинет GeekProxy, список Subscriptions с активными планами и кнопкой Export

3 Три места, где живёт прокси

Переменные окружения самый грубый инструмент. HTTP_PROXY, HTTPS_PROXY и NO_PROXY на контейнере заворачивают всё приложение, включая уведомления. Есть и переменные под конкретный fetcher, например playwright_proxy_server с парой для логина и пароля. Этот слой нужен, когда каждый watch должен выходить с одного адреса:

docker run -e HTTPS_PROXY="http://LOGIN:PASSWORD@IP:PORT" ... dgtlmoon/changedetection.io

Список прокси это слой, которым вы и будете пользоваться. У него два источника, и приложение их объединяет: файл proxies.json в каталоге datastore и строки, которые вы вводите в Settings. У файла есть одно преимущество, поле reuse_time_minimum, минимальное число секунд между вызовами через этот прокси. В compose-файле он монтируется как ./proxies.json:/datastore/proxies.json.

{
  "none": { "label": "No proxy - Direct" },
  "geekproxy-isp": {
    "label": "GeekProxy ISP",
    "url": "http://LOGIN:PASSWORD@IP:PORT/"
  },
  "geekproxy-turbo": {
    "label": "GeekProxy Turbo (5 minute recheck limit)",
    "url": "http://LOGIN:PASSWORD@IP:PORT/",
    "reuse_time_minimum": 300
  }
}

Запись без url, как none выше, становится вариантом «без прокси». Третье место это сам watch, который выбирает одну метку из объединённого списка. Раздел 5.

changedetection.io, proxies.json
proxies.json для changedetection.io с записью без прокси и двумя записями GeekProxy

4 Добавляем прокси в Settings

  1. Откройте SETTINGS в верхней панели и перейдите на вкладку CAPTCHA & Proxies
  2. Найдите блок Extra Proxies. В нём пять строк, в каждой Name и Proxy URL
  3. Впишите короткое имя и вставьте http://LOGIN:PASSWORD@IP:PORT. Оба поля обязательны, форма сама скажет, если одно пустое
  4. Сохраните. Потом откройте вкладку Requests и поставьте Default proxy на это имя, если через него должны ходить все watch

Имя потом покажется в редакторе watch, так что называйте узнаваемо, например план и страну. Подсказка в строке напоминает допустимые формы: socks5:// или обычный http://user:pass@.... Всё, что не начинается с http, https или socks5, отбрасывается при сохранении. Когда список есть, вариант No proxy добавляется сам, если не выставить ENABLE_NO_PROXY_OPTION в False.

changedetection.io, Settings → CAPTCHA & Proxies
Вкладка CAPTCHA & Proxies в настройках changedetection.io: две дополнительные прокси и подсказка про SOCKS5 под ними.

Подсказка под строками и есть ловушка этого приложения: SOCKS5 с авторизацией поддерживается только простым fetcher на requests. С Chrome или Playwright, а именно они нужны для Browser Steps, берите HTTP с логином или SOCKS5 с IP вашего сервера в белом списке GeekProxy.

5 Прокси на watch и сканер

  1. Откройте watch через EDIT и перейдите на вкладку Request
  2. Переключатель Proxy перечисляет все метки из файла и строк настроек плюс Default. Выберите одну
  3. Нажмите Check/Scan all. Приложение запросит URL этого watch через каждый прокси из списка и покажет по каждому OK, Access denied, код ответа и время
  4. Сохраните с тем прокси, который прошёл быстрее всех

Порядок разрешения простой: выбор самого watch, потом Default из Settings, потом первая запись списка. Сканер и есть причина держать несколько записей, даже если нужна одна. Страница с ценой, которая начала отдавать 403 с датацентрового адреса, перепроверяется через ISP или резидентскую строку одним кликом, и результат тут же. В официальном туториале это звучит так: четыре прокси получили Access Denied, четыре готовы к бою. Та же страница, та же минута, разные выходы.

changedetection.io, вкладка Request у watch
Вкладка Request у отслеживаемой страницы в changedetection.io: список прокси и кнопка Check/Scan all.
changedetection.io, результат Check/Scan all
Результат проверки прокси в changedetection.io: у каждой прокси отметка OK или X, время ответа и пометка 403 Access denied.

6 Проверка работы

Добавьте watch на https://ipinfo.io/json, выберите запись GeekProxy на его вкладке Request и перепроверьте. Откройте полученный текст: поле ip должно показать адрес прокси, а не адрес сервера. На плане ISP или датацентра это адрес из кабинета, на Residential Turbo любой адрес из пула в выбранной стране. Check/Scan all на том же watch заодно измерит задержку каждой записи.

Из шелла на хосте тот же вопрос в одну строку:

curl -x http://LOGIN:PASSWORD@IP:PORT https://ipinfo.io/json

7 Какой продукт GeekProxy подходит

Один прокси на watch, перепроверки раз в несколько минут или часов, и дроссель, который вы задаёте сами. Естественный выбор ISP-прокси: один стабильный чистый адрес на группу watch, HTTP или SOCKS5, с режимом белого списка для браузерного fetcher. Датацентр IPv4 делает то же для нетребовательных сайтов дешевле за адрес. Для магазинов, которые режут и то и другое, или когда страницу надо видеть из нужной страны, строка Residential Turbo в ротационном режиме даёт каждой перепроверке свежий домашний IP, а липкий логин держит один, когда watch нужна стабильность. Residential Flex добавляет фильтр выхода по Windows для страниц, которые сверяют ОС клиента с браузером, только в форме HTTP.

8 Частые проблемы

Proxy URLs must start with http://, https:// or socks5://

Вы вставили ip:port или ip:port:user:pass. Соберите URL заново: схема впереди, логин и пароль перед @.

Запись SOCKS5 работает на одном watch и падает на другом

Падающий watch использует браузерный fetcher, который не умеет авторизацию SOCKS. Переведите этот watch на HTTP с логином либо добавьте IP сервера в белый список и уберите логин из URL.

Логин со спецсимволами не проходит

#, /, ? или @ в логине или пароле ломают URL. Закодируйте эти символы percent-кодированием.

В скане все прокси показывают Access denied

Сайт блокирует весь этот класс адресов, либо план истёк. Сначала загляните в кабинет, потом добавьте в тот же скан резидентскую запись.

Поставил reuse_time_minimum в строке настроек, и ничего не изменилось

В строках настроек только Name и Proxy URL. Этот дроссель живёт в proxies.json.

Не получается? Напишите нам в Telegram, Discord или в чат на сайте. Обычно отвечаем в течение нескольких минут.

Прокси для changedetection.io

Статические ISP-адреса на каждый watch или одна ротируемая резидентская строка, HTTP и SOCKS5, готово за секунды.

Заказать

We use cookies to improve user experience. By clicking "Yes, I agree", you consent to this use of cookies.

Привилегия первых: В честь глобального запуска [мы даем скидку 50%+] на все датацентр тарифы. Эксклюзивное предложение для наших стартовых партнеров.