Чекер прокси для Linux и macOS на bash с проверкой RBL

remcheck.sh проверяет список прокси в сотни потоков прямо на сервере: кто отвечает, как быстро и с какого IP выходит. Во втором режиме скрипт ещё и сверяет выходные IP с 17 спам-списками.

  • bash и curl, без установки
  • до 1000 потоков
  • режимы connect и RBL
  • бесплатно

Версия 1.2 · 17.7 КБSHA-256 cfad8abe4c98e914f58f34eec7acc50ed1c821c830a6c3b300cbcba0bf6298ce

Терминал проверяет сотни прокси: зелёные и красные индикаторы связаны с узлами сети

Запуск за минуту

Ставить ничего не нужно: bash, curl и стандартные утилиты уже есть в macOS и в большинстве Linux-серверов. Скрипт проверит их при запуске и подскажет команду установки, если чего-то не хватит.

  1. Скачайте скрипт

    Прямо на сервер, где будут работать прокси.

    curl -fsSLO https://remproxy.com/files/remcheck.sh
  2. Разрешите запуск

    Один раз после скачивания.

    chmod +x remcheck.sh
  3. Проверьте список

    Дайте ссылку на список из панели: your_proxy_id у каждой подписки свой. Файл на диске тоже подойдёт: ./remcheck.sh -f proxies.txt. Результаты появятся в новой папке рядом со скриптом.

    ./remcheck.sh -P socks5 -f https://proxy.remproxy.com/your_proxy_id.csv
Если скрипт пишет missing tools

Так бывает на минимальных образах Debian и Alpine и в Docker-контейнерах. Установите недостающее одной командой для вашей системы:

Debian / Ubuntu
sudo apt-get update && sudo apt-get install -y curl gawk coreutils grep sed
CentOS / Rocky / Alma / Fedora
sudo dnf install -y curl gawk coreutils grep sed
Alpine
apk add bash curl coreutils gawk grep sed

macOS: всё уже есть, ставить ничего не нужно.

Два режима

connect: живые и быстрые

Скрипт открывает через каждый прокси страницу, которая возвращает IP, и записывает время ответа. Живые прокси попадают в alive.txt, самые быстрые сверху.

./remcheck.sh -f proxies.txt -n 200 -T 8

rbl: живые и чистые

Каждый выходной IP сверяется с 17 спам-списками через DNS over HTTPS. Для CSV из панели RemProxy скрипт берёт адреса из колонки real_ip, поэтому проверка идёт сразу, без соединений через прокси. Другие списки сначала проходят connect. Чистые прокси идут в clean.txt, найденные в списках в listed.txt.

./remcheck.sh -f proxies.txt -m rbl -n 100

Параметры

-f LIST
Список прокси: файл, ссылка http(s) или - для чтения из stdin.
-m MODE
Режим: connect (по умолчанию) или rbl.
-n NUM
Сколько прокси проверять одновременно, по умолчанию 64, максимум 1000. В режиме rbl то же число задаёт, сколько IP одновременно уходит в спам-списки: без -n это 128, максимум 256.
-T SEC
Тайм-аут на прокси в секундах, по умолчанию 10.
-P PROTO
Протокол для строк без схемы: http (по умолчанию), socks5 или socks4.
-e URL
Страница, которую скрипт открывает через прокси. Она должна отвечать IP-адресом, по умолчанию ipv4.icanhazip.com.
-d DIR
Папка для результатов, по умолчанию remcheck-ДАТА-ВРЕМЯ.
-C
Режим rbl с CSV RemProxy: всё равно подключаться через каждый прокси, а не брать IP из колонки real_ip.
-q
Без строки прогресса. Под cron она выключается сама.

Форматы списка

Скрипт понимает разные записи в одном файле, повторы и пустые строки пропускает. CSV из панели RemProxy тоже подходит.

host:port
host:port:user:pass
user:pass@host:port
socks5://user:pass@host:port
ip;port;country;speed;uptime;real_ip

Что появится в папке

  • alive.txtРабочие прокси, самые быстрые сверху.
  • dead.txtПрокси, которые не ответили.
  • results.tsvТаблица: прокси, статус, выходной IP, время в мс, в режиме rbl ещё и списки.
  • clean.txtРежим rbl: живые прокси с чистым выходным IP.
  • listed.txtРежим rbl: живые прокси, чей IP найден в спам-списках.

Проверка списка RemProxy

Ссылка на CSV из панели работает напрямую. В режиме rbl скрипт берёт выходные IP из колонки real_ip, проверяет каждый адрес один раз и не подключается через прокси. В работе сразу 128 адресов, 1000 IP занимают меньше минуты. В итоге видно число и процент чистых и найденных в списках прокси и адресов.

./remcheck.sh -f https://proxy.remproxy.com/your_proxy_id.csv -m rbl

