
go-http-proxy-to-socks v1.15.6
CLI MITM-прокси, преобразующий SOCKS4/SOCKS5 в HTTP/HTTPS/HTTP2/HTTP3 с прозрачным перенаправлением TCP/UDP, спуфингом ARP/NDP/DNS, перехватом трафика и захватом пакетов. Чистый Go, без libpcap.
GoHPTS — прозрачный прокси HTTP(S) и TCP/UDP к SOCKS4/SOCKS5 прокси (цепочке), написанный на Go

Содержание
- Введение
- Возможности
- Установка
- Использование
- Прозрачный прокси
- Сниффинг трафика
- Поддержка HTTP2 и HTTP3
- Поддержка IPv4 и IPv6
- ARP-спуфинг
- NDP-спуфинг
- DNS-спуфинг
- Захват пакетов
- Сетевые пространства имён
- Смешанный сервер
- Ссылки
- Участие в разработке
- Лицензия
Введение
CLI-инструмент GoHPTS — это мост между HTTP-клиентами и SOCKS5-прокси-сервером или несколькими серверами (цепочкой). Он слушает локально как HTTP-прокси, принимает стандартные HTTP-
или HTTPS-запросы (через CONNECT) и перенаправляет соединение через SOCKS5-прокси. Вдохновлён http-proxy-to-socks и Proxychains
Возможный сценарий использования: вам нужно подключиться к внешнему API через Postman, но этот API доступен только с некоторого удалённого сервера. Следующие команды помогут вам выполнить такую задачу:
Создайте SOCKS5-прокси-сервер через ssh:```shell
ssh -D 1080 -Nf
Создайте HTTP-соединение с SOCKS5 с помощью `gohpts````shell
gohpts -s :1080 -l :8080
Укажите http-сервер в конфигурации прокси Postman
Возможности
-
Функциональность цепочки прокси
Поддерживает цепочкиstrict,dynamic,random,round_robinиз SOCKS4/SOCKS5 прокси -
Прозрачный прокси
Поддерживает режимыredirect(SO_ORIGINAL_DST) иtproxy(IP_TRANSPARENT) -
Поддержка IPv4 и IPv6
Работает в режимахIPv4-only,IPv6-onlyилиdual stack -
Прозрачный прокси TCP и UDP
tproxyиtlocal(IP_TRANSPARENT) обрабатывают трафик TCP и UDP -
Сниффинг трафика
Прокси способен разбирать HTTP-заголовки, TLS-рукопожатие, DNS-сообщения и многое другое -
ARP-спуфинг
Проксирование целых подсетей с помощью подхода ARP-спуфинга -
NDP-спуфинг
Проксирование IPv6-соединений с использованием Router/Neighbor Advertisement и инъекций RDNSS. -
DNS-спуфинг
Перенаправление клиентов на произвольные домены с помощью манипуляции DNS-записями -
Захват пакетов
Захват трафика в файлы txt/pcap/pcapng и анализ с помощью Wireshark -
Защита от утечек DNS
Разрешение DNS происходит на стороне сервера SOCKS5. -
Поддержка метода CONNECT
Поддерживает туннелирование HTTP CONNECT, обеспечивая работу HTTPS и других протоколов на основе TCP. -
Поддержка HTTP2/HTTP3
Поддерживает современный транспорт HTTP/2 и HTTP/3, обеспечивая эффективные мультиплексированные соединения поверх TLS 1.3 -
Поддержка сетевых пространств имён
Поддерживает пользовательские сетевые пространства имён Linux для слушающих сокетов и исходящих соединений -
Поддержка Trailer-заголовков
Обрабатывает HTTP trailer-заголовки -
Chunked Transfer Encoding
Обрабатывает chunked и потоковые ответы -
Поддержка аутентификации SOCKS5
Поддерживает аутентификацию по имени пользователя/паролю для SOCKS5 прокси. -
Поддержка аутентификации HTTP
Поддерживает аутентификацию по имени пользователя/паролю для HTTP прокси-сервера. -
Лёгкий и быстрый
Разработан с минимальными накладными расходами и эффективной обработкой запросов. -
Кроссплатформенность
Совместим со всеми основными операционными системами.
Установка
- Arch Linux/CachyOS/EndeavourOS ```shell
yay -S gohpts
Или используя paru: ```shell
paru -S gohpts
- Скачайте бинарный файл для вашей платформы со страницы [Releases](https://github.com/shadowy-pycoder/go-http-proxy-to-socks/releases): ```shell
GOHPTS_RELEASE=v1.15.6; wget -v https://github.com/shadowy-pycoder/go-http-proxy-to-socks/releases/download/$GOHPTS_RELEASE/gohpts-$GOHPTS_RELEASE-linux-amd64.tar.gz -O gohpts && tar xvzf gohpts && mv -f gohpts-$GOHPTS_RELEASE-linux-amd64 gohpts && ./gohpts -h
- Установка с помощью команды
go install(требуется Go 1.26 или новее): ```shell CGO_ENABLED=0 go install -ldflags "-s -w" -trimpath github.com/shadowy-pycoder/go-http-proxy-to-socks/cmd/gohpts@latest
Это установит бинарный файл gohpts в ваш каталог $GOPATH/bin.
- Сборка из исходного кода: ```shell
git clone https://github.com/shadowy-pycoder/go-http-proxy-to-socks.git
cd go-http-proxy-to-socks
make build
./bin/gohpts
- Запуск в docker: ```shell
docker run -it --privileged --network host -v "$PWD/gohpts.yaml:/config.yaml" shadowypycoder/gohpts:latest -f config.yaml
Использование
[Назад]```shell gohpts -h
/ | | | | | __ _ / ____|
| | __ ___ | || | |) | | | | (__
| | |_ |/ _ | __ | / | | _
| |__| | () | | | | | | | ) |
_|_/|| ||| || |___/
GoHPTS: HTTP(S) Proxy to SOCKS4/SOCKS5 proxy by shadowy-pycoder GitHub: https://github.com/shadowy-pycoder/go-http-proxy-to-socks Codeberg: https://codeberg.org/shadowy-pycoder/go-http-proxy-to-socks
Usage: gohpts [OPTIONS] OPTIONS: General: -h Show this help message and exit -v Show version and build information -D Run as a daemon (provide -logfile to see logs) -I Display list of network interfaces and exit -f Path to proxy configuration file in YAML format