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 Где взять данные прокси
- Войдите в кабинет GeekProxy
- Откройте план. У планов с оплатой за IP (датацентр, ISP) список адресов, порты, логин и пароль лежат прямо на карточке, а кнопка Export отдаёт весь список текстом
- У резидентских и мобильных планов нажмите Options. Панель Proxy Configuration соберёт строку логина со страной, городом и настройками сессии. Готовую строку копируйте из Proxy List
- Склейте четыре значения в один URL:
http://LOGIN:PASSWORD@IP:PORT. Больше приложение ничего не спросит
Если планируете браузерный fetcher с SOCKS5, переведите план на белый список IP в кабинете и добавьте внешний адрес сервера, где крутится контейнер. Тогда в URL вообще не будет логина. HTTP с логином ничего такого не требует.
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.

4 Добавляем прокси в Settings
- Откройте SETTINGS в верхней панели и перейдите на вкладку CAPTCHA & Proxies
- Найдите блок Extra Proxies. В нём пять строк, в каждой Name и Proxy URL
- Впишите короткое имя и вставьте
http://LOGIN:PASSWORD@IP:PORT. Оба поля обязательны, форма сама скажет, если одно пустое - Сохраните. Потом откройте вкладку Requests и поставьте Default proxy на это имя, если через него должны ходить все watch
Имя потом покажется в редакторе watch, так что называйте узнаваемо, например план и страну. Подсказка в строке напоминает допустимые формы: socks5:// или обычный http://user:pass@.... Всё, что не начинается с http, https или socks5, отбрасывается при сохранении. Когда список есть, вариант No proxy добавляется сам, если не выставить ENABLE_NO_PROXY_OPTION в False.

Подсказка под строками и есть ловушка этого приложения: SOCKS5 с авторизацией поддерживается только простым fetcher на requests. С Chrome или Playwright, а именно они нужны для Browser Steps, берите HTTP с логином или SOCKS5 с IP вашего сервера в белом списке GeekProxy.
5 Прокси на watch и сканер
- Откройте watch через EDIT и перейдите на вкладку Request
- Переключатель Proxy перечисляет все метки из файла и строк настроек плюс Default. Выберите одну
- Нажмите Check/Scan all. Приложение запросит URL этого watch через каждый прокси из списка и покажет по каждому OK, Access denied, код ответа и время
- Сохраните с тем прокси, который прошёл быстрее всех
Порядок разрешения простой: выбор самого watch, потом Default из Settings, потом первая запись списка. Сканер и есть причина держать несколько записей, даже если нужна одна. Страница с ценой, которая начала отдавать 403 с датацентрового адреса, перепроверяется через ISP или резидентскую строку одним кликом, и результат тут же. В официальном туториале это звучит так: четыре прокси получили 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.
Прокси для changedetection.io
Статические ISP-адреса на каждый watch или одна ротируемая резидентская строка, HTTP и SOCKS5, готово за секунды.
Заказать