Держите -n не выше числа потоков в вашем пакете, иначе часть проверок упрётся в лимит и попадёт в мёртвые.

Если IP нет в белом списке

Список отдаётся только на IP из белого списка подписки. Если этой машины там нет, скрипт остановится и покажет её IP: откройте panel.remproxy.com/subscriptions, выберите подписку, в разделе «Доступ» добавьте этот IP в «Разрешённые IP» и повторите проверку. В журнале cron этот случай виден по коду выхода 3.

remcheck: the list server rejected this machine, its IP is not in the subscription whitelist.
  IP of this machine:        203.0.113.7
  Allowed IPs of the plan:   198.51.100.20
Узнать IP этой машины

Проверка по расписанию

Периодического режима в скрипте нет: расписание ведёт cron. Проверка запускается сама, а свежий результат всегда лежит в одной папке.

  • Откройте расписание командой crontab -e.
  • Добавьте строку ниже: проверка каждые 30 минут, результаты в папку remcheck-latest, журнал в remcheck.log.
  • Сохраните файл. Посмотреть расписание можно командой crontab -l.
crontab -e
*/30 * * * * $HOME/remcheck.sh -P socks5 -f https://proxy.remproxy.com/your_proxy_id.csv -d $HOME/remcheck-latest -q >> $HOME/remcheck.log 2>&1

В macOS cron работает так же, но к папкам Документы и Рабочий стол ему нужен полный доступ к диску. Проще держать скрипт и список в домашней папке.

Что нужно: bash 3.2 или новее, curl, awk, sed, grep, sort. В Windows скрипт работает в Git Bash или WSL, инструкция ниже.

Запуск в Windows

Своего bash в Windows нет, его приносит Git for Windows: в Git Bash есть bash, curl и нужные скрипту утилиты. Скрипт работает там без изменений.

  1. Установите Git for Windows с сайта git-scm.com, настройки установщика можно не менять.
  2. Откройте Git Bash из меню «Пуск».
  3. Создайте папку и скачайте в неё скрипт:
    mkdir -p /c/remcheck && cd /c/remcheck && curl -fsSLO https://remproxy.com/files/remcheck.sh
  4. Запустите проверку. Префикс bash заменяет chmod:
    bash remcheck.sh -P socks5 -f https://proxy.remproxy.com/your_proxy_id.csv -n 100
  5. Результаты лежат в C:\remcheck\remcheck-ДАТА-ВРЕМЯ. В Windows процессы запускаются медленнее, чем в Linux, поэтому начните с -n 100.

Расписание в Windows

  • Откройте «Планировщик заданий» и выберите «Создать простую задачу».
  • Триггер «Ежедневно». Потом в свойствах задачи на вкладке «Триггеры» включите повтор каждые 30 минут.
  • Действие «Запустить программу». Программа и аргументы ниже.
    Программа
    C:\Program Files\Git\bin\bash.exe
    Аргументы
    -lc "/c/remcheck/remcheck.sh -P socks5 -f https://proxy.remproxy.com/your_proxy_id.csv -d /c/remcheck/latest -q"
  • Сохраните задачу. Свежие результаты будут в C:\remcheck\latest.

Если на сервере включён WSL, запускайте скрипт в его Ubuntu так же, как в Linux.

Вопросы и ответы

01Сколько потоков ставить?
Серверу с каналом 100 Мбит/с хватает 100–300. Каждая проверка это один короткий запрос, поэтому темп чаще ограничивают тайм-ауты, а не канал. Для списка RemProxy не превышайте число потоков пакета.
02Почему все прокси из списка RemProxy мёртвые?
Если список скачивается по ссылке, скрипт сам распознает отказ и покажет IP машины: добавьте его в «Разрешённые IP» подписки. Если вы проверяете файл, запустите скрипт на машине из белого списка. Её IP видно на странице «Мой IP» или по команде curl -4 ifconfig.me.
03Зачем режим rbl, если прокси и так работают?
Почтовые серверы и часть сайтов отказывают адресам из спам-списков. Режим rbl отделяет такие выходы, чтобы задачи, где важна репутация, шли только через чистые IP.
04Скрипт куда-то отправляет мои прокси?
Нет. В режиме connect через каждый прокси уходит один запрос к ipv4.icanhazip.com, в режиме rbl скрипт спрашивает о выходных IP DNS Google и Cloudflare. Результаты остаются в папке на вашей машине.
05Как проверить SOCKS5?
Укажите схему в строке, например socks5://host:port, или добавьте -P socks5 для всего списка. Порты RemProxy принимают и HTTP, и SOCKS5.

Нужен пул для массовых проверок?

Пулы МИКС до 25 000 IP, безлимитный трафик, HTTP и SOCKS5 на одном порту, доступ по IP. Тестовый час стоит $1.

Смотреть пакеты
ВХОД/РЕГИСТРАЦИЯ