t-tcpdump
文章目錄
- 寫入和讀取數據包
- 抓取數據包
- 抓取指定網卡流量
- 指定數據的輸出格式
- 數據包抓取的方向
- 輸出信息的詳細程度的可控選項
- 抓取指定協議的數據包
- 表達式介紹
- 邏輯連接符的使用
- type的確定
寫入和讀取數據包
在工作或者生活中的網絡故障排除時最有力的方式就是抓包分析網絡狀況,從而找到網絡故障的原因。所以將數據包保存到文件中,可以方便得進行分析取證。
數據包的寫入命令
tcpdump -w test1.txt
數據包的讀取命令
tcpdump -r test1.txt
數據包的多個文件讀取
tcpdump -V pack.txt 其中pack.txt中包含多個數據包文件test1.txt,test2.text,test3.txt
抓取數據包
停止抓取數據包:
ctrl+c- 終止
tcpdump進程 - 抓取指定數量的數據包
tcpdump -c 5
數據包的狀態
captured當前tcpdump抓取的數據包個數received by filter系統接收的數據包,tcpdump不一定過濾所有通過系統的數據包,系統數據包多于tcpdump抓取的數據包dropped by filtertcpdump丟棄的數據包
抓取指定網卡流量
一臺網絡服務器可能有多個網卡連接不同的網絡(可能即連接交換機,又連接路由器),對于分析不同的網絡狀態,需要針對指定的網卡進行分析
- 查看網卡
tcpdum -D
其中標記為up的為可以抓取的網卡root@ubuntu:/home/zhanghuigui/Desktop/tcpdum# tcpdump -D 1.ens33 [Up, Running] 2.any (Pseudo-device that captures on all interfaces) [Up, Running] 3.lo [Up, Running, Loopback] 4.bluetooth0 (Bluetooth adapter number 0) 5.nflog (Linux netfilter log (NFLOG) interface) 6.nfqueue (Linux netfilter queue (NFQUEUE) interface) 7.usbmon1 (USB bus number 1) 8.usbmon2 (USB bus number 2)
或者使用ifconfig -a獲取網卡信息 - 指定網卡的數據流量的抓取
tcpdum -i ens33即可
指定數據的輸出格式
-
默認情況下輸出域名,而非ip地址和端口
tcpdum以及tcpdum host比如嘗試訪問百度的公共域名服務器,則只會看到抓取的數據包中包好域名信息,并未有ip地址和端口號
-
抓取的數據包中格式包含對應主機的ip和端口號
tcpdum -n或者tcpdump host 180.76.76.76 -n
可以看到如下圖中將原來的"域名+服務"轉換為 “ip + 端口”,如public-dns-a.baidu.com.http轉換為180.76.76.76.80
數據包抓取的方向
- 抓取從目標ip流入當前設備的數據包 使用
-Q參數,或者--direction參數也可以
tcpdum host 180.76.76.76 -n -Q in
- 抓取從當前設備流入目標ip的數據包
tcpdump host 180.76.76.76 -n -Q out - 抓取從當前設備的指定網卡 流入目標ip的數據包
tcpdump host 180.76.76.76 -n -Q out -i ens33
輸出信息的詳細程度的可控選項
- 輸出鏈路層的mac地址通信信息
tcpdump host 180.76.76.76 -n -e
- 快速打印見面信息
tcpdump host 180.76.76.76 -n -q
- 更加詳細得打印數據內容
以16進制形式打印,并用ascsII碼輸出打印的內容
tcpdump host 180.76.76.76 -n -X
更加詳細的打印使用命令
tcpdump host 180.76.76.76 -n -XX - 抓取過程中抓取相信信息并輸出
tcpdump host 180.76.76.76 -n -v或者tcpdump host 180.76.76.76 -n -vv或者tcpdump host 180.76.76.76 -n -vvv;-v的個數越多,則打印的信息越相信
抓取指定協議的數據包
tcpdump icmp -n -v 僅抓取服務器接收到的 icmp協議的數據包
表達式介紹
表達式可以用來篩選想要的數據包內容,使用man pcap-filter包含過濾器的過濾規則和語法
tcpdump的表達式使用規則如下:
tcpdump [option] [not] proto dir type
其中
option是可選項,代表子命令-Q/-v/-n/-e/-cnot可選項,表示取反,即表示抓取不符合not之后寫的過濾規則的數據包proto是必選項,表示支持的協議tcp/udp/arp/ip/icmp等dir是流入流出控制,src/dst/src and dst/src or dsttype是篩選特定的ip和端口host/net/port/portrange指定的ip,端口號,端口范圍篩選
邏輯連接符的使用
tcpdump -n -v dst 180.76.76.76 and tcp 抓取發送終點為180.76.76.76服務器且協議為tcp的數據包
type的確定
常用的type為:host/port/portrange
tcpdump -q -n host 180.76.76.76 抓取type是host,ip地址為180.76.76.76的數據包
tcpdump -n -v host 180.76.76.76 and port 80 抓取ip地址為180.76.76.76端口為80的數據包
tcpdump -n -v net 180.76 and port 80 抓取范圍為180.76.0.0 - 180.76.255.255,端口為80的數據包
tcpdump -n -v dst port 80 篩選目標端口為80端口的數據包
tcpdump -n -v dst port 80 and dst net 180.76篩選目標端口為80,網段為180.76.0.0-180.76.255.255范圍的數據包
總結
- 上一篇: 微信好听的个性签名女
- 下一篇: C语言网络编程:accept函数详解