我希望同时捕获两个不同端口上的tcpdump流量。
我试过这个..
$ tcpdump port 21 ; tcpdump port 22
虽然它有效,但问题是首先它将等待端口21上的流量,当被中断时它将等待端口22。
另一个问题是它不会捕获端口22上的流量,直到端口21上的流量将被捕获。
我想要一个免费的解决方案,无论数据包到达的顺序是什么,如果它们是针对端口21或22,它们应该被捕获。
请帮我这个!!!
编辑:
对不起,我没有在我试图运行的实际命令之前指定它是这个..
$ tcpdump -X -s0 protochain 50
和
$ tcpdump -X -s0 protochain 51
现在我需要同时使用50和51 ..
嗨,你只需要组成这样两个端口:
tcpdump -n -i $INTERFACE port 21 or port 22
其中-n
将获得数字地址而无需反向解析(更快)
和$INTERFACE
是真正的界面,你嗅到交通
我不是tcpdump
专家,但在tcpdump
manpage发现了这个:
tcpdump 'gateway snup and (port ftp or ftp-data)'
所以试试吧
tcpdump '(port ftp or ftp-data)'
问题解决了它实际上非常简单我应该先尝试过..
但是,谢谢我只是通过查看你的答案得到了我的想法。
如果我们能找到一个确切的答案,我认为这是stackoverflow的美妙之处,我们可以通过讨论发明它。 ..
$ tcpdump -X -s0 protochain 50 or 51
像其他贡献者所说,你可以使用and
逻辑运算符,但要注意,你也可以将它与其他运算符一起使用。要确保tcpdump看到它们,并且运算符优先级是您想要的,请使用括号,但仅在单引号内,如下面的示例:sudo tcpdump -i eth0 '(port 465 or port 587)' and src 1.2.3.4
,因为如果省略单引号,shell可能会在tcpdump之前解释它们确实如此,并且b),您将不确定运营商的优先级是什么。强大的这一点,你现在可以做任何组合,就像算术一样。