我在RHEL6服务器上接收UDP流量时遇到问题.使用tcpdump捕获流量时,数据包可见(校验和正确,目标IP和MAC与机器的匹配).但是,监听特定端口的应用程序无法看到任何数据,即使套接字已成功打开并显示在netstat -panu输出中.我尝试了一个简单的perl UDP服务器脚本(
http://www.perlmonks.org/?node_id=659588)而不是实际的应用程序,但结果是相同的(套接字打开,没有收到数据).
未配置防火墙规则.这是iptables –list输出:
Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
此外,netstat -s -u不显示系统收到的任何UDP数据包:
Udp: 0 packets received 0 packets to unknown port received. 0 packet receive errors 0 packets sent
这是一些安全的客户环境,我无法登录网络中的其他计算机来尝试手动发送测试UDP数据包.
有人能指出我进一步排除故障的方向吗?
解决方法
检查这是否有帮助.
Linux Kernel not passing through multicast UDP packets
基本上如果net.ipv4.all.rp_filter = 1,则内核执行严格的反向路径验证.更多文档可在 https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt找到
Linux Kernel not passing through multicast UDP packets
基本上如果net.ipv4.all.rp_filter = 1,则内核执行严格的反向路径验证.更多文档可在 https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt找到