Eu tentei as etapas abaixo, que devem funcionar, mas não funciona no Mac (encaminha mensagens de texto UDP da porta 20 para a porta 29), mas você pode querer tente assim mesmo:
-
cd /tmp
-
mkfifo backpipe
-
sudo nc -ulk 20 0<backpipe |sudo nc -ulk 29 | tee backpipe
- Em outro terminal - teste com
echo -n “this is a test” | sudo nc -4u -w1 localhost 20
É possível que o uso seja destroçado ou o arquivo especial do fifo não esteja funcionando.
No entanto, encontrei uma maneira "mais fácil".
- Faça o download de um arquivo de origem do programa c muito pequeno chamado: udp_redirect (clique aqui para fazer o download)
- Compile com
gcc -w udp_redirect.c -o udp_redirect
- Executar no plano de fundo
sudo ./udp_redirect 127.0.0.1 20 127.0.0.1 29 &
- Configure um ouvinte na porta 29 para testá-lo
sudo nc -ul 29
- Em um segundo terminal, teste-o com
echo “this is a test” | sudo nc -4u -w1 localhost 20
Este teste envia mensagens de texto UDP para a porta 20 e observa o ouvinte na porta 29 no primeiro terminal imprimir as mensagens. Você também pode configurar um ouvinte na porta 20 e ver que nenhuma mensagem está disponível, todas elas são encaminhadas (não duplicadas) para a porta 29.
Eu digo que é 'mais fácil' porque o binário udp_redirect
tem um uso muito mais fácil, não tem a necessidade de um arquivo especial fifo, não requer pipes, não requer o utilitário nc
e, mais importante, funciona!