Hay dos proxies SOCKS que conozco que admiten proxy transparente para cualquier conexión TCP saliente: Tor y redsocks . A diferencia de los servidores proxy HTTP, estos servidores proxy SOCKS pueden proxy de forma transparente cualquier conexión TCP saliente, incluidos los protocolos cifrados y los protocolos sin metadatos ni encabezados.
Ambos proxies requieren el uso de NAT para redirigir cualquier tráfico TCP saliente al puerto local del proxy. Por ejemplo, si estoy ejecutando Tor con TransPort 9040
en mi máquina local, necesitaría agregar una regla de iptables como esta:
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 9040
Que yo sepa, esto reemplazaría la IP y el puerto de destino originales con 127.0.0.1
y 9040
, por lo tanto, dado que se trata de una secuencia cifrada (como SSH) o una sin encabezados (como whois ), ¿cómo conoce el proxy la IP y el puerto de destino original?