![NetCat은 브로드캐스트 주소에 대한 네트워크 데이터를 무시(전송하지 않음)](https://linux55.com/image/69530/NetCat%EC%9D%80%20%EB%B8%8C%EB%A1%9C%EB%93%9C%EC%BA%90%EC%8A%A4%ED%8A%B8%20%EC%A3%BC%EC%86%8C%EC%97%90%20%EB%8C%80%ED%95%9C%20%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EB%AC%B4%EC%8B%9C(%EC%A0%84%EC%86%A1%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9D%8C).png)
내가 이것을 실행하면인터넷 고양이다음 명령(오류 메시지가 전혀 없음)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
.