当系统中存在多个网口, 如果希望将指定网口设置成默认的gateway, 可以通过设置网口的 metric 实现. 这在调试内网机器, 临时用自己手机做热点让机器获得公网访问能力时特别有用.
调整路由权重 Mertic
查看路由表route -n
, -n表示不将IP解析为域名
milton@b85m2:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.9.1 0.0.0.0 UG 100 0 0 enp2s0
0.0.0.0 192.168.43.1 0.0.0.0 UG 600 0 0 wlx00265a071123
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 docker0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.9.0 0.0.0.0 255.255.255.0 U 100 0 0 enp2s0
192.168.43.0 0.0.0.0 255.255.255.0 U 600 0 0 wlx00265a071123
然后比如要调整 43.1 为权重更高的默认网关, 则使用下面的命令, metric 值越小权重越高
sudo ip route replace default via 192.168.43.1 metric 1
# 或者
sudo ip route replace 0.0.0.0/0 via 192.168.43.1 metric 1
查看修改后的结果, 这样除了下面指定的子网, 其它的网段都会默认走 43.1
milton@b85m2:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.43.1 0.0.0.0 UG 1 0 0 wlx00265a071123
0.0.0.0 192.168.9.1 0.0.0.0 UG 100 0 0 enp2s0
0.0.0.0 192.168.43.1 0.0.0.0 UG 600 0 0 wlx00265a071123
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 docker0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.9.0 0.0.0.0 255.255.255.0 U 100 0 0 enp2s0
192.168.43.0 0.0.0.0 255.255.255.0 U 600 0 0 wlx00265a071123
使用 nmcli 调整权重
使用 nmcli 调整可以在重启后继续生效. 先查看 connection
nmcli connection
针对connection调整权重
nmcli connection modify "Mate 20" ipv4.route-metric 10
重启connection应用权重
nmcli connection down "Mate 20"
nmcli connection up "Mate 20"
使用 nmcli 命令行操作连接WIFI
查看设备列表
$ nmcli d
DEVICE TYPE STATE CONNECTION
...
wlan0 wifi disconnected --
如果WIFI没开启要先开启
$ nmcli r wifi on
查看检测到的WIFI网络
$ nmcli d wifi list
* SSID MODE CHAN RATE SIGNAL BARS SECURITY
...
my_wifi Infra 5 54 Mbit/s 89 ▂▄▆█ WPA2
连接到指定的WIFI网络
$ nmcli d wifi connect my_wifi password <password>