我正在尝试从特定端口发送 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
在那里也没有受到尊重。
使用
bind
选项而不是sourceport
:我不确定为什么
sourceport
在这种情况下不起作用,因为它显然适用于例如UDP-CONNECT
......但也不清楚为什么在已经做了同样的事情sourceport
时还有一个单独的选项。bind