同时连接多个网络?

同时连接多个网络?

在 Ubuntu 中连接具有不同子网的多个网络是否实际上需要一些额外的步骤才能正常工作?

我的电脑上有 2 个网络接口,一个是有线网卡,另一个是无线 USB 适配器。它们都连接到不同子网上的不同路由器。在你问之前

$ ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 10.10.1.2/24 brd 10.10.1.255 scope global eth0
4: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    inet 192.168.1.2/24 brd 192.168.1.255 scope global wlan1

$ ip -4 r
default via 10.10.1.1 dev eth0  proto static 
10.10.1.0/24 dev eth0  proto kernel  scope link  src 10.10.1.2  metric 1 
169.254.0.0/16 dev eth0  scope link  metric 1000 
192.168.1.0/24 dev wlan1  proto kernel  scope link  src 192.168.1.2  metric 2 

$ netstat -rn output
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.10.1.1       0.0.0.0         UG        0 0          0 eth0
10.10.1.0       0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan1

我可以 ping 通两个网关 IP,但绑定到 USB 适配器网络的连接却不起作用。那么有什么办法可以解决这个问题吗?

答案1

找到解决方案!

事实证明,我需要为附加网卡添加一个新的路由表,然后在表中为其添加路由规则。请阅读此处了解更多说明关联

答案2

我不太确定curl,但wget的手册页上说:

   --bind-address=ADDRESS
       When making client TCP/IP connections, bind to ADDRESS on the local
       machine.  ADDRESS may be specified as a hostname or IP address.
       This option can be useful if your machine is bound to multiple IPs.

指定您要使用的网卡的 IP 地址。

相关内容