轉載:http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece76310488c3a0e54f6227a9c8e4268d4e413d5331016506694ea7a7d0d548d98297a02a4485aecf322376a4376b8dd99ca1c9ae4d03f2ff93044760bf24105a518b8b845&p=8b2a9015d9c041a904a2df2b550e95&user=baidu&fm=sc&query=tcpdump+%B4%F2%D3%A1&qid=89472f7913e1f3f7&p1=7
問題如下:之前網路用tcpdump用得好好的。為了趕做畢業設計,沖忙向公司請假了兩天回學校。在宿舍網路用tcpdump卻無法抓包。列印出來資訊如下:
[root@localhost tcpdump-3.9.8]# tcpdump iptcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 68 bytes18:02:54.090670 IP 192.168.0.238.ssh > 192.168.0.138.discp-server: P 4192389498:4192389534(36) ack 1271279785 win 750418:02:54.091037 IP 192.168.0.138.discp-server > 192.168.0.238.ssh: . ack 36 win 1507618:02:54.091757 IP 192.168.0.238.ssh > 192.168.0.138.discp-server: P 36:72(36) ack 1 win 750418:02:54.093701 IP 121.9.202.11.http > 192.168.0.16.3689: . 4039673114:4039674554(1440) ack 1875063953 win 64324 packets captured2666 packets received by filter2596 packets dropped by kernel
當時覺得非常奇怪,怎麼會丟棄這麼多,我沒指定過濾的條件啊。於是又把自己做的tcpdump開起來,一切正常。
想起自己動過來源程式的一些代碼,又從網站重新下了新的libpcap庫和tcpdump,編譯、安裝。還是老樣子。
在期間又發現一個問題,在抓包時按ctrl+c退出訊號,不能退出,只能按ctrl+z強行。當然,進程裡tcpdump就卡在那了,只好KILL掉。這下納悶了,網上搜了半天也沒搜到(可能我搜尋方法太爛了^_^),不過要是ctrl+c這個訊號程式無法接收到的話,那就是在取什麼資源的時候阻塞了。把 tcpdump參數又仔細的看了一遍,發現一個-n,不把網路位址轉譯成名字。試著加上,OK,問題解決。。。