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.

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
Funcionalidad de cadena de proxies
Admite cadenas strict, dynamic, random, round_robin de proxies SOCKS4/SOCKS5
Proxy transparente
Admite modos redirect (SO_ORIGINAL_DST) y tproxy (IP_TRANSPARENT)
Soporte de IPv4 e IPv6
Opera en modos IPv4-only, IPv6-only o dual stack
Proxy transparente TCP y UDP
tproxy y tlocal (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.
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
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.
[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