![如何控制Ubuntu上不同的事情使用哪个网络?](https://linux22.com/image/149115/%E5%A6%82%E4%BD%95%E6%8E%A7%E5%88%B6Ubuntu%E4%B8%8A%E4%B8%8D%E5%90%8C%E7%9A%84%E4%BA%8B%E6%83%85%E4%BD%BF%E7%94%A8%E5%93%AA%E4%B8%AA%E7%BD%91%E7%BB%9C%EF%BC%9F%20.png)
系统:
Ubuntu 18.10
我有一个正在运行的 Linux 桌面,它连接到两个不同的网络:
- WLAN 适配器连接到 WiFi 网络用于:
- 互联网
- 连接到 VPN
openconnect
- LAN 连接到本地路由器用于:
- 与其他本地计算机的通信:
- Linux 桌面上的 vnc 服务器供其他客户端使用
- SSH 连接
- 与其他本地计算机的通信:
我的问题是我不知道如何控制哪些任务自动使用哪些网络。如果我先登录 wifi,然后再连接硬线,互联网似乎可以正常工作。如果我反过来做的话就不会了。
如果我从另一台计算机 ssh 登录,我可以选择适当的路由器,然后从客户端启动 vnc 服务器将强制选择要使用的网络适配器的正确选择。
因此,一个首要问题是,是否有一种方法可以设置规则或配置,以便将这些不同的任务定向到适当的网络适配器?
答案1
是的。
在这里进行一些猜测,但听起来您的两个网络适配器都配置为 DCHP,或者都在其配置中指定了默认网关。
一个好的经验法则是一次只有一个默认网关,并根据需要添加静态路由。
一个默认网关
如果您有两个默认网关,每个接口一个,那么网络可能会变得非常不稳定。根据您希望网络如何运行,您有多种选择。
以下是一些建议:
- 我建议您在有线接口上设置一个没有默认网关的静态 IP 地址。
- 让您的 wifi 使用 DHCP 并接受来自 dhcp 服务器的默认网关。
根据需要配置静态路由
ssh
除非您通过位于其他子网上的有线以太网连接到主机,否则上述更改可能会解决您的大部分问题。如果是这样,就该设置静态路由了。
这是一个例子:
ip route add 172.16.100.0/24 via 172.16.1.1 dev eth0
此命令通过从接口到达的172.16.100.0/24
路由器添加到网络的新静态路由。 (假设可以从您的主机访问路由器,听起来确实如此)。172.16.1.1
eth0
为您需要路由到的每个外部网络添加其中之一,而不是指定默认网关。
额外奖励:要检查内核如何将流量路由到网络,也只需询问ip
即可。
ip route get 172.16.1.10
响应应包括排除路由设置故障所需了解的所有信息。
一旦你弄清楚了这一点并开始工作,你就可以将其滚动到你的netplan
配置中并使其永久化。