如何使用 netcat 将 udp 数据包重定向(仅单向)到另一台主机?

如何使用 netcat 将 udp 数据包重定向(仅单向)到另一台主机?

如何使用 netcat 将 udp 数据包重定向(仅单向)到另一台主机?

nc -l -u 0.0.0.0 12345 | nc -u 192.168.1.128 12345

成功重定向第一个数据包后停止。

(注意:iptables 解决方案也很有用。)

谢谢,

克里斯。

答案1

对于 iptables 解决方案,您基本上会对数据包执行目标 NAT。例如:

iptables -t nat -I PREROUTING -p udp --dport 12345 -j DNAT --to 192.168.1.128:12345

使用 netcat,嗯。-k处理完数据包后,您可以使用选项保持监听端处于打开状态,但您需要执行某些操作才能继续发送。也许可以使用命名管道?

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

显然,未经测试。

答案2

只要您每秒收到的消息不超过一条,它就会转发其中的 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

相关内容