[英]Linux C/C++ UDP server on the secondary network interface issue
我在具有2個不同網絡接口的Ubuntu 16.04.2 LTS上接收UDP數據包時遇到問題:1.帶有10.xxx IP的以太網2.帶有192.168.xx的wifi
數據包到達第二個接口(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
路由表:
user@ubuntu-ws:/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
這似乎與無法在輔助接口上接收UDP / IPv6數據包有關,但這次與ipv4有關。
任何提示都受到高度贊賞。
謝謝
添加新的路由表解決了我的問題。 這篇文章對我有幫助: https : //www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.