温馨提示×

Ubuntu Sniffer使用教程

小樊
64
2025-09-22 14:12:51
栏目: 智能运维

Ubuntu Sniffer使用教程:从基础到进阶

网络嗅探(Sniffing)是网络诊断、安全分析的重要手段,Ubuntu系统提供了多种工具满足不同场景需求。以下是常用Sniffer工具的使用指南,涵盖命令行与图形化方案,帮助你快速上手。

一、准备工作:安装必要工具

1. 安装依赖库

多数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

2. 常用Sniffer工具选择

  • tcpdump:命令行轻量级工具,适合快速捕获和分析数据包;
  • Wireshark:图形化协议分析器,功能全面,适合深入分析;
  • aircrack-ng:针对无线网络的嗅探套件,需配合监控模式使用;
  • nethogs:进程级流量监控工具,直观显示每个进程的带宽占用。

二、命令行Sniffer:tcpdump详解

tcpdump是Ubuntu默认安装的工具(若未安装,可通过sudo apt install tcpdump获取),适合快速捕获和过滤数据包。

1. 基本捕获

捕获所有接口的流量(需root权限):

sudo tcpdump

Ctrl+C停止捕获。

2. 指定接口

若系统有多个接口(如eth0、wlan0),可通过-i指定:

sudo tcpdump -i eth0  # 捕获以太网接口流量
sudo tcpdump -i wlan0 # 捕获无线接口流量

3. 保存到文件

将捕获的数据包保存为.pcap文件(后续可用Wireshark分析):

sudo tcpdump -i eth0 -w capture.pcap

读取已保存的文件:

tcpdump -r capture.pcap

4. 过滤流量

通过**Berkely Packet Filter (BPF)**语法过滤,减少无关数据:

  • 按协议过滤tcp(TCP流量)、udp(UDP流量)、icmp(ICMP流量);
  • 按端口过滤port 80(HTTP)、port 443(HTTPS);
  • 按IP过滤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)

三、图形化Sniffer:Wireshark详解

Wireshark提供直观的图形界面,支持协议解码统计分析等功能,适合复杂场景。

1. 安装Wireshark

sudo add-apt-repository ppa:wireshark-dev/stable  # 添加官方PPA
sudo apt update
sudo apt install wireshark

安装过程中,系统会提示“是否允许非超级用户捕获数据包”,选择Yes(方便普通用户使用)。

2. 启动与选择接口

  • 打开Wireshark:wireshark
  • 选择要捕获的接口(如eth0、wlan0),点击Start(开始捕获)。

3. 实时过滤

在顶部过滤栏输入BPF语法,实时显示符合条件的流量:

  • http:仅显示HTTP流量;
  • tcp.flags.syn==1:显示TCP SYN包(连接请求);
  • ip.addr==192.168.1.100:显示与指定IP相关的流量。

4. 分析数据包

  • 点击单个数据包,右侧面板显示协议分层(如Ethernet、IP、TCP、HTTP);
  • 展开各层,查看源/目标地址端口数据内容(如HTTP请求头、Payload)。

5. 保存与导出

  • 停止捕获:点击CaptureStop
  • 保存捕获文件:FileSave As(选择.pcap格式);
  • 导出特定数据:FileExport Specified Packets(如仅导出HTTP流量)。

四、无线网络Sniffer:aircrack-ng套装

若需嗅探无线网络(如WiFi),需使用aircrack-ng工具集,需先将无线接口设置为监控模式(Monitor Mode)。

1. 安装aircrack-ng

sudo apt install aircrack-ng

2. 开启监控模式

  • 查看无线接口名称(如wlp0s20f3):
    ip link show
    
  • 开启监控模式(以wlan0为例):
    sudo airmon-ng start wlan0
    
    成功后,会生成一个mon0接口(用于捕获)。

3. 捕获无线流量

使用Wireshark捕获监控接口的流量:

sudo wireshark -i mon0

或使用tcpdump:

sudo tcpdump -i mon0 -w wireless.pcap

4. 停止监控模式

捕获完成后,关闭监控接口:

sudo airmon-ng stop mon0

五、进程级流量监控:nethogs

若需了解每个进程的网络带宽占用(如哪个应用在下载),可使用nethogs。

1. 安装nethogs

sudo apt install nethogs

2. 使用nethogs

  • 监控指定接口(如eth0):
    sudo nethogs eth0
    
  • 输出结果:显示进程ID、进程名、发送/接收的带宽(KB/s)。

注意事项

nethogs需root权限,且不适用于捕获数据包,仅用于监控进程级流量。

六、合法性提醒

使用Sniffer工具时,需遵守法律法规网络安全政策

  • 仅在你有权限的网络(如自己的局域网)中使用;
  • 不得捕获或分析他人的私人通信(如未经授权的WiFi流量);
  • 捕获的敏感数据需妥善保管,避免泄露。

以上教程覆盖了Ubuntu系统下命令行图形化Sniffer工具的基本使用,根据需求选择合适的工具即可。如需深入学习,建议参考工具官方文档(如Wireshark的User Guide)。

0