Командная строка · 1 мин чтения

Proxychains: как сцепить SOCKS5-прокси в цепочку

proxychains-ng прогоняет любую консольную программу через один или несколько прокси — даже те, что вообще не умеют в прокси. Показываем установку, настройку SOCKS5, построение цепочки из нескольких узлов и как не наступить на классическую утечку DNS.

Что делает proxychains

proxychains-ng (поддерживаемый форк proxychains) — это инструмент, который перехватывает сетевые вызовы программы и заставляет их идти через прокси, даже если в самой программе никаких настроек прокси нет. Вы дописываете перед любой командой proxychains4 — и её TCP-соединения идут через прокси из вашего конфига. В Kali и в пентест-работе это базовый инструмент именно потому, что работает с утилитами, которые иначе ходили бы в сеть напрямую.

Он поддерживает прокси HTTP, SOCKS4 и SOCKS5 и умеет сцеплять несколько из них, чтобы трафик проходил через несколько хопов подряд. Одно важное ограничение стоит знать сразу: proxychains работает через подмену библиотечных вызовов, поэтому влияет только на динамически слинкованные программы — статически слинкованные бинарники и часть утилит его обходят. И он маршрутизирует TCP, а не «сырые» UDP или ICMP (то есть обычный ping через него не пойдёт).

Стоит разобраться с тремя режимами цепочки, потому что при сбоях они ведут себя совершенно по-разному. В strict_chain трафик обязан пройти через каждый перечисленный прокси в точно заданном порядке, и если хотя бы один лежит, соединение не установится — это то, что нужно, когда важны порядок и каждый хоп. В dynamic_chain proxychains пропускает мёртвые прокси и использует остальные по порядку, что снисходительнее к нестабильным спискам. В random_chain для каждого соединения берётся случайное подмножество — полезно, чтобы рассеять трафик, но непредсказуемо. Что бы вы ни выбрали, помните: каждый лишний хоп умножает задержку и добавляет ещё одного оператора, который видит метаданные вашего соединения, так что сцепляйте осознанно, а не накидывайте прокси ради смутного ощущения «большей безопасности».

Установка и настройка

На Debian/Ubuntu/Kali; конфиг лежит в /etc/proxychains4.conf или ~/.proxychains/proxychains.conf.

Установите proxychains-ng

Поставьте пакет: apt install proxychains4 на системах на базе Debian — или соберите proxychains-ng из исходников, если нужна самая свежая версия.

Отредактируйте конфиг

Откройте файл конфигурации. Выберите режим цепочки (strict_chain, dynamic_chain или random_chain) и — это критично — включите proxy_dns, чтобы DNS тоже шёл через цепочку.

Добавьте свой прокси в конец

В секции [ProxyList] допишите строку со своим SOCKS5: тип, хост, порт, а для прокси с аутентификацией — ещё имя пользователя и пароль. SOCKS5 в s4m слушает порт 1080.

Запустите команду через него

Добавьте proxychains4 перед любой командой — например, proxychains4 curl https://api.ipify.org — и убедитесь, что исходящий IP принадлежит прокси, а не вам.

Пример proxychains4.conf

Включите proxy_dns, чтобы не утекали DNS-запросы, выберите режим цепочки и перечислите свои прокси. В strict_chain трафик проходит через каждый прокси по порядку.

ini
# /etc/proxychains4.conf

# Route all connections through the proxies in ORDER, all must be up:
strict_chain
# (alternatives: dynamic_chain = skip dead ones; random_chain = random subset)

# CRITICAL: resolve DNS through the chain, not your local resolver:
proxy_dns

[ProxyList]
# type   host                 port  user  pass
socks5   proxy.s4m.online     1080  USER  PASS
# Chain a second hop by adding another line below (strict_chain):
# socks5 another.proxy.host   1080  USER2 PASS2

# Usage:
#   proxychains4 curl https://api.ipify.org
#   proxychains4 nmap -sT -Pn target      (TCP connect scan only)
Поделиться страницей
FAQ

Ответы на вопросы

Как не дать proxychains сливать DNS?

Включите опцию proxy_dns в proxychains4.conf. Без неё DNS-запросы идут к вашему локальному резолверу и выдают домены, которые вы посещаете, даже если сами соединения проксируются. С ней имена разрешаются через цепочку прокси.

Умеет ли proxychains пускать ping или UDP?

Нет. proxychains работает на уровне TCP-соединений, подменяя библиотечные вызовы, поэтому «сырой» ICMP (ping) или произвольный UDP он не проксирует. К тому же он действует только на динамически слинкованные программы. Если нужно прозрачно маршрутизировать не-TCP трафик, берите полноценный VPN.

Можно ли сцепить несколько прокси в proxychains?

Да. Добавьте несколько строк в секцию [ProxyList]. В режиме strict_chain трафик проходит через все по очереди; dynamic_chain пропускает те, что лежат; random_chain берёт случайное подмножество. Каждый лишний хоп добавляет задержку, так что сцепляйте ровно столько, сколько нужно.

Возьмите SOCKS5-эндпоинт для цепочки

s4m даёт аутентифицированные прокси SOCKS5 на порту 1080 — готовые к подстановке в proxychains. Оплата за трафик, бесплатный список прокси для тестов, анонимные аккаунты и оплата криптовалютой.

Эту страницу нашли по запросу

Реальные поисковые фразы, на которые отвечает эта страница — по ссылкам откроются материалы, раскрывающие тему глубже.