linux 使用netcat收听时没有流量

laawzig2  于 2023-05-06  发布在  Linux
关注(0)|答案(2)|浏览(233)

我有一台带有多个网络接口的服务器。我正在尝试运行网络监控工具,以便通过在路由器上使用sFlow标准来验证网络流量统计数据。我在eth1接口的端口5600上获取sFlow数据报。感谢tcpdump,我可以看到生成的流量:

user@lnssrv:~$ sudo tcpdump -i eth1

14:09:01.856499 IP 10.10.10.10.60147 > 198.51.100.232.5600: UDP, length 1456
14:09:02.047778 IP 10.10.10.10.60147 > 198.51.100.232.5600: UDP, length 1432
14:09:02.230895 IP 10.10.10.10.60147 > 198.51.100.232.5600: UDP, length 1300
14:09:02.340114 IP 198.51.100.253.5678 > 255.255.255.255.5678: UDP, length 111
14:09:02.385036 STP 802.1d, Config, Flags [none], bridge-id c01e.b4:a4:e3:0b:a6:00.8018, length 43
14:09:02.434658 IP 10.10.10.10.60147 > 198.51.100.232.5600: UDP, length 1392
14:09:02.634447 IP 10.10.10.10.60147 > 198.51.100.232.5600: UDP, length 1440
14:09:02.836015 IP 10.10.10.10.60147 > 198.51.100.232.5600: UDP, length 1364
14:09:03.059851 IP 10.10.10.10.60147 > 198.51.100.232.5600: UDP, length 1372
14:09:03.279067 IP 10.10.10.10.60147 > 198.51.100.232.5600: UDP, length 1356
14:09:03.518385 IP 10.10.10.10.60147 > 198.51.100.232.5600: UDP, length 1440

看起来一切正常,但是,当我尝试用netcat读取数据包时,这里似乎没有数据包:

nc -lu 5600

实际上,sflowtool和nprobe都不会从端口5600读取任何内容。我哪里错了?

k7fdbhmy

k7fdbhmy1#

nc -lu 5600将打开端口5600上的套接字,这意味着它将只转储在该套接字中接收的包,即针对该特定地址和端口的包。
另一方面,tcpdump收集所有流量,即使没有将其发送到特定服务器。
你的问题有两个原因:

**a)**您的主机IP不是198.51.100.232

  • 使用**host**命令,您将能够准确地看到服务器的TCP流量

for example : tcpdump -i eth1 host 198.51.100.232 port 80

**B)**有另一个服务器正在侦听UDP端口5600,它正在获取所有数据,因此,nc socket没有任何剩余数据。
***注意:使用TCPDUMP**将无法检查和监听UDP端口。

zqdjd7g9

zqdjd7g92#

不确定它能在这里帮助,但在我的情况下,它帮助(我有类似的问题),所以我只是停止“iptables”像服务iptables停止。看起来tcpdump工作在比iptable更低的级别上,而ipdaple可以阻止数据报进入更高的级别。这里有一个很好的article关于这个主题与nice picture

相关问题