3

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

4

4 回答 4

4

我不是tcpdump专家,但在tcpdump手册页中找到了这个:

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

所以试试这个

tcpdump '(port ftp or ftp-data)'
于 2011-11-29T10:49:22.460 回答
4

你好,你只需要像这样组合两个端口:

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

where-n将在没有反向解析(更快)的情况下获得数字地址,
并且$INTERFACE是您嗅探流量的真实界面

于 2011-11-29T10:54:39.503 回答
0

问题解决了它实际上很简单我应该在之前尝试过..

但谢谢,我只是看了你的答案就明白了。

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

 $ tcpdump -X -s0 protochain 50 or 51
于 2011-11-29T11:18:15.087 回答
0

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

于 2019-03-22T03:02:18.783 回答