情景:服務端進程綁定了 udp://0.0.0.0:10004 端口,客戶單一直在往服務端發送數據,但是 strace 發現,服務端進程一直都在輪詢調用 epoll_wait, 也就是服務端程序一直都沒有收到過時間通知。但是通過 tcpdump 抓 udp 10004 端口的數據卻能抓到。
查看了一下 iptables 的配置:
Chain ETH1_UDP (1 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0
事實證明:iptables 配置爲 DROP 時丟棄的包,tcpdump 是可以抓到的。