在CentOS系統下,有多種抓包工具可以使用,其中最常用的是 tcpdump 和一些第三方工具如 go-sniffer。以下是一些具體的抓包技巧和步驟:
首先,你需要安裝 tcpdump,這是一個強大的命令行網絡數據包分析器。
sudo yum install tcpdump -y
捕獲所有接口上的數據包
sudo tcpdump
默認情況下,tcpdump 將在所有接口上捕獲數據包。使用 Ctrl+C 組合鍵停止抓包。
指定接口捕獲數據包
sudo tcpdump -i eth0
使用 -i 選項后面跟上要捕獲數據包的網絡接口名稱,如 eth0、ens33 等??梢允褂?ifconfig 或 ip a 命令查看系統中的網絡接口。
捕獲特定數量的數據包
sudo tcpdump -c 10 -i eth0
使用 -c 選項指定捕獲的數據包數量。
保存捕獲的數據包到文件
sudo tcpdump -w output.pcap -i eth0
使用 -w 選項將捕獲的數據包保存到指定文件。
讀取已保存的抓包文件
sudo tcpdump -r output.pcap
使用 -r 選項讀取已保存的抓包文件,并進行分析。
設置抓包數據的顯示格式
sudo tcpdump -A
使用 -A 選項將數據包的內容以 ASCII 文本形式顯示,方便查看包的內容。
設置抓包數據的詳細信息
sudo tcpdump -v
使用 -v 選項顯示更詳細的信息,如 IP 頭部、TCP/UDP 頭部等。
使用過濾器篩選數據包
sudo tcpdump src host 192.168.0.1
使用過濾器對抓包數據進行篩選,只顯示滿足條件的數據包。更多過濾器選項可以參考 tcpdump 的文檔或使用 tcpdump -h 命令查看幫助。
結合其他命令進行數據包分析
sudo tcpdump -r capture.pcap | awk '{print $3}' | sort | uniq -c | sort -nr
將 tcpdump 結果通過管道傳遞給其他命令進行進一步分析。
go-sniffer 是一個第三方抓包工具,可以抓取和分析多種協議的數據包。
sudo yum install libpcap-devel
wget https://golang.org/dl/go1.10.3.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.10.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go get -v -u github.com/40t/go-sniffer
cp -rf $(go env GOPATH)/bin/go-sniffer /usr/local/bin
抓取 Redis 數據包
go-sniffer eth0 redis
抓取 MySQL 數據包,端口 3306
go-sniffer eth0 mysql -p 3306
通過這些技巧和工具,你可以在 CentOS 系統下有效地進行網絡抓包和分析。