Ubuntu Sniffer如何进行流量过滤
Ubuntu Sniffer流量过滤方法
在Ubuntu系统中,常用的流量过滤工具包括tcpdump(命令行)和Wireshark(图形界面),两者均支持通过过滤表达式精准定位目标流量。以下是具体操作指南:
一、使用tcpdump(命令行工具)过滤流量
tcpdump是Ubuntu默认安装的网络抓包工具(若未安装,可通过sudo apt install tcpdump安装),适用于快速捕获和过滤命令行环境下的流量。
1. 基础过滤
-
按协议过滤:捕获指定协议的流量(如HTTP、ICMP)。
示例:捕获eth0接口的HTTP流量(端口80):
sudo tcpdump -i eth0 port 80
捕获所有ICMP流量(ping请求/响应):
sudo tcpdump -i eth0 icmp -
按IP地址过滤:捕获与特定IP相关的流量(源/目标)。
示例:捕获与192.168.1.100相关的所有流量:
sudo tcpdump -i eth0 host 192.168.1.100
捕获来自192.168.1.100的流量:
sudo tcpdump -i eth0 src 192.168.1.100
捕获发送到192.168.1.100的流量:
sudo tcpdump -i eth0 dst 192.168.1.100 -
按端口过滤:捕获指定端口的流量(如SSH端口22)。
示例:捕获eth0接口的SSH流量:
sudo tcpdump -i eth0 port 22
2. 组合过滤
通过and(与)、or(或)、not(非)组合多个条件,精确定位流量。
示例:捕获192.168.1.100主机的HTTPS流量(端口443,TCP协议):
sudo tcpdump -i eth0 'tcp and port 443 and host 192.168.1.100'
示例:捕获来自192.168.1.0/24网段的HTTP流量:
sudo tcpdump -i eth0 'src net 192.168.1.0/24 and port 80'
3. 高级过滤
-
排除特定流量:忽略不需要的流量(如ICMP ping包)。
示例:捕获所有流量,但排除ICMP:
sudo tcpdump -i eth0 not icmp -
按数据包大小过滤:捕获指定大小范围的流量(如100-500字节)。
示例:捕获TCP流量,且有效负载长度在100-500字节之间:
sudo tcpdump -i eth0 'tcp and tcp.len > = 100 and tcp.len < = 500'
4. 保存与读取捕获文件
-
保存到文件:将捕获的流量保存为.pcap文件(供后续分析)。
示例:捕获eth0接口的流量并保存到capture.pcap:
sudo tcpdump -i eth0 -w capture.pcap -
读取文件:用tcpdump读取.pcap文件并分析。
示例:读取capture.pcap文件:
sudo tcpdump -r capture.pcap
二、使用Wireshark(图形界面工具)过滤流量
Wireshark是功能强大的图形化协议分析工具(需安装:sudo apt install wireshark),支持实时过滤和深度分析数据包。
1. 启动与捕获流量
- 启动Wireshark后,选择要监听的网络接口(如eth0、wlan0),点击“开始捕获”。
- 实时查看数据包的源/目的IP、端口、协议等信息,点击红色方形“停止”按钮结束捕获。
2. 基础显示过滤
在顶部过滤器栏输入过滤条件,按Enter应用(支持语法高亮和实时预览)。
- 按协议过滤:如过滤HTTP流量:
http - 按IP地址过滤:如过滤源IP为192.168.1.100的流量:
ip.src == 192.168.1.100
如过滤目标IP为192.168.1.100的流量:
ip.dst == 192.168.1.100 - 按端口过滤:如过滤TCP端口80的流量:
tcp.port == 80
3. 组合显示过滤
使用and(与)、or(或)、not(非)组合多个条件。
示例:过滤192.168.1.100主机的HTTP POST请求(需匹配TCP端口80和POST方法):
http and tcp.port == 80 and http.request.method == "POST"
示例:过滤10.0.0.0/8网段的UDP流量:
udp and net 10.0.0.0/8
4. 高级显示过滤
- 基于数据包内容过滤:查找包含特定关键字的流量(如“password”)。
示例:过滤数据包中包含“password”的HTTP流量:
http contains "password" - 基于数据包大小过滤:如过滤有效负载长度大于100字节的TCP流量:
tcp.len > 100 - 排除特定流量:如排除ARP流量:
not arp
5. 保存与应用过滤器
- 保存过滤器书签:在过滤器栏输入条件后,点击右侧“+”按钮,将常用过滤器保存为书签(便于下次快速使用)。
- 导出筛选数据:应用过滤器后,点击“文件”→“导出特定分组”,选择“Displayed”(仅导出当前可见的匹配数据包),保存为新.pcap文件。
注意事项
- 权限要求:tcpdump和Wireshark(非root用户)需使用sudo或添加到wireshark组(
sudo usermod -aG wireshark $USER)才能捕获流量。 - 合法性:捕获敏感数据(如密码、个人隐私)时,需遵守法律法规,避免未经授权的监控。
- 性能优化:过滤条件越具体,捕获的流量越少,可减少系统资源消耗(如限制捕获数量
-c 100或保存到文件-w)。
通过上述方法,可快速定位Ubuntu系统中的目标流量,有效排查网络问题或进行安全分析。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Sniffer如何进行流量过滤
本文地址: https://pptw.com/jishu/737243.html
