同时捕获两个不同端口上的网络流量

问题描述 投票:3回答:4

我希望同时捕获两个不同端口上的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 ..

linux shell networking command tcpdump
4个回答
4
投票

嗨,你只需要组成这样两个端口:

tcpdump -n -i $INTERFACE port 21 or port 22

其中-n将获得数字地址而无需反向解析(更快) 和$INTERFACE是真正的界面,你嗅到交通


3
投票

我不是tcpdump专家,但在tcpdump manpage发现了这个:

tcpdump 'gateway snup and (port ftp or ftp-data)'

所以试试吧

tcpdump '(port ftp or ftp-data)'

0
投票

问题解决了它实际上非常简单我应该先尝试过..

但是,谢谢我只是通过查看你的答案得到了我的想法。

如果我们能找到一个确切的答案,我认为这是stackoverflow的美妙之处,我们可以通过讨论发明它。 ..

 $ tcpdump -X -s0 protochain 50 or 51

0
投票

像其他贡献者所说,你可以使用and逻辑运算符,但要注意,你也可以将它与其他运算符一起使用。要确保tcpdump看到它们,并且运算符优先级是您想要的,请使用括号,但仅在单引号内,如下面的示例:sudo tcpdump -i eth0 '(port 465 or port 587)' and src 1.2.3.4,因为如果省略单引号,shell可能会在tcpdump之前解释它们确实如此,并且b),您将不确定运营商的优先级是什么。强大的这一点,你现在可以做任何组合,就像算术一样。

© www.soinside.com 2019 - 2024. All rights reserved.