CLI MITM-прокси, преобразующий SOCKS4/SOCKS5 в HTTP/HTTPS/HTTP2/HTTP3 с прозрачным перенаправлением TCP/UDP, спуфингом ARP/NDP/DNS, перехватом трафика и захватом пакетов. Чистый Go, без libpcap.

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 прокси-сервера.
Лёгкий и быстрый
Разработан с минимальными накладными расходами и эффективной обработкой запросов.
Кроссплатформенность
Совместим со всеми основными операционными системами.
Или используя 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 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