
go-http-proxy-to-socks v1.15.6
CLI MITM proxy que convierte SOCKS4/SOCKS5 en proxy HTTP/HTTPS/HTTP2/HTTP3 con redirección transparente TCP/UDP, suplantación ARP/NDP/DNS, rastreo de tráfico y captura de paquetes. Escrito en Go puro, sin libpcap.
GoHPTS - Proxy transparente HTTP(S) y TCP/UDP a proxy SOCKS4/SOCKS5 (cadena) escrito en Go

Tabla de contenidos
- Introducción
- Características
- Instalación
- Uso
- Proxy transparente
- Sniffing de tráfico
- Soporte HTTP2 y HTTP3
- Soporte IPv4 e IPv6
- ARP spoofing
- NDP spoofing
- DNS spoofing
- Captura de paquetes
- Espacios de nombres de red
- Servidor mixto
- Enlaces
- Contribuir
- Licencia
Introducción
La herramienta de CLI GoHPTS es un puente entre clientes HTTP y un servidor proxy SOCKS5 o múltiples servidores (cadena). Escucha localmente como un proxy HTTP, acepta solicitudes HTTP estándar
o HTTPS (mediante CONNECT) y reenvía la conexión a través de un proxy SOCKS5. Inspirado por http-proxy-to-socks y Proxychains
Posible caso de uso: necesitas conectarte a una API externa mediante Postman, pero esta API solo está disponible desde algún servidor remoto. Los siguientes comandos te ayudarán a realizar dicha tarea:
Crear un servidor proxy SOCKS5 mediante ssh:```shell
ssh -D 1080 -Nf
Crear conexión HTTP a SOCKS5 con `gohpts````shell
gohpts -s :1080 -l :8080
Especificar servidor http en la configuración de proxy de Postman
Características
-
Funcionalidad de cadena de proxies
Admite cadenasstrict,dynamic,random,round_robinde proxies SOCKS4/SOCKS5 -
Proxy transparente
Admite modosredirect(SO_ORIGINAL_DST) ytproxy(IP_TRANSPARENT) -
Soporte de IPv4 e IPv6
Opera en modosIPv4-only,IPv6-onlyodual stack -
Proxy transparente TCP y UDP
tproxyytlocal(IP_TRANSPARENT) manejan tráfico TCP y UDP -
Sniffing de tráfico
El proxy es capaz de analizar cabeceras HTTP, handshake TLS, mensajes DNS y más -
ARP spoofing
Proxy de subredes enteras con el enfoque de ARP spoofing -
NDP spoofing
Proxy de conexiones IPv6 usando Router/Neighbor Advertisement e inyecciones RDNSS. -
DNS spoofing
Redirige clientes a dominios arbitrarios mediante la manipulación de registros DNS -
Captura de paquetes
Captura tráfico en archivos txt/pcap/pcapng y analiza con Wireshark -
Protección contra fugas de DNS
La resolución DNS ocurre en el lado del servidor SOCKS5. -
Soporte del método CONNECT
Admite tunneling HTTP CONNECT, habilitando HTTPS y otros protocolos basados en TCP. -
Soporte de HTTP2/HTTP3
Admite transporte moderno HTTP/2 y HTTP/3, habilitando conexiones multiplexadas eficientes sobre TLS 1.3 -
Soporte de Network Namespaces
Admite network namespaces personalizados de Linux para sockets de escucha y conexiones salientes -
Soporte de Trailer Headers
Maneja cabeceras trailer HTTP -
Chunked Transfer Encoding
Maneja respuestas chunked y en streaming -
Soporte de autenticación SOCKS5
Admite autenticación con nombre de usuario/contraseña para proxies SOCKS5. -
Soporte de autenticación HTTP
Admite autenticación con nombre de usuario/contraseña para servidor proxy HTTP. -
Ligero y rápido
Diseñado con sobrecarga mínima y manejo eficiente de solicitudes. -
Multiplataforma
Compatible con todos los sistemas operativos principales.
Instalación
- Arch Linux/CachyOS/EndeavourOS ```shell
yay -S gohpts
O usando paru: ```shell
paru -S gohpts
- Descarga el binario para tu plataforma desde la página de [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
- Instalar usando el comando
go install(requiere Go 1.26 o posterior): ```shell CGO_ENABLED=0 go install -ldflags "-s -w" -trimpath github.com/shadowy-pycoder/go-http-proxy-to-socks/cmd/gohpts@latest
Esto instalará el binario gohpts en tu directorio $GOPATH/bin.
- Compilar desde el código fuente: ```shell
git clone https://github.com/shadowy-pycoder/go-http-proxy-to-socks.git
cd go-http-proxy-to-socks
make build
./bin/gohpts
- Ejecutar en docker: ```shell
docker run -it --privileged --network host -v "$PWD/gohpts.yaml:/config.yaml" shadowypycoder/gohpts:latest -f config.yaml
Uso
[Volver]```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