如何控制Ubuntu上不同的事情使用哪个网络?

如何控制Ubuntu上不同的事情使用哪个网络?

系统:

Ubuntu 18.10

我有一个正在运行的 Linux 桌面,它连接到两个不同的网络:

  • WLAN 适配器连接到 WiFi 网络用于:
    • 互联网
    • 连接到 VPNopenconnect
  • LAN 连接到本地路由器用于:
    • 与其他本地计算机的通信:
      • Linux 桌面上的 vnc 服务器供其他客户端使用
      • SSH 连接

我的问题是我不知道如何控制哪些任务自动使用哪些网络。如果我先登录 wifi,然后再连接硬线,互联网似乎可以正常工作。如果我反过来做的话就不会了。

如果我从另一台计算机 ssh 登录,我可以选择适当的路由器,然后从客户端启动 vnc 服务器将强制选择要使用的网络适配器的正确选择。

因此,一个首要问题是,是否有一种方法可以设置规则或配置,以便将这些不同的任务定向到适当的网络适配器?

答案1

是的。

在这里进行一些猜测,但听起来您的两个网络适配器都配置为 DCHP,或者都在其配置中指定了默认网关。

一个好的经验法则是一次只有一个默认网关,并根据需要添加静态路由。

一个默认网关

如果您有两个默认网关,每个接口一个,那么网络可能会变得非常不稳定。根据您希望网络如何运行,您有多种选择。

以下是一些建议:

  1. 我建议您在有线接口上设置一个没有默认网关的静态 IP 地址。
  2. 让您的 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.1eth0

为您需要路由到的每个外部网络添加其中之一,而不是指定默认网关。

额外奖励:要检查内核如何将流量路由到网络,也只需询问ip即可。

ip route get 172.16.1.10

响应应包括排除路由设置故障所需了解的所有信息。

一旦你弄清楚了这一点并开始工作,你就可以将其滚动到你的netplan配置中并使其永久化。

相关内容