Además de la respuesta de Caleb , si está trabajando con una iptablesversión más reciente (v1.4.14) que ya no tiene el ROUTEobjetivo, necesitará algo como lo siguiente, probado en Debian Wheezy *:
iptables -A PREROUTING -t mangle -p tcp ! -s 127.0.0.1 --dport 8001 -j TEE --gateway 127.0.0.1
iptables -A OUTPUT -t nat -p tcp -s 127.0.0.1/32 --dport 8001 -j DNAT --to 127.0.0.1:8002
Prueba con "netcat" ( man nc). En una ventana de terminal, escriba lo siguiente y presione la Entertecla:
nc -l 8002
El comando esperará la entrada que escribirá en una segunda ventana de terminal.
En la segunda ventana de terminal, escriba lo siguiente y presione la Entertecla:
nc 127.0.0.1 8001
El comando esperará más información. Escriba cualquier cosa y presione la Entertecla. Después de presionar la Entertecla en la segunda ventana de terminal, el texto que escribió en la segunda ventana de terminal debe aparecer en la primera ventana de terminal. Presione Ctrl-c en la segunda ventana para finalizar la sesión.
* Esta sintaxis no es compatible con RHEL / Centos (6.5 o anterior) :-(, por lo que debe utilizarla socatpara enviar y enviar paquetes entrantes en el puerto original a dos puertos nuevos. Si tuvo procesos de escucha en el puerto de recepción original, entonces necesita reconfigurarlos para que escuchen en uno de los puertos en T, ya socatque ahora es el oyente en el puerto original. Vea esta publicación SE, por ejemplo, la socatsintaxis para la clonación de puertos.
iptablespuede ser demasiado viejo; consulte Enviar paquetes duplicados a través de dos conexiones a Internet.