網絡嗅探(Sniffing)是網絡診斷、安全分析的重要手段,Ubuntu系統提供了多種工具滿足不同場景需求。以下是常用Sniffer工具的使用指南,涵蓋命令行與圖形化方案,幫助你快速上手。
多數Sniffer工具需要編譯或運行依賴,首先安裝基礎庫:
sudo apt-get update
sudo apt-get install build-essential libncurses5-dev zlib1g-dev gawk flex quilt git-lfs libssl-dev xz-utils -y
tcpdump是Ubuntu默認安裝的工具(若未安裝,可通過sudo apt install tcpdump獲?。?,適合快速捕獲和過濾數據包。
捕獲所有接口的流量(需root權限):
sudo tcpdump
按Ctrl+C停止捕獲。
若系統有多個接口(如eth0、wlan0),可通過-i指定:
sudo tcpdump -i eth0 # 捕獲以太網接口流量
sudo tcpdump -i wlan0 # 捕獲無線接口流量
將捕獲的數據包保存為.pcap文件(后續可用Wireshark分析):
sudo tcpdump -i eth0 -w capture.pcap
讀取已保存的文件:
tcpdump -r capture.pcap
通過**Berkely Packet Filter (BPF)**語法過濾,減少無關數據:
tcp(TCP流量)、udp(UDP流量)、icmp(ICMP流量);port 80(HTTP)、port 443(HTTPS);src 192.168.1.100(源IP)、dst 192.168.1.1(目標IP);tcp and port 80(TCP且端口為80的流量)。示例:
sudo tcpdump -i eth0 tcp port 80 -w http.pcap # 捕獲eth0接口的HTTP流量
sudo tcpdump -i wlan0 icmp -c 10 # 捕獲wlan0接口的10個ICMP包(ping)
Wireshark提供直觀的圖形界面,支持協議解碼、統計分析等功能,適合復雜場景。
sudo add-apt-repository ppa:wireshark-dev/stable # 添加官方PPA
sudo apt update
sudo apt install wireshark
安裝過程中,系統會提示“是否允許非超級用戶捕獲數據包”,選擇Yes(方便普通用戶使用)。
wireshark;在頂部過濾欄輸入BPF語法,實時顯示符合條件的流量:
http:僅顯示HTTP流量;tcp.flags.syn==1:顯示TCP SYN包(連接請求);ip.addr==192.168.1.100:顯示與指定IP相關的流量。File → Save As(選擇.pcap格式);File → Export Specified Packets(如僅導出HTTP流量)。若需嗅探無線網絡(如WiFi),需使用aircrack-ng工具集,需先將無線接口設置為監控模式(Monitor Mode)。
sudo apt install aircrack-ng
ip link show
sudo airmon-ng start wlan0
成功后,會生成一個mon0接口(用于捕獲)。使用Wireshark捕獲監控接口的流量:
sudo wireshark -i mon0
或使用tcpdump:
sudo tcpdump -i mon0 -w wireless.pcap
捕獲完成后,關閉監控接口:
sudo airmon-ng stop mon0
若需了解每個進程的網絡帶寬占用(如哪個應用在下載),可使用nethogs。
sudo apt install nethogs
sudo nethogs eth0
nethogs需root權限,且不適用于捕獲數據包,僅用于監控進程級流量。
使用Sniffer工具時,需遵守法律法規和網絡安全政策:
以上教程覆蓋了Ubuntu系統下命令行與圖形化Sniffer工具的基本使用,根據需求選擇合適的工具即可。如需深入學習,建議參考工具官方文檔(如Wireshark的User Guide)。