UDP连接不为特定接口路由流量

问题描述 投票:0回答:1

我有一个奇怪的问题,UDP套接字上的连接行为取决于接收流量的接口。

我生成一个UDP套接字,该套接字绑定到所有接口上的特定端口,并等待传入​​的数据包。如果尚未在本地套接字上调用connect,则我(1)连接到远程地址(2)跟踪套接字,并(3)在同一本地端口上生成一个新的未连接套接字。如果已在套接字上调用connect,则只需调用recv并处理数据。

当流量通过以太网接口时,流量正确路由到连接的套接字。但是,在wifi接口上,流量总是路由到新创建的未连接的套接字。

我已经验证了它可以在我的ubuntu机器上正常工作,这似乎是我正在使用的另一个硬件平台的怪癖。

我该怎么做才能调试问题?连接系统调用永远不会失败,但是两个接口的行为不同,这说明这不是内核问题。 IP表中是否有可能影响流量路由或wifi驱动程序中的内容?还有别的吗?

linux sockets networking udp iptables
1个回答
0
投票

因此,在我的情况下,问题在于以太网和wifi接口之间的IP规则不对称,从而导致路由问题。如果遇到类似情况,您会看到一些设置为的规则:

ip rule show

和/或

iptables --list
© www.soinside.com 2019 - 2024. All rights reserved.