網絡數據包截獲分析工具。支持針對網絡層、協議、主機、網絡或端口的過濾。並提供and、or、not等邏輯語句幫助去除無用的信息。html
tcpdump - dump traffic on a network
監聽第一塊網卡上通過的數據包。主機上可能有不止一塊網卡,因此常常須要指定網卡。node
tcpdump
tcpdump -i en0
例子:監聽本機跟主機182.254.38.55
之間往來的通訊包。nginx
備註:出、入的包都會被監聽。shell
tcpdump host 182.254.38.55
特定來源瀏覽器
tcpdump src host hostname
特定目標地址bash
tcpdump dst host hostname
若是不指定src
跟dst
,那麼來源 或者目標 是hostname的通訊都會被監聽服務器
tcpdump host hostname
tcpdump port 3000
服務器上不一樣服務分別用了TCP、UDP做爲傳輸層,假如只想監聽TCP的數據包網絡
tcpdump tcp
監聽來自主機123.207.116.169
在端口22
上的TCP數據包tcp
tcpdump tcp port 22 and src host 123.207.116.169
tcpdump ip host 210.27.48.1 and 210.27.48.2
210.27.48.1
除了和210.27.48.2
以外的主機之間的通訊工具
tcpdump ip host 210.27.48.1 and ! 210.27.48.2
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個參數的位置,用來過濾數據報的類型
(2)-i eth1 : 只抓通過接口eth1的包
(3)-t : 不顯示時間戳
(4)-s 0 : 抓取數據包時默認抓取長度爲68字節。加上-S 0 後能夠抓到完整的數據包
(5)-c 100 : 只抓取100個數據包
(6)dst port ! 22 : 不抓取目標端口是22的數據包
(7)src net 192.168.1.0/24 : 數據包的源網絡地址爲192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析
TODO
以下,抓到1000個包後,自動退出
tcpdump -c 1000
備註:tcpdump默認會將輸出寫到緩衝區,只有緩衝區內容達到必定的大小,或者tcpdump退出時,纔會將輸出寫到本地磁盤
tcpdump -n -vvv -c 1000 -w /tmp/tcpdump_save.cap
也能夠加上-U
強制當即寫到本地磁盤(通常不建議,性能相對較差)
先看下面一個比較常見的部署方式,在服務器上部署了nodejs server,監聽3000端口。nginx反向代理監聽80端口,並將請求轉發給nodejs server(127.0.0.1:3000
)。
瀏覽器 -> nginx反向代理 -> nodejs server
問題:假設用戶(183.14.132.117)訪問瀏覽器,發現請求沒有返回,該怎麼排查呢?
步驟一:查看請求是否到達nodejs server -> 可經過日誌查看。
步驟二:查看nginx是否將請求轉發給nodejs server。
tcpdump port 8383
這時你會發現沒有任何輸出,即便nodejs server已經收到了請求。由於nginx轉發到的地址是127.0.0.1,用的不是默認的interface,此時須要顯示指定interface
tcpdump port 8383 -i lo
備註:配置nginx,讓nginx帶上請求側的host,否則nodejs server沒法獲取 src host,也就是說,下面的監聽是無效的,由於此時對於nodejs server來講,src host 都是 127.0.0.1
tcpdump port 8383 -i lo and src host 183.14.132.117
步驟三:查看請求是否達到服務器
tcpdump -n tcp port 8383 -i lo and src host 183.14.132.117
tcpdump 很詳細的
http://blog.chinaunix.net/uid...
http://www.cnblogs.com/ggjuch...
Linux tcpdump命令詳解
Tcpdump usage examples(推薦)
http://www.rationallyparanoid...
使用TCPDUMP抓取HTTP狀態頭信息
http://blog.sina.com.cn/s/blo...