使用netcat收听时没有流量

使用netcat收听时没有流量

问题描述:

我有一个带有多个网络接口的服务器。 我正在尝试运行网络监视工具,以便通过在路由器上使用sFlow标准来验证网络流量统计信息。 我在eth1接口的端口5600上得到我的sFlow数据报。我能看到产生的流量感谢和tcpdump:使用netcat收听时没有流量

[email protected]:~$ 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 

似乎一切OK,但是,当我尝试读取netcat的包似乎这里没有包:

nc -lu 5600 

确实,sflowtool和nprobe没有读取任何端口5600. 我在哪里错了?

nc -lu 5600打算在端口5600上打开一个套接字,这意味着它只会转储在该套接字中接收到的包,即针对该特定地址和端口的包。

另一方面,tcpdump收集所有流量,即使没有发送到特定的服务器。你的问题在这里的

两个原因:

一)您的主机的IP是不是198.51.100.232

B)有是在UDP端口5600是抓住所有的数据监听另一台服务器,所以,对于nc socket来说,什么都不是。

+0

谢谢你的回答。我的主机ip是198.51.100.232,所以我认为这不是问题的原因。另一方面,当我尝试使用'netstat --listen'列出当前打开的udp套接字时,它显示我的端口5600不绑定任何东西。但是,当我尝试一个测试命令:'echo -n“foo”| nc -4u 198.51.100.232 5600'我的netcat设备检索数据包... – Stefano 2015-04-02 16:20:09

+0

嗯,你可以用lsof试试吗?我不相信netstat太多。 lsof -i UDP:5600 – 2015-04-02 18:14:43

+0

'lsof -i udp'返回一个空字符串......也是'lsof -i | grep 5600'什么也没有返回... – Stefano 2015-04-03 07:53:46

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