需求:
- 操作系统: Ubuntu22.04
- 两个可以联网的网卡, 且都连接到互联网上了, 希望根据优先级实现自动切换网卡上网
- 以 root登录 或者使用 sudo 命令
开始
步骤 1:查看当前的网络连接
nmcli connection show
NAME
是连接的名称(如Wired connection 1
或有线连接 1
)DEVICE
是网卡的名称(如eno1
或enp0s8
等)
步骤 2:为网卡设置优先级
先使用命令 ip route
查看当前的优先级
使用 nmcli
修改连接的 ipv4.route-metric
参数来设置优先级。
设置主网卡(优先级高,metric
值小):
假设主网卡是 eno2
,对应的连接名称是 有线连接 2
,可以运行以下命令:
nmcli connection modify "有线连接 2" ipv4.route-metric 100
设置备用网卡(优先级低,metric
值大):
假设备用网卡是 eno1
,对应的连接名称是 有线连接 1
,可以运行以下命令:
nmcli connection modify "有线连接 1" ipv4.route-metric 101
步骤 3:重新激活连接
修改完成后,需要重新激活连接以使配置生效。
重新激活主网卡:
nmcli connection up "有线连接 2"
重新激活备用网卡:
nmcli connection up "有线连接 1"
步骤 4:验证配置
使用以下命令查看当前的路由表,确认优先级是否生效:
ip route
- 可以看到
eno2
的metric
值为100
,优先级高。 eno1
的metric
值为101
,优先级低。
当 eno2
无法连接时,系统会自动切换到 eno1
注意事项
- 永久生效:通过
nmcli
修改的配置会保存到NetworkManager
的配置文件中,重启后依然有效。