指令如下,这是我目前找到的最优雅,最快速的方法:
nmcli connection modify eth0 \
ipv4.dns 192.168.31.199 \
ipv4.method manual \
ipv4.gateway 192.168.31.199 \
connection.autoconnect yes
nmcli c up eth0
nmcli connection modify eth0 \
ipv4.addresses 192.168.23.60/24 \
ipv4.dns 192.168.23.65 \
ipv4.method manual \
ipv4.gateway 192.168.23.65 \
connection.autoconnect yes
nmcli c up eth0
# 访问外网(下载软件)
nmcli connection modify eth0 \
ipv4.addresses 192.168.23.69/24 \
ipv4.dns 192.168.23.65 \
ipv4.method manual \
ipv4.gateway 192.168.23.65 \
connection.autoconnect yes
nmcli c up eth0
# 访问内网
nmcli connection modify eth0 \
ipv4.addresses 192.168.23.69/24 \
ipv4.dns 192.168.20.21 \
ipv4.method manual \
ipv4.gateway 192.168.23.1 \
connection.autoconnect yes
nmcli c up eth0
nmcli connection modify eth0 \
ipv4.addresses 172.20.11.206/24 \
ipv4.dns 172.20.11.210 \
ipv4.method manual \
ipv4.gateway 172.20.11.210 \
connection.autoconnect yes
nmcli c up eth0
后续:
一次巧合的机会,我发现我的一台服务器的/etc/resolv.conf文件中的nameserver会自动更新为默认的ip,我注意到这台机器的/etc/resolv.conf是由一个脚本管理的(并非NetworkManager),我猜想可能是我的失误操作,导致了这个问题(我记得我曾在一台机器上安装过NetPlan)。所以我又手动执行了一次上面的代码。
20220115后续:
今天需要再用一下虚拟机,因为之前网络升级,所以修改了网段,所有虚拟机网络都需要重新配置一下。结果我虚拟机网络配好了后,死活连不上,且自己ping自己都无法ping通。我翻看了上一个后续,我以为是该问题导致的。所以我想办法关闭了NetworkManager,关闭NetworkManager后,是无法使用nmcli指令的,所以我分析不是这个问题导致的。
最后几经调试,我发现我把192.168.31.151
写成了191.168.31.151
,我也不知道这是一个什么神奇而又愚蠢的错误。
nmcli c m eth0 \
ipv4.addresses 191.168.31.151/24 \
ipv4.gateway 192.168.31.199 \