You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server无法从DHCP服务器获取DNS配置的求助

Ubuntu Server无法从DHCP服务器获取DNS配置的求助

看起来你的Ubuntu服务器在DHCP获取DNS配置这块卡壳了,别慌,咱们一步步排查解决:

1. 先检查Netplan配置的缩进问题

YAML对缩进要求特别严格,你的手动配置可能因为缩进错误导致不生效。正确的配置格式应该是这样的(注意每个层级用2个空格,别用Tab):

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
      dhcp4-overrides:
        use-dns: false
      nameservers:
        addresses: [192.168.2.1, 8.8.8.8]

2. 确保Netplan配置生效

修改完配置文件后,必须执行以下命令让配置生效:

sudo netplan generate
sudo netplan apply

这一步很容易被忽略,一定要记得跑!

3. 检查systemd-resolved服务状态

Ubuntu Server默认用systemd-resolved管理DNS解析,先确认它是否正常运行:

systemctl status systemd-resolved

如果显示不是active (running),启动它并设置开机自启:

sudo systemctl start systemd-resolved
sudo systemctl enable systemd-resolved

4. 验证DNS配置是否正确加载

用resolvectl查看当前接口的DNS配置:

resolvectl status enp3s0

看看输出里的DNS Servers是不是你设置的192.168.2.1和8.8.8.8。另外,检查/etc/resolv.conf的软链接是否正确:

ls -l /etc/resolv.conf

正常情况下应该链接到/run/systemd/resolve/stub-resolv.conf或者/run/systemd/resolve/resolv.conf,如果是其他情况,你可以手动修正链接:

sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

5. 测试DNS解析并清除缓存

先试试用resolvectl直接解析域名:

resolvectl query www.google.com

如果之前有缓存导致解析失败,清除缓存再试:

sudo systemd-resolve --flush-caches

再用nslookup www.google.com测试,应该就能正常解析了。

额外排查:确认DHCP服务器是否推送DNS

如果上面的步骤都没解决,你可以手动触发DHCP请求,看看路由器到底有没有推送DNS配置:

sudo dhclient -v enp3s0

观察输出里有没有DNS Servers相关的字段,如果确实没有,那可能是路由器DHCP配置的问题,但你的Windows正常,所以大概率还是Ubuntu这边的配置问题。

备注:内容来源于stack exchange,提问作者Andrew Pritchard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:29:55