我正在尝试调试一台运行 Ubuntu 的笔记本电脑的问题。我们有一项使用广播 UDP 消息的服务,而这台笔记本电脑除了偶尔之外,无法在其无线接口上接收这些消息。
我把这个问题归结为一个例子netcat
来socat
演示。我暂时使用地址范围为 192.168.0.X 的无线路由器。
我在一台计算机上运行
$ nc -lu 7570
在另一台电脑上我运行
$ echo "hello" | socat - UDP-DATAGRAM:192.168.0.255:7570,broadcast
除了有问题的那台电脑外,所有通过无线连接的电脑都会显示该消息。如果我socat
在“坏”电脑上运行,所有电脑都会看到该消息,包括它自己。
奇怪的是,这台电脑的其他方面似乎都很好。它能够使用无线方式浏览网络并传输文件,没有任何问题。它只是不会接收 UDP 广播消息。如果我将“socat”置于循环中,它将每 100 次左右收到一次消息。此外,它在有线连接上似乎工作正常。所以这一定是它r8192se_pci
用于无线芯片组的驱动程序的问题。但是,我从未听说过所有流量都正常的情况下会出现这样的问题除了用于广播消息。有人能想到我该如何修复或更好地诊断这个问题吗?
答案1
史蒂夫,这听起来很像是子网上的设备之间的网络掩码不匹配...我会用检查 Ubuntu 的网络掩码ip addr show
。