socat 不支持 sourceport 选项

socat 不支持 sourceport 选项

我正在尝试从特定端口发送 udp 数据包:

$ echo hello | socat - UDP-DATAGRAM:192.168.1.255:11111,broadcast,sourceport=22222

但使用随机端口代替:

# tcpdump -vvvv -ttttt -nienp0s31f6 udp
tcpdump: listening on enp0s31f6, link-type EN10MB (Ethernet), snapshot length 262144 bytes
 00:00:00.000000 IP (tos 0x0, ttl 64, id 40649, offset 0, flags [DF], proto UDP (17), length 34)
    192.168.1.17.35829 > 192.168.1.255.11111: [udp sum ok] UDP, length 6

如何从特定端口发送(广播)udp 数据包?

注意,我还尝试使用 socat 发送单播 udp 数据包,但sourceport也没有得到认可。

答案1

使用该bind选项而不是sourceport

$ echo hello | socat - UDP-DATAGRAM:192.168.1.255:11111,broadcast,bind=:22222

我不确定为什么sourceport在这种情况下不起作用,因为它显然适用于例如UDP-CONNECT……但也不清楚为什么在已经做了同样的事情时还有一个单独的sourceport选项。bind

相关内容