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 패킷을 전송(브로드캐스트)하는 방법은 무엇입니까?

또한 유니캐스트 UDP 패킷을 보내기 위해 socat을 사용해 보았지만 sourceport그것도 인식되지 않았습니다.

답변1

bind대신 이 옵션을 사용하세요 sourceport.

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

sourceport예를 들어 ....에서는 분명히 작동하기 때문에 이 경우 작동하지 않는 이유는 확실하지 않습니다 . 그러나 동일한 작업이 이미 완료되었는데 UDP-CONNECT왜 별도의 옵션이 있는지도 불분명합니다 .sourceportbind

관련 정보