Tcpdump

tcpdump 和 nc 與 udp

  • August 30, 2014

我不明白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 只發送它從標準輸入獲得的數據。

引用自:https://unix.stackexchange.com/questions/152895