新版Ubuntu网络配置不生效问题
新版Ubuntu网络配置不生效问题
在使用 Ubuntu Cloud Image 或带有 cloud-init
的镜像时,系统的网络配置默认由 cloud-init 托管。cloud-init 会生成 netplan 配置文件,因此手动修改 netplan 文件可能会被覆盖,看起来像 netplan 配置“不生效”。
在新版的ubuntu-22.04.5中默认开启cloud-init(其他版本暂未发现)。解决办法如下:
1 软禁用(保留软件包)
创建禁用标志文件:(前文安装的ubuntu-24.04.3默认就是此方式)
touch /etc/cloud/cloud-init.disabled
# 再次修改网络配置即可生效
vim /etc/netplan/50-cloud-init.yaml
netplan apply # 立即生效网络配置
reboot # 重启后也会生效
通过配置禁用网络管理模块:(ubuntu-22.04.5网卡配置文件中介绍可用此方式)
echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
# 再次修改网络配置即可生效
vim /etc/netplan/50-cloud-init.yaml
netplan apply # 立即生效网络配置
reboot # 重启后也会生效
ubuntu-22.04.5默认网络配置文件
2 彻底卸载
移除软件包及配置文件:
sudo apt purge cloud-init -y
sudo rm -rf /etc/cloud /var/lib/cloud
风险:可能导致依赖 cloud-init 的云平台功能异常。
3 内核启动参数完全禁用 cloud-init
# 在 GRUB 启动参数中添加:
cloud-init=disabled
# 然后更新 GRUB
sudo update-grub
这个方法会让 cloud-init 完全不启动,适合完全手动管理系统。
4 DNS 配置
从 Ubuntu 18.04 开始默认启用了 systemd-resolved 来管理 DNS。在该版本之后,/etc/resolv.conf
通常是一个指向 /run/systemd/resolve/stub-resolv.conf
的符号链接,文件的内容通常是 nameserver 127.0.0.53
,表示使用本地的 systemd-resolved 作为 DNS 解析器。
新版本DNS配置文件中有说明:
新版本直接修改 /etc/resolv.conf
文件将不再生效,建议使用 systemd-resolved 管理。
# 修改dns配置
vim /etc/systemd/resolved.conf
[Resolve]
DNS=8.8.8.8 8.8.4.4 # 首选DNS
FallbackDNS=1.1.1.1 1.0.0.1 # 备用DNS
Domains=waluna.local # 搜索域(域名后缀)
# 重启 systemd-resolved 服务
systemctl restart systemd-resolved
# 检查生效后的 DNS
resolvectl status
systemd-resolve --status # 需要安装命令
# 查看缓存中生效的配置
cat /run/systemd/resolve/stub-resolv.conf
配置DNS
如果不想使用 systemd-resolved 服务管理,可以采用下面方式:
# 禁用 systemd-resolved 服务
systemctl disable --now systemd-resolved.service
# 修改 dns 配置文件
vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
search waluna.local
这样就恢复成之前的配置方式了~
关于我
全网可搜《阿贤Linux》
CSDN、知乎、哔哩哔哩、博客园、51CTO、掘金、思否、阿里云、腾讯云、华为云、今日头条、百家号、GitHub、个人博客
公众号:阿贤Linux
个人博客:blog.waluna.top
原文链接: 新版Ubuntu网络配置不生效问题 blog.waluna.top/2025/09/14/1501/.
- 点赞
- 收藏
- 关注作者
评论(0)