tcpdump:串联不适用于 "and"!

tcpdump: concatenation not working with "and"!

我试了一段时间了,参考了网上的资源和man tcpdump。我就是无法让它工作。我尝试了 sudo tcpdump -i any -A "dst port 62655 and src port 62665",然后我尝试了 sudo tcpdump -i any -A "(dst port 62655 and src port 62665)"。我也试过sudo tcpdump -i any -A \(dst port 62655 and src port 62665\)。我快疯了,我错过了什么??根据 man tcpdump 可以使用 and&&

编辑: "it doesn't work" 是什么意思?如果我只使用 sudo tcpdump -i any -A "dst port 62655" 我可以看到从服务器到客户端的流量。如果我尝试将它结合起来以尝试捕获传入流量(如上所述),我什么也看不到(甚至不再是传出流量 - 以前有效!)。

通过使用 "and",您要求每个数据包都满足这两个条件。您的编辑听起来像是一个条件用于传入,一个条件用于传出,因此请使用 "or" 而不是 "and"。

顺便说一句,特别是对于可能有更多流量的公共端口,指定 "host X.X.X.X" 以过滤源或目标为指定 IP 地址的数据包通常很有用。

Manpage for the filter expression