我看到UDP数据包到达我的Linux机箱(通过tcpdump),目标端口设置为25555.但是:
nc -l -u 25555
显示没有流量。
我已经查过:
此外,所有数据包都被丢弃,因此上传rx缓冲区不会出现问题。
有什么想法可能导致pakcets掉线吗?
答案 0 :(得分:2)
您的计算机上有另一个进程正在读取到达端口25555的数据报。我们可以从/proc/net/udp
看到它:
sl local_address rem_address st tx_queue rx_queue tr rexmits tm->when uid timeout inode ref pointer drops
104: 00000000:63D3 00000000:0000 07 00000000:00000000 00:00000000 00000000 0 0 1779298 2 fff810266fe0c 0
因此,“窃取”所需数据报的过程归root(uid = 0)所有。套接字的inode是1779298,您可以在/proc/PID/fd
下搜索root拥有的PID。一旦你弄清楚在那里听的是什么进程,你就需要决定是否终止它,以便nc
可以听。
单播UDP数据报只会在Linux系统上进入单个进程,即使有多个进程试图从同一地址读取。
答案 1 :(得分:0)
最后,结果发现数据包被RPF过滤掉了。请参阅Linux中的net.ipv4.all.rp_filter设置。