在CentOS系統中,有多種工具可以用來進行網絡抓包,其中最常用的是 tcpdump 和 Wireshark。以下是使用這些工具進行抓包的基本步驟:
安裝tcpdump:
sudo yum install tcpdump -y
配置網絡接口: 為了讓tcpdump能夠捕獲網絡數據包,需要將網絡接口設置為混雜模式。這通常需要root權限。
sudo tcpdump -i eth0 -w output.pcap
這里的 eth0
是網絡接口的名稱,-w output.pcap
表示將捕獲的數據包寫入到 output.pcap
文件中。
使用過濾器: 可以根據需要設置過濾器以捕獲符合條件的數據包。例如,只捕獲包含特定關鍵詞的數據包。
sudo tcpdump src host 192.168.0.1
開始捕獲數據包: 運行tcpdump后,開始捕獲并分析網絡數據包。
sudo tcpdump -i eth0 port 80
這個命令會捕獲通過 eth0
接口的HTTP流量,并將其寫入到 output.pcap
文件中。
安裝Wireshark:
sudo yum install wireshark -y
啟動Wireshark: 安裝完成后,可以通過啟動Wireshark應用程序來開始捕獲網絡數據包。
sudo wireshark
選擇網絡接口并開始捕獲: 在Wireshark的主界面,選擇要監控的網絡接口,然后點擊“開始”按鈕開始捕獲數據包。
停止捕獲并分析數據包: 點擊紅色的方形按鈕停止捕獲??梢允褂肳ireshark強大的搜索和過濾功能來查找特定的數據包,或者使用分析工具來深入了解網絡流量。
除了tcpdump和Wireshark,還可以使用一些第三方工具如 go-sniffer 進行抓包。
安裝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
sudo cp -rf $(go env GOPATH)/bin/go-sniffer /usr/local/bin
使用go-sniffer抓取數據包:
go-sniffer eth0 redis
go-sniffer eth0 mysql -p 3306