我有一台带有多个网络接口的服务器。我正在尝试运行网络监控工具,以便通过在路由器上使用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读取任何内容。我哪里错了?
2条答案
按热度按时间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端口。zqdjd7g92#
不确定它能在这里帮助,但在我的情况下,它帮助(我有类似的问题),所以我只是停止“iptables”像服务iptables停止。看起来tcpdump工作在比iptable更低的级别上,而ipdaple可以阻止数据报进入更高的级别。这里有一个很好的article关于这个主题与nice picture。