过滤所有不使用特定端口的软件包

过滤所有不使用特定端口的软件包

我使用 wireshark 查看捕获的 pcap 文件。我看到特定端口上有很多我不感兴趣的通信,所以我想过滤它以仅查看其余通信。

我使用了以下过滤规则:tcp.dstport != 1337 and tcp.srcport != 1337删除端口 1337 上的所有 tcp 通信。但似乎此规则也删除了所有非 TCP 流量。例如,不再显示 DNS 请求。如果我将过滤器更改为,(tcp.dstport != 1337 and tcp.srcport != 1337) or ! tcp它会显示除端口 1337/tcp 之外的所有流量,但这似乎不是“正确”的做法。是否使用tcp.dstporttcp.srcport等于仅过滤 tcp 流量,然后过滤端口?

答案1

你的过滤器应该是:

!(tcp.port == 1337)

解释

有两种过滤器Wireshark

  1. 捕获过滤器:用于捕获流量(呃?)并使用伯克利数据包过滤器 (BPF) 语法构建(检查手册页pcap 过滤器)。libpcap是执行实际捕获的底层库。

  2. 显示过滤器:用于减少您看到的流量,并构建了专有语法(其中一些与 BPF 重叠)。

您的显示过滤器tcp.dstport != 1337应读作“该数据包包含一个名为 tcp.port 的字段,其值不同于 1337”. 因此,数据包没有一个tcp.port字段将被过滤掉。

相关内容