C UDP服务器访问问题

假设您在Linux上的端口9030上运行了UDP服务器,并且无法以某种方式访问​​该UDP服务器。没有防火墙或类似的设置阻止访问该UDP端口。并且请知道数据包到达O.S的网络堆栈。当O.S.收到数据包后立即发送目标端口无法访问的ICMP数据包。令您惊讶的是,netstat输出显示UDP服务器正在您指定的确切端口上运行,如下所示:
udp        0      0 212.253.35.111:9030     0.0.0.0:* 722/udpServerApp
另请注意,UDP服务器侦听公共IP,而不是localhost等。意思是数据包到达该公共IP地址。 那可能会出什么问题?你最好的猜测是什么?我真的很困惑。     
已邀请:
你可能没有听正确的地址 - 例如听取
127.0.0.1
(localhost)而不是“任何”地址。 netstat的确切输出会告诉你(但你没有发布它并要求猜测,所以在这里)。     
您的套接字正在侦听端口9030上的本地IP地址212.253.35.111。 通过tcpdump或wireshark验证您确实将UDP数据包发送到IP 212.253.35.111,端口9030。 您要么尝试连接到错误的端口,错误的IP地址,要么还有防火墙(例如一些本地iptables规则),您还没有发现,或者存在路由错误,并且您在某处有两台机器在同一地方IP地址(很可能有一些负载平衡/热备用设置,例如,如果你使用的是VRRP)     
绑定的UDP服务器是什么IP地址? 如果它仅限于
127.0.0.1
,那么它将无法从外部网络接口访问。 要监听每个接口,它应该绑定到
INADDR_ANY
。     

要回复问题请先登录注册