如何redirect(单向)udp数据包到另一台主机使用netcat?
nc -l -u 0.0.0.0 12345 | nc -u 192.168.1.128 12345
在成功redirect第一个数据包之后停止。
(注意:iptables解决scheme也是有用的。)
谢谢,
克里斯。
对于iptables解决scheme,你将基本上做数据包上的目标NAT。 就像是:
iptables -t nat -I PREROUTING -p udp --dport 12345 -j DNAT --to 192.168.1.128:12345
用netcat,嗯。 在处理数据包之后,可以使用-k选项来保持侦听端处于启动状态,但是您需要继续发送数据。 命名pipe道,也许?
mknod /tmp/nc.pipe p nc -l -k -u 0.0.0.0 12345 > /tmp/nc.pipe & while [1] do nc -u 192.168.1.128 12345 < /tmp/nc.pipe done
未经testing,清楚。
只要你每秒收不到一条以上的消息,就会转发99%以上的消息。
(这是一个非常可怕的软糖。)
#!/bin/bash while : do bash -c "nc -l -u 0.0.0.0 12345 | nc -u 192.168.1.128 12345" & sleep 1 kill $! done