问题描述

  • 在工控机上使用ubuntu18.04进行控制,将激光雷达等其它硬件通过网线连接到工控机的网口,并且工控机使用无线网卡进行连接因特网(浏览网页)。

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

  • 这是因为工控机默认为网口连接的网络优先级大于无线网络的优先级(只有无线网络才能连接因特网)


解决方法

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

具体方法

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

方法一:适用于临时调试时,提升所连临时网络的优先级,断网后重连失效,工控机重启后还需要重新设置

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

route -n

结果如下:

英文界面:
在这里插入图片描述
中文界面:
在这里插入图片描述

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

1.2 终端输入命令,指定metric值

可以通过网卡名称指定或者通过网关IP指定(任选其一即可)

第一种:

  • 通过网卡名称指定metric值,首次操作安装ifmetric,然后进行更改metric值
  • sudo apt install ifmetric:安装ifmetric
  • sudo ifmetric wlp1s0 90:命令中wlp1s0是无线网卡的名称,更改无线网卡wlp1s0的跃点数(metric值)为90(数值越小,优先级越高)
sudo apt install ifmetric
sudo ifmetric wlp1s0 90

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

英文界面:
在这里插入图片描述
中文界面:
在这里插入图片描述

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

第二种:

  • 通过网关IP指定metric值
ip route add default via 192.168.43.1 metric 80

命令中192.168.43.1是无线网卡所连的网关IP。
终端执行命令route -n重新查询路由表,检查对应的metric值是否设置成功,结果如下图。

英文界面:
在这里插入图片描述

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


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

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

  • 查看配置文件
ls /etc/netplan

可以看到配置文件名称。

  • 打开配置文件
sudo gedit /etc/netplan/*.yaml

命令中ls /etc/netplan中看到的文件名,比如我的是50-cloud-init.yaml。

  • 编辑配置文件

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 配置网络

  • 测试配置文件
sudo netplan try
  • 应用配置文件
sudo netplan apply

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


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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