在Debian系统上,可以使用多种工具进行数据包过滤,其中最常用的是 tcpdump 和 Wireshark。以下是这两种工具的详细使用方法:
tcpdump 命令
tcpdump
是一个非常强大的命令行网络分析工具,它可以捕获网络接口上的数据包,并根据特定的过滤条件显示出来。以下是一些常用的 tcpdump
过滤命令示例:
-
捕获所有数据包:
sudo tcpdump
-
指定捕获特定网络接口的数据包:
sudo tcpdump -i eth0
-
指定捕获特定协议的数据包:
sudo tcpdump icmp
-
指定捕获特定源或目标IP地址的数据包:
sudo tcpdump host 192.168.1.100
-
指定捕获特定端口的数据包:
sudo tcpdump port 80
-
捕获特定源和目的地址之间的数据包:
sudo tcpdump src 192.168.1.100 and dst 192.168.2.100
-
捕获特定网络接口的数据包:
sudo tcpdump -i eth0
Wireshark 过滤命令
Wireshark 是一个图形界面的网络分析工具,它提供了丰富的过滤选项来提取所需的数据包。以下是一些常用的 Wireshark 过滤命令示例:
-
根据 IP 地址过滤:
- 筛选出源 IP 地址是 192.168.3.77 的全部数据包:
ip.addr == 192.168.3.77
- 筛选出源 IP 地址是 182.254.3.77 的数据包:
ip.src =https://www.yisu.com/ask/= 182.254.3.77>
- 筛选出目的地址是 192.168.1.114 的数据包:
ip.dst == 192.168.1.114
- 筛选出源 IP 地址是 192.168.3.77 的全部数据包:
-
根据端口过滤:
- 根据 TCP 端口筛选数据包,包括源端口和目的端口:
tcp.port == 80
- 根据 TCP 目的端口筛选数据包:
tcp.dstport == 80
- 根据 TCP 源端口筛选数据包:
tcp.srcport == 80
- 根据 UDP 端口筛选数据包,包括源端口和目的端口:
udp.port == 1234
- 根据 UDP 源端口筛选数据包:
udp.srcport == 1234
- 根据 UDP 的目的端口筛选数据包:
udp.dstport == 1234
- 根据 TCP 端口筛选数据包,包括源端口和目的端口:
-
根据协议过滤:
- 筛选出 http 协议中 GET 请求的数据包:
http.request.method == "GET"
- 筛选出 http 协议中的 POST 请求的数据包:
http.request.method == "POST"
- 筛选出 http 协议中 GET 请求的数据包:
-
根据 Payload Type 条件过滤:
- 根据网络包的 Payload Type 类型进行条件过滤,比如根据下图中的 111 枚举值过滤:
rtp.p_type == 111
- 根据网络包的 Payload Type 类型进行条件过滤,比如根据下图中的 111 枚举值过滤:
-
根据组合条件过滤:
- 筛选出源 IP 地址是 192.168.3.77 且目的 IP 地址是 192.168.3.78 的数据包:
ip.src_host == 192.168.3.77 && ip.dst_host == 192.168.3.78
- 筛选出源 IP 地址是 192.168.3.77 或者源 IP 地址是 192.168.3.78 的数据包:
ip.src_host == 192.168.3.77 || ip.src_host == 192.168.3.78
- 筛选出不是 IP 地址 192.168.3.77 的数据包:
!(ip.addr == 192.168.3.77) ```。
- 筛选出源 IP 地址是 192.168.3.77 且目的 IP 地址是 192.168.3.78 的数据包:
这些工具提供了灵活且强大的数据包过滤功能,能够满足不同用户在网络管理和安全分析方面的需求。