ubuntu18.04同时使用多个有线网络和无线网络时如何设置优先级

问题描述:

当在工控机上使用ubuntu18.04进行工业控制时,我们经常需要将工控机与局域网、其他硬件等通过网线连接,同时我们的工控机可能还配置了无线网卡用来连接因特网(用来浏览网页或者下载安装因特网上的各种包)。

在这种情况下,我们经常会遇到一个问题:工控机同时连接了多个有线网口以及用无线网卡连接了因特网,但是打开浏览器时无法连接到因特网或者是使用apt工具下载安装功能包时无法连接到因特网。 


原因分析:

打开浏览器或者使用apt工具下载包时系统默认使用了其他网口,而没有使用连有因特网的无线网卡。即无线网卡的使用优先级较低。 


解决思路:

通过修改网络的metric值提高无线网卡的使用优先级。

metric是为路由指定的跃点数(范围是 1 ~ 9999),它用来在路由表里的多个路由中选择与转发包中目标地址最为匹配的路由。跃点数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性等。metric的值越小,优先级越高。如果两块网卡的metric值相同,就会因为抢占优先级出现网卡冲突,将会有一块网卡无法连接。


具体方法:

1 方法一:使用终端命令临时提升无线网卡的优先级

(方法一适用于临时调试时,提升所连临时网络的优先级,断网后重连失效,偶尔使用时方便快捷)

1.1 打开终端,输入下方命令,查询路由表

route -n

结果如下图:

ubuntu18.04同时使用多个有线网络和无线网络时如何设置优先级_第1张图片

图中Gateway一列显示的是网关IP,Iface一列显示的是网卡名称(eno1、enp6s0是有线网口名称,wlp1s0是无线网卡名称)。

1.2 终端输入命令,指定metric值,可以通过网卡名称指定或者通过网关IP指定(任选其一即可)

1.2.1 通过网卡名称指定metric值

sudo ifmetric wlp1s0 90

命令中wlp1s0是无线网卡的名称。

终端执行命令route -n重新查询路由表,检查对应的metric值是否设置成功,结果如下图。

ubuntu18.04同时使用多个有线网络和无线网络时如何设置优先级_第2张图片

图中显示wlp1s0无线网卡的metric值设置为90,低于其他网络的metric值,所以会优先使用。此时浏览器将会使用无线网卡上网。

1.2.2 通过网关IP指定metric值

ip route add default via 192.168.43.1 metric 80

命令中192.168.43.1是无线网卡所连的网关IP。

终端执行命令route -n重新查询路由表,检查对应的metric值是否设置成功,结果如下图。 

ubuntu18.04同时使用多个有线网络和无线网络时如何设置优先级_第3张图片

图中显示网关192.168.43.1的metric值设置为80,低于其他网络的metric值,所以会优先使用。此时浏览器将会使用192.168.43.1网关上网。

2 方法二:使用netplan配置网络

(方法二适用于长期调试时,提升所连网络的优先级,不用每次在终端输入命令)

2.1 查看配置文件

ls /etc/netplan

可以看到配置文件名称。

2.2 打开配置文件

sudo gedit /etc/netplan/*.yaml

命令中*是步骤2.1中看到的文件名,比如我的是50-cloud-init.yaml。

2.3 编辑配置文件

network:
  version: 2
  ethernets:
    eno1: #网卡1名称,使用ifconfig -a可以查看
      dhcp4: false #false-dhcp4关闭,true-dhcp4开启
      addresses: [192.168.1.81/24] #设置本机IP及掩码
      routes:
        - to: 0.0.0.0/0
          via: 192.168.1.1 #设置路由网关
          metric: 150 #设置metric值
      optional: true
    eno4: #网卡2名称
      dhcp4: true
      dhcp4-overrides:
        route-metric: 200
  wifis:
    wlp2s0b1: #无线网卡名称
      dhcp4: true
      dhcp4-overrides:
        route-metric: 90

以上代码中展示了两种设置metric值的语法,读者可自行选择,注意要将代码中的网卡名称改为自己电脑的对应网卡名称。

详细的配置文件说明可以参考链接Ubuntu 18.04 LTS以上版本 使用 Netplan 配置网络。

2.4 测试配置文件

sudo netplan try

2.5 应用配置文件

sudo netplan apply

2.6 终端执行命令route -n查询路由表,检查对应的metric值是否设置成功。

你可能感兴趣的:(ubuntu,ubuntu)