簡體   English   中英

輔助網絡接口上的Linux C / C ++ UDP服務器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM