在 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 地址。