2017-03-15 56 views
0

我在Ubuntu 16.04.2 LTS上接收UDP數據包時遇到問題,使用2個不同的網絡接口: 1.以太網與10.xxx IP 2. wifi with 192.168.xx在輔助網絡接口問題上的Linux C/C++ UDP服務器問題

數據包到達第二個接口(wlan0),我可以在wireshark/tcpdump上看到它們,但沒有收到我的udp服務器發來的數據包。

我也試圖結合爲wlan0接口(setsockopt(localSock, SOL_SOCKET, SO_BINDTODEVICE, ...,結合0.0.0.0,192.168.xx的,但沒有運氣。

另外,netcat -4 -u -l 0.0.0.0 <port>(以及上192.168.XX)接收無。

我設法使它工作的唯一方法就是隻有我改變默認網關類似192.168.xy

路由表:

[email protected]:/tmp$ route 
Kernel IP routing table 
Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
default   10.x.x.x  0.0.0.0   UG 0  0  0 eth0 
default   OpenWrt.lan  0.0.0.0   UG 600 0  0 wlan0 
10.x.0.0  *    255.255.0.0  U  100 0  0 eth0 
link-local  *    255.255.0.0  U  1000 0  0 eth0 
192.168.x.0  *    255.255.255.0 U  600 0  0 wlan0 

這似乎與Not able to receive UDP/IPv6 packets on secondary interface有關,但是這次是在ipv4上。

任何提示都非常感謝。

謝謝

+0

你的路由表很困惑。只能有一個默認路由,而不是兩個。 –

+0

這些是操作系統的默認設置,它們有不同的指標。我刪除了第二個默認網關'sudo route del default gw OpenWrt.lan',我有同樣的問題。 –

回答