Иногда нужно прогнать готовое приложение через прокси: отладка API, анализ трафика, тестирование доступа через альтернативный сетевой маршрут.
В Linux это делается через
proxychains, который с помощью LD_PRELOAD перехватывает вызовы connect() и связанные DNS-функции, проксируя соединения без изменения самого приложения.Установка:
# Debian/Ubuntu
sudo apt install proxychains4 -y
# Arch
sudo pacman -S proxychains-ng
# RHEL/CentOS (обычно через EPEL или совместимые репозитории)
sudo yum install proxychains-ng
В большинстве дистрибутивов используется
proxychains-ng — поддерживаемая реализация proxychains.Настройка: конфиг обычно лежит в
/etc/proxychains4.conf или /etc/proxychains.conf.sudo nano /etc/proxychains4.conf
Добавляем прокси:
socks5 127.0.0.1 9050
Можно указать SOCKS4/5 или HTTP CONNECT-прокси. Частый кейс — Tor или локальный прокси анализатора (Burp/ZAP).
Использование:
proxychains curl https://example.com
proxychains перехватывает вызовы connect() и DNS-функции, поэтому приложение продолжает работать как обычно, но его исходящие соединения идут через прокси:proxychains git clone https://github.com/repo.git
Подходит для многих CLI-утилит, использующих стандартные сетевые вызовы через libc (но не для всех).
Практический пример:
proxychains firefox
Можно прогнать трафик через Tor или анализатор. С браузерами возможны нюансы из-за их архитектуры и многопроцессности — иногда надёжнее использовать встроенные настройки прокси.
Ограничения и нюансы: работает только с dynamically linked бинарями (из-за
LD_PRELOAD), статически скомпонованные — не поддерживаются; некоторые приложения обходят libc, поэтому трафик может не проксироваться. Возможны проблемы с DNS (иногда требуется proxy_dns).🔥 Минимальный способ управлять сетевым поведением приложений без правки кода.
🚪 Linux Ready | #практика