Além Caleb resposta 's, se você estiver trabalhando com mais recente iptables
(v1.4.14) que não tem mais o ROUTE
alvo que você vai precisar de algo como o seguinte, testado em 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
Teste usando "netcat" ( man nc
). Em uma janela do terminal, digite o seguinte e pressione a Enter
tecla:
nc -l 8002
O comando aguardará a entrada que você digitará em uma segunda janela do terminal.
Na segunda janela do terminal, digite o seguinte e pressione a Enter
tecla:
nc 127.0.0.1 8001
O comando aguardará por mais informações. Digite qualquer coisa e pressione a Enter
tecla Depois de pressionar a Enter
tecla na segunda janela do terminal, o texto digitado na segunda janela do terminal deve aparecer na primeira janela do terminal. Pressione Ctrl
-c na segunda janela para finalizar a sessão.
* Esta sintaxe não é suportada no RHEL / Centos (6.5 ou anterior) :-( portanto, você precisa usar o socat
T e encaminhar pacotes de entrada na porta original para duas novas portas. Se você teve processos ouvindo a porta de recebimento original, então é necessário reconfigurá-los para escutar em uma das portas em tee, como socat
agora é o ouvinte na porta original.Veja esta postagem do SE, por exemplo, socat
sintaxe para clonagem de portas.
iptables
pode ser muito antigo; consulte Enviar pacotes duplicados por duas conexões com a Internet.