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

Ubuntu 22.04.2 LTS下如何手动将/etc/resolv.conf的DNS服务器设置为8.8.8.8(已安装dnsmasq并禁用systemd-resolved)

Ubuntu 22.04.2 LTS下如何手动将/etc/resolv.conf的DNS服务器设置为8.8.8.8(已安装dnsmasq并禁用systemd-resolved)

我明白你的困扰——已经禁用了systemd-resolved、装了dnsmasq并配置它只读取本地hosts文件,但/etc/resolv.conf总被自动改成127.0.0.1,想改成8.8.8.8却试过resolvconf的base文件和netplan都没用。咱们一步步来解决这个问题:

首先,先搞清楚你的/etc/resolv.conf到底是不是软链接,因为Ubuntu默认会用resolvconf或者systemd-resolved来自动生成这个文件,导致手动修改后被覆盖。先执行这条命令查看:
ls -l /etc/resolv.conf

如果输出显示它是指向/run/resolvconf/resolv.conf之类的软链接,那咱们就需要把这个自动生成的逻辑断掉,换成静态的文件:

  1. 先备份原文件,以防万一
    sudo cp /etc/resolv.conf /etc/resolv.conf.bak

  2. 删除现有的软链接
    sudo unlink /etc/resolv.conf

  3. 创建静态的resolv.conf文件
    用编辑器打开新文件:
    sudo nano /etc/resolv.conf
    然后写入你需要的DNS服务器配置,比如:

    nameserver 8.8.8.8
    nameserver 8.8.4.4  # 可选,加个备用DNS更稳妥
    

    写完按Ctrl+O保存,Ctrl+X退出编辑器。

  4. 锁定文件避免被自动修改
    把文件设为只读权限,防止其他服务偷偷改它:
    sudo chmod 644 /etc/resolv.conf
    之后要是需要修改,再用sudo chmod 666 /etc/resolv.conf临时放开权限就行。

另外,还要确保resolvconf服务不会再捣乱——你之前禁用了systemd-resolved,但resolvconf可能还在后台运行自动更新DNS配置。可以先检查它的状态:
systemctl status resolvconf
如果显示它正在运行,直接禁用并停止:
sudo systemctl disable --now resolvconf.service resolvconf.socket

至于你说修改netplan没效果,这很正常——netplan的DNS配置是给systemd-resolved或者NetworkManager这类网络管理服务用的,你已经禁用了systemd-resolved,所以netplan的设置自然不会生效。

最后再确认一下:你的dnsmasq配置里resolv-file=留空、addn-hosts=/home/users/hosts.dnsmasq的设置没问题,它只会处理本地hosts请求,不会干扰系统用8.8.8.8作为全局DNS。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 14:39:36