网络嗅探(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)。