解决办法:
后来查了相关资料,发现自 17.10版本 开始,Ubuntu 已放弃在 /etc/network/interfaces 里设置静态 IP 的办法了,即使配置也不会生效,这就悲剧了,浪费了大量时间来查找配置文件不能生效的问题。
下面是详细的恢复过程:
系统环境

root@wyf~# lsb_release -aNo LSB modules are available.Distributor ID:UbuntuDescription:Ubuntu 20.04.4 LTSRelease:20.04Codename:focal
操作步骤:

1、打开终端并编辑网络计划配置文件:
nano /etc/netplan/00-installer-config.yaml
2、将以下配置块添加到文件中,并将值替换为您自己的值:
network: version: 2 ethernets: enp0s31f6: #配置网卡的名称,可以通过 ip a 或者 ip addr show 来进行查看 dhcp4: no #关闭DHCP功能,如果打开 则设置为 true addresses: [192.168.6.100/24] # 配置自己的静态ip地址和子网掩码 gateway4: 192.168.6.1 # 配置自己所在内网的网关ip nameservers: addresses: [8.8.8.8, 8.8.4.4] # 配置自己的DNS服务器地址,如有多个,地址间用英文逗号隔开
3、保存文件并退出编辑器。
4、将上述配置文件生效
netplan apply
5、验证上述配置是否生效
ip addr show
6、重新启动网络服务
systemctl restart systemd-networkd
如果仍然遇到未应用接口配置的问题,可以尝试以下步骤:
1、通过运行以下命令检查网络计划配置是否有效:
netplan --debug validate
2、检查网络管理器是否通过运行以下命令干扰网络计划配置:
systemctl status NetworkManager
如果它正在运行,可以使用以下命令停止并禁用:
systemctl stop NetworkManagersystemctl disable NetworkManager
然后,重新启动网络服务:
sudo systemctl restart systemd-networkd
3、检查 netplan 配置与其他网络配置文件(如 /etc/network/interfaces)之间是否存在冲突。如果有,可能需要删除或修改这些文件以避免冲突。
注:20.04版本改成了 netplan 方式 ,网卡配置写在 /etc/netplan/01-network-manager-all.yaml 或者类似名称的 yaml 文件里。
关于配置文件的yaml 语法
1、冒号后面的内容,需要使用空格隔开
2、缩进必须统一,不能空格和tab混用
3、使用#号来注释代码
4、YAML文件扩展名通常为yml或yaml