NetCat은 브로드캐스트 주소에 대한 네트워크 데이터를 무시(전송하지 않음)

NetCat은 브로드캐스트 주소에 대한 네트워크 데이터를 무시(전송하지 않음)

내가 이것을 실행하면인터넷 고양이다음 명령(오류 메시지가 전혀 없음)WireShark 캡처실행(캡처 필터 = udp dst port 4000):

luis@Zarzamoro:~$ echo "Hello" | nc -w1 -4u 255.255.255.255 4000
luis@Zarzamoro:~$ echo "Hello" | nc -w1 -4u 255.255.255.1 4000
luis@Zarzamoro:~$ echo "Hello" | nc -w1 -4u 192.168.11.255 4000
luis@Zarzamoro:~$ echo "Hello" | nc -w1 -4u 192.168.11.100 4000

이것은캡처된 데이터(알아채다실종된 인터넷 고양이 두 마리주문하다) :

전송된 데이터가 손실된 것으로 추정됩니다.

결론적으로, 다음으로 전송된 모든 데이터는방송(xxx255) 네트워크 주소는 다음과 같습니다.무시당하다(오류 없음 :-P) NetCat에서 제공됩니다.

왜 이런 일이 발생합니까?

추가 자료:

내 전체 콘텐츠는 다음과 같습니다 ifconfig.

luis@Zarzamoro:~$ sudo ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:ef:bb:aa
          inet addr:192.168.11.140  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: fe80::ba27:ebff:feef:bbaa/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9672 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8567 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:503027 (503.0 KB)  TX bytes:5993557 (5.9 MB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:153 errors:0 dropped:0 overruns:0 frame:0
          TX packets:153 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:10926 (10.9 KB)  TX bytes:10926 (10.9 KB)

달리기우분투14.04.

현재 해결 방법으로 다음을 사용하고 있습니다 socat.

echo "Hello" | socat - UDP-DATAGRAM:255.255.255.255:4000,broadcast

하지만 어쨌든 나는 왜 NetCat이 같은 일을 할 수 없는지 이해하고 싶습니다.

답변1

나는 당신이 사용하고 있다고 가정합니다netcat-openbsd. 을 지정하기 때문에 브로드캐스트 주소를 활성화 -4해야 -b하지만 우리 모두 알고 있듯이 이 버전의 netcat은 .netcat을 사용해도 UDP 브로드캐스트를 지원하지 않습니다 -b. 데비안 버그 #702204이 문제를 해결하려면 패치를 사용하는 것이 좋습니다.

대체 패키지를 설치할 수 있습니다Netcat-전통적이것은 UDP를 올바르게 지원하는 것 같습니다 -b. 런타임 시 호출되는 netcat은 다음 /bin/nc을 사용하여 구성할 수 있습니다.update-alternatives두 패키지가 모두 시스템에 설치된 경우.

$ sudo update-alternatives --config nc
There are 2 choices for the alternative nc (providing /bin/nc).

  Selection    Path                 Priority   Status
------------------------------------------------------------
* 0            /bin/nc.openbsd       50        auto mode
  1            /bin/nc.openbsd       50        manual mode
  2            /bin/nc.traditional   10        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /bin/nc.traditional to provide /bin/nc (nc) in manual mode

-v마지막 으로 더 자세한 진단 정보를 추가할 수 있습니다 nc.

관련 정보