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

UDP connect doesn't route traffic for particular interface

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

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

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

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

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

所以在我的例子中,问题是以太网和 wifi 接口之间的 ip 规则不对称导致路由问题。如果你 运行 进入类似的东西,你可以看到一些设置的规则:

ip rule show

and/or

iptables --list