ProxyChains-NG вер 4.17 README
ProxyChains — это UNIX-программа, которая перехватывает сетевые функции libc
в ДИНАМИЧЕСКИ СВЯЗАННЫХ программах через предзагружаемую DLL (dlsym(), LD_PRELOAD)
и перенаправляет соединения через SOCKS4a/5 или HTTP-прокси.
Поддерживается только TCP (без UDP/ICMP и т.п.).
Принцип работы по сути является ХАКОМ; поэтому возможно, что она не
будет работать с вашей программой, особенно если это скрипт, или если она
запускает множество процессов, таких как фоновые демоны, или использует dlopen() для загрузки
"модулей" (ошибка в динамическом линкере glibc).
Однако она должна работать с простыми скомпилированными (C/C++) динамически связанными программами.
Если ваша программа не работает с proxychains, рассмотрите использование
решения на основе iptables; оно гораздо более надёжно.
Поддерживаемые платформы: Linux, BSD, Mac, Haiku.
*********** ВНИМАНИЕ ***********
эта программа может использоваться для обхода цензуры.
делать это может быть ОЧЕНЬ ОПАСНО в некоторых странах.
ВСЕГДА УБЕДИТЕСЬ, ЧТО PROXYCHAINS РАБОТАЕТ КАК ОЖИДАЕТСЯ,
ПРЕЖДЕ ЧЕМ ИСПОЛЬЗОВАТЬ ЕГО ДЛЯ ЧЕГО-ЛИБО СЕРЬЁЗНОГО.
это касается как программы, так и прокси, который вы собираетесь
использовать.
например, вы можете подключиться к какому-нибудь сервису "what is my ip"
вроде ifconfig.me, чтобы убедиться, что он не использует ваш реальный ip.
ИСПОЛЬЗУЙТЕ PROXYCHAINS ТОЛЬКО ЕСЛИ ВЫ ЗНАЕТЕ, ЧТО ДЕЛАЕТЕ.
АВТОРЫ И СОПРОВОЖДАЮЩИЕ PROXYCHAINS НЕ НЕСУТ НИКАКОЙ
ОТВЕТСТВЕННОСТИ ЗА ЛЮБОЕ ЗЛОУПОТРЕБЛЕНИЕ ИЛИ НЕПРАВИЛЬНОЕ ИСПОЛЬЗОВАНИЕ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И
ВОЗНИКАЮЩИЕ В РЕЗУЛЬТАТЕ ПОСЛЕДСТВИЯ.
*** Установка ***
требуется работающий компилятор C, предпочтительно gcc
./configure --prefix=/usr --sysconfdir=/etc
make
[необязательно] sudo make install
[необязательно] 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 localnets
- более дружелюбное сообщение об ошибке при сбое 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 для списка прокси
- исправлен бесконечный цикл в режиме round robin, когда все прокси недоступны (#147)
- исправлена компиляция на android (#265)
- исправлена утечка fd в форкнутых процессах (#273)
- пропуск попытки подключения к nullrouted ip
- разрешены имена хостов для списка прокси при определённых обстоятельствах
Версия 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:
- исправлена регрессия в цели Makefile install-config из версии 4.8
Версия 4.8:
- исправление для редкого краевого случая, когда getaddrinfo использовался с AI_NUMERICHOST
для проверки числового ip вместо его разрешения (исправляет nmap).
- разрешено использование с программами, которые сами полагаются на LD_PRELOAD
- отклонение неверных записей в конфигурационном файле
- вывод номера версии при запуске
Версия 4.7:
- новый round_robin chaintype от crass.
- исправлена ошибка с ленивым выделением памяти, когда конструктор GCC не использовался.
- новый флаг configure --fat-binary для создания "fat" бинарника/библиотеки на 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()ed),
такие как irssi. для этого была принесена в жертву поддержка компиляции без pthreads.
- исправлена потокобезопасность вызовов gethostent().
- повышена скорость обработки DNS, поскольку hostent db кэшируется.
Версия 4.2:
- исправлены проблемы компиляции с toolchain ubuntu 12.04
- исправлен segfault в редком пути выполнения кода
Версия 4.1
- поддержка mac os x (все архитектуры)
- все внутренние функции потокобезопасны при компиляции с -DTHREAD_SAFE
(по умолчанию).
Версия 4.0
- скрипт dnsresolver (который требовал наличия динамически слинкованного бинарника "dig")
заменён на удалённый DNS-запрос.
это ускоряет любую операцию, связанную с DNS, так как старый скрипт должен был использовать TCP.
кроме того, это позволяет использовать .onion urls при работе с 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-сервисам.
Некоторые классные возможности: