Tcpdump
tcpdump 和 nc 與 udp
我不明白netcat的行為。假設我有一台主機充當伺服器:
[root@localhost tmp]# nc -u -l -p 670
然後我嘗試從客戶端連接:
root@debian:/tmp# nc -u 192.168.0.109 670
同時我嘗試擷取這些包:
[root@localhost sergio]# tcpdump -nn -i wlp7s0 port 670
我根本看不到任何數據包,只有當我發出類似以下內容時:
root@debian:/tmp# echo "Hola Mundo" | nc -u 192.168.0.109 670 [root@localhost sergio]# tcpdump -nn -i wlp7s0 port 670 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on wlp7s0, link-type EN10MB (Ethernet), capture size 65535 bytes 01:37:39.425276 IP 192.168.0.114.44287 > 192.168.0.109.670: UDP, length 12
我想知道這是否是 netcat 的正確行為。為什麼除了我從標準輸入發送一些東西之外它沒有看到任何數據包的原因是什麼?
因為您使用的是UDP。在發送任何數據包之前,UDP 中沒有連接設置,就像使用 TCP 一樣,這意味著只有在傳輸實際數據時才能看到數據包。而 netcat 只發送它從標準輸入獲得的數據。