温馨提示×

Ubuntu Sniffer如何进行数据包过滤

小樊
65
2025-08-10 23:58:00
栏目: 智能运维

在Ubuntu中使用Sniffer(如tcpdump、Wireshark)过滤数据包的方法如下:

1. 使用tcpdump命令行工具

  • 安装
    sudo apt-get update && sudo apt-get install tcpdump  
    
  • 基础过滤
    • 按协议过滤(如HTTP):
      sudo tcpdump -i eth0 port 80  # 捕获eth0接口的HTTP流量  
      
    • 按IP过滤(源/目标):
      sudo tcpdump src 192.168.1.100  # 捕获源IP为192.168.1.100的数据包  
      sudo tcpdump dst 192.168.1.100  # 捕获目标IP为192.168.1.100的数据包  
      
    • 组合条件(如TCP+特定端口+主机):
      sudo tcpdump 'tcp and port 443 and host 192.168.1.100'  # 捕获该主机的HTTPS流量  
      
    • 保存到文件:
      sudo tcpdump -i eth0 -w capture.pcap  # 保存为pcap文件供后续分析  
      

2. 使用Wireshark图形化工具

  • 安装
    sudo apt-get update && sudo apt-get install wireshark  
    
  • 过滤操作
    1. 启动后选择网络接口,点击“开始捕获”。
    2. 在顶部过滤器栏输入规则(支持语法高亮和实时预览):
      • http:过滤HTTP流量。
      • ip.addr == 192.168.1.100 && tcp.port == 22:过滤该IP的SSH流量。
      • udp and net 10.0.0.0/8:过滤10.0.0.0/8网段的UDP流量。
    3. Enter应用过滤,结果会实时显示匹配的数据包。

关键过滤语法说明

条件 语法示例 说明
协议 tcp/udp/icmp 按协议过滤
端口 port 80/src port 22 按端口号过滤
IP地址 host 192.168.1.100 捕获与该IP相关的所有流量
网段 net 192.168.1.0/24 捕获该网段的所有流量
组合条件 'tcp and port 443 and host 10.0.0.1' 多条件组合(需用引号包裹)

注意事项

  • 需使用sudo获取root权限,避免权限不足导致无法捕获数据包。
  • 过滤表达式需符合tcpdump/Wireshark的语法规则,复杂规则可通过引号包裹多个条件。
  • 捕获敏感数据时需遵守法律法规,确保操作合法合规。

以上方法可快速定位目标流量,结合工具的实时分析功能可有效排查网络问题。

0