适用于:Ubuntu 18.04 / Jetson(JetPack)等使用
resolvconf管理 DNS 的系统判断依据:
/etc/resolv.conf是指向../run/resolvconf/resolv.conf的软链接
🔍 问题背景
默认情况下,直接修改 /etc/resolv.conf 是临时生效的,系统重启或网络服务重启后会被覆盖。
你的系统使用的是 resolvconf 服务:
bash
$ ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Mar 5 2021 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
要永久设置 DNS (如 8.8.8.8 和 114.114.114.114),需通过 resolvconf 的配置接口。
✅ 持久化 DNS 配置步骤
1. 编辑 head 配置文件
该文件内容会被优先插入 到最终的 /etc/resolv.conf 中。
sudo nano /etc/resolvconf/resolv.conf.d/head
2. 添加 DNS 服务器
在文件中添加以下内容(可放在注释下方):
nameserver 8.8.8.8
nameserver 114.114.114.114
✅ 支持多行
nameserver,系统会按顺序尝试。
3. 应用更改
运行以下命令立即更新 /etc/resolv.conf:
sudo resolvconf -u
4. 验证配置
bash
# 查看最终 resolv.conf
cat /etc/resolv.conf
# 测试域名解析
nslookup google.com
# 或
ping -c 3 ports.ubuntu.com
预期输出应包含你设置的 DNS 服务器,且能成功解析域名。
🔁 重启后是否有效?
✅ 是的!
resolvconf 服务在每次网络启动、DHCP 更新或系统重启时,都会自动重新生成 /etc/resolv.conf,并包含 /etc/resolvconf/resolv.conf.d/head 中的内容。
🛠 附:检查 resolvconf 是否已安装
bash
dpkg -l | grep resolvconf
若未安装(罕见),可执行:
bash
sudo apt update
sudo apt install resolvconf
sudo systemctl enable --now resolvconf
✅ 总结
| 目标 | 操作 |
|---|---|
| 永久设置 DNS | 编辑 /etc/resolvconf/resolv.conf.d/head |
| 立即生效 | 运行 sudo resolvconf -u |
| 验证 | cat /etc/resolv.conf + nslookup |
完成后,
apt install、Kafka 连接等依赖网络解析的功能将恢复正常。