ProxyChains-NG версия 4.17 README
ProxyChains — это UNIX-программа, которая перехватывает сетевые функции libc
в ДИНАМИЧЕСКИ СВЯЗАННЫХ программах через предварительно загружаемую DLL (dlsym(), LD_PRELOAD)
и перенаправляет соединения через прокси SOCKS4a/5 или HTTP.
Она поддерживает только TCP (без UDP/ICMP и т.п.).
По сути, это ХАК; поэтому вполне возможно, что он не будет
работать с вашей программой, особенно если это скрипт, или она запускает
множество процессов, например фоновые демоны, или использует dlopen() для загрузки
«модулей» (ошибка в glibc dynlinker).
Однако он должен работать с простыми скомпилированными (C/C++) динамически связанными
программами.
Если ваша программа не работает с proxychains, рассмотрите возможность использования
решения на основе iptables; оно гораздо надёжнее.
Поддерживаемые платформы: Linux, BSD, Mac, Haiku.
*********** ВНИМАНИЕ ***********
эта программа может использоваться для обхода цензуры.
в некоторых странах это может быть ОЧЕНЬ ОПАСНО.
ВСЕГДА УБЕДИТЕСЬ, ЧТО PROXYCHAINS РАБОТАЕТ КАК ОЖИДАЕТСЯ,
ПРЕЖДЕ ЧЕМ ИСПОЛЬЗОВАТЬ ЕГО ДЛЯ ЧЕГО-ЛИБО СЕРЬЁЗНОГО.
это касается как самой программы, так и прокси, который вы собираетесь
использовать.
например, вы можете подключиться к какому-нибудь сервису «какой у меня ip»,
например ifconfig.me, чтобы убедиться, что используется не ваш реальный ip.
ИСПОЛЬЗУЙТЕ PROXYCHAINS ТОЛЬКО В ТОМ СЛУЧАЕ, ЕСЛИ ПОНИМАЕТЕ, ЧТО ДЕЛАЕТЕ.
АВТОРЫ И СОПРОВОЖДАЮЩИЕ PROXYCHAINS НЕ НЕСУТ НИКАКОЙ
ОТВЕТСТВЕННОСТИ ЗА ЛЮБОЕ ЗЛОУПОТРЕБЛЕНИЕ ИЛИ НЕПРАВИЛЬНОЕ ИСПОЛЬЗОВАНИЕ ЭТОГО
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И ВОЗНИКАЮЩИЕ В РЕЗУЛЬТАТЕ ПОСЛЕДСТВИЯ.
*** Установка ***
требуется рабочий компилятор C, желательно gcc
./configure --prefix=/usr --sysconfdir=/etc
make
[optional] sudo make install
[optional] sudo make install-config (устанавливает proxychains.conf)
если вы не устанавливали, вы можете использовать proxychains из каталога сборки
так: ./proxychains4 -f src/proxychains.conf telnet google.com 80
Список изменений:
Версия 4.17
- добавлен хук для функции close_range, исправляющий новые версии openssh
- опция fat-binary-m1 для mac
- исправлена обработка ошибок DNS в proxy_dns_old
- упрощён код инициализации
- исправлена предварительная загрузка на openbsd
- исправлено двойное закрытие в многопоточных приложениях
- различные улучшения скрипта configure
Версия 4.16
- исправлена регрессия в определении флагов компоновщика в скрипте configure
- удалён 10-летний обходной путь для неверной сигнатуры getnameinfo в glibc
- поддержка нового метода перехвата DYLD для OSX Monterey
- исправление компиляции на netbsd
- поддержка локальных сетей IPv6
- более понятное сообщение об ошибке при сбое execvp
- proxy_getaddrinfo(): заполнять ai_socktype, если запрошено
Версия 4.15
- исправлен скрипт configure для версии binutils с ошибками
- инициализация rand_seed с точностью до наносекунд
- добавлена поддержка числового ipv6 в getaddrinfo
- исправлена ошибка в getaddrinfo, когда node равен null и !passive
- добавлена функция dnat
- добавлен тип прокси raw
- добавлена поддержка haiku
- добавлен proxy_dns_old для эмуляции поведения proxychains 3.1
- добавлена новая функция proxy_dns_daemon (экспериментальная)
- прочие исправления
Версия 4.14
- добавлена поддержка альтернативного синтаксиса proto://user:pass@ip:port для proxylist
- исправлена бесконечная петля в режиме round robin, когда все прокси недоступны (#147)
- исправлена компиляция на android (#265)
- исправлена утечка fd в форкнутых процессах (#273)
- пропуск попытки подключения к ip с null-маршрутом
- разрешены имена хостов для proxylist при определённых обстоятельствах
Версия 4.13
- повышена устойчивость потока DNS-запросов и исправлен segfault
- исправлена аутентификация socks5 user/pass на несоответствующих серверах
- исправлена утечка памяти
- добавлена поддержка Solaris
Версия 4.12
- исправлены некоторые проблемы сборки
- для MAC
- с -pie
- с пользовательским CC
- исправление совместимости для некоторых GUI-приложений (8870140)
- исправление совместимости для некоторых HTTP-прокси (cf9a16d)
- исправлены некоторые предупреждения для более чистой сборки на debian
- исправлен random_chain на OSX (0f6b226)
Версия 4.11
- предварительная поддержка IPv6
- исправлена ошибка в hostsreader
- предварительная поддержка использования на OpenBSD (caveat emptor)
Версия 4.10
- исправлена регрессия в порядке компоновки с пользовательскими LDFLAGS
- исправлен segfault в коде сопоставления DNS в программах с более чем ~400 различными запросами
Версия 4.9
- исправлена проблема безопасности CVE-2015-3887
- добавлен хук sendto для обработки флага MSG_FASTOPEN
- проблемный hostentdb заменён на hostsreader
- исправлена компиляция на OpenBSD (хотя там не работает)
Версия 4.8.1:
- исправлена регрессия в цели install-config Makefile в версии 4.8
Версия 4.8:
- исправлен странный крайний случай, когда getaddrinfo использовалась с AI_NUMERICHOST
для проверки числового ip вместо его разрешения (исправляет nmap).
- разрешено использование с программами, которые сами полагаются на LD_PRELOAD
- отклонение некорректных записей в файле конфигурации
- вывод номера версии при запуске
Версия 4.7:
- новый тип цепочки round_robin от crass.
- исправлена ошибка с ленивым выделением памяти, когда конструктор GCC не использовался.
- новый флаг configure --fat-binary для создания «толстого» бинарника/библиотеки на OS X
- возврат EBADF вместо EINTR в хуке close.
программа имеет право повторять вызовы close() при получении
EINTR, что могло вызывать бесконечный цикл, как в chromium.
Версия 4.6:
- некоторые косметические исправления Makefile, исправлена ошибка, когда нечисловой ip
использовался в качестве адреса прокси-сервера.
Версия 4.5:
- перехват close(), чтобы OpenSSH не вмешивался во внутреннюю инфраструктуру.
это приводило к segfault ssh-клиента при проксировании.
Версия 4.4:
- порт для FreeBSD
- исправлены некоторые проблемы установки на Debian и Mac.
Версия 4.3:
- исправлены программы, выполняющие DNS-запросы в дочерних процессах (fork()),
например irssi. для этого была принесена в жертву поддержка компиляции без pthreads.
- исправлена потокобезопасность вызовов gethostent().
- повышена скорость обработки DNS, поскольку база hostent кэшируется.
Версия 4.2:
- исправлены проблемы компиляции с тулчейном ubuntu 12.04
- исправлен segfault в редком пути выполнения кода
Версия 4.1
- поддержка mac os x (все архитектуры)
- все внутренние функции потокобезопасны при компиляции с -DTHREAD_SAFE
(по умолчанию).
Версия 4.0
- скрипт dnsresolver (требовавший наличия динамически слинкованного бинарника «dig»)
заменён на удалённый DNS-запрос.
это ускоряет любые операции, связанные с DNS, так как старый скрипт вынужден был использовать TCP.
кроме того, это позволяет использовать .onion URL при работе с TOR.
- сломанная система сборки autoconf заменена простым Makefile.
правда, для удобства есть скрипт ./configure.
также добавлена поддержка файла конфигурации, передаваемого через аргументы командной строки/
переменные окружения.
Версия 3.0
- поддержка разрешения DNS через прокси
поддерживаются прокси-серверы SOCKS4, SOCKS5 и HTTP CONNECT.
Типы аутентификации: socks - «user/pass», http - «basic».
Когда это использовать?
- Когда единственный способ выйти «наружу» из вашей LAN — через прокси-сервер.
- Чтобы выбраться из-за ограничивающего брандмауэра, фильтрующего исходящие порты.
- Чтобы использовать два (или более) прокси в цепочке:
например: your_host <--> proxy1 <--> proxy2 <--> target_host
- Чтобы «проксировать» программу без встроенной поддержки прокси (например, telnet)
- Доступ к интранету снаружи через прокси.
- Чтобы использовать DNS за прокси.
- Чтобы получать доступ к скрытым tor onion-сервисам.
Некоторые интересные возможности: