使用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来说,什么都不是。
答
不知道它可以帮助这里,但在我的情况下,它帮助(我有类似的问题),所以我只是停止“iptables”像 服务iptables停止。 看来,tcpdump的工作级别低于iptable,ipdaple可以阻止数据报进入更高级别。这里有一个很好的article与nice picture这个主题。
谢谢你的回答。我的主机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
嗯,你可以用lsof试试吗?我不相信netstat太多。 lsof -i UDP:5600 – 2015-04-02 18:14:43
'lsof -i udp'返回一个空字符串......也是'lsof -i | grep 5600'什么也没有返回... – Stefano 2015-04-03 07:53:46