내가 이것을 실행하면인터넷 고양이다음 명령(오류 메시지가 전혀 없음)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
.