Networking
tcpdump 似乎沒有擷取任何數據,為什麼?
我正在嘗試
tcpdump
像這樣擷取數據:$ sudo tcpdump -Xi eth0
我已將設備和 PC 相互連接。我在雙方都啟動了一個簡單的測試應用程序,向對方發送消息。
問題是雖然雙方都收到了消息,
tcpdump
但沒有列印任何內容。有時只看到一個 ARP 請求(對目前未連接到 LAN 的另一台 PC 的 ARP 請求)。$ ifconfig eth0 Link encap:Ethernet HWaddr 00:0f:ea:62:ce:d6 inet addr:10.5.57.197 Bcast:10.5.255.255 Mask:255.255.0.0 inet6 addr: fe80::20f:eaff:fe62:ced6/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:66497 errors:0 dropped:4334 overruns:0 frame:0 TX packets:3785 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6539170 (6.5 MB) TX bytes:553828 (553.8 KB) Interrupt:21 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:529 errors:0 dropped:0 overruns:0 frame:0 TX packets:529 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:71721 (71.7 KB) TX bytes:71721 (71.7 KB)
我建議您擷取數據包並將它們寫入具有
<file>.pcap
副檔名的文件,然後使用wireshark
.例如,在 CentOS 中,要擷取數據包:
$ tcpdump -i eth0 -s 1500 -w /root/<filename.pcap>
必須有其他事情發生。以下測試對我來說很好。我
socat
同時用作客戶端和伺服器,並且tcpdump
在我所在的本地系統上執行。1.設置socat伺服器(監聽器)
$ socat - TCP-LISTEN:2222,crlf
2.設置震驚的客戶
$ socat - TCP:192.168.1.80:2222
3. 現在我執行 tcpdump:
$ sudo tcpdump -Xi wlp1s0 src 192.168.1.3 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on wlp1s0, link-type EN10MB (Ethernet), capture size 65535 bytes 10:04:27.977900 ARP, Request who-has 192.168.1.149 tell client.mydom.net, length 46 0x0000: 0001 0800 0604 0001 0019 d1e8 4c95 c0a8 ............L... 0x0010: 0103 0000 0000 0000 c0a8 0195 0000 0000 ................ 0x0020: 0000 0000 0000 0000 0000 0000 0000 .............. 10:04:29.206642 ARP, Request who-has 192.168.1.149 tell client.mydom.net, length 46 0x0000: 0001 0800 0604 0001 0019 d1e8 4c95 c0a8 ............L... 0x0010: 0103 0000 0000 0000 c0a8 0195 0000 0000 ................ 0x0020: 0000 0000 0000 0000 0000 0000 0000 .............. 10:04:29.337077 IP client.mydom.net.49878 > server.mydom.net.EtherNet/IP-1: Flags [P.], seq 1391164406:1391164421, ack 2721007444, win 46, options [nop,nop,TS val 535977938 ecr 956529523], length 15 0x0000: 4500 0043 8218 4000 4006 34f9 c0a8 0103 E..C..@.@.4..... 0x0010: c0a8 0150 c2d6 08ae 52eb 7bf6 a22f 4754 ...P....R.{../GT 0x0020: 8018 002e 964f 0000 0101 080a 1ff2 5fd2 .....O........_. 0x0030: 3903 7b73 5468 6973 2069 7320 6120 7465 9.{sThis.is.a.te 0x0040: 7374 0a st.
在上述場景中,我在客戶端輸入了消息“這是一個測試”,它顯示在伺服器
socat
實例以及tcpdump
.客戶端輸出:
$ socat - TCP:server.mydom.net:2222 This is a test
伺服器輸出:
$ socat - TCP-LISTEN:2222,crlf This is a test