推荐通过systemd-resolved修改全局DNS:编辑/etc/systemd/resolved.conf,取消DNS=注释并填入114.114.114.114 223.5.5.5,执行sudo systemctl daemon-reload && sudo systemctl restart systemd-resolved,再建立软链接ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf。

您正在使用银河麒麟操作系统,需要通过终端命令快速、准确地修改系统DNS配置,解决网页打不开、域名解析慢或部分网站无法访问的问题。
确认当前DNS管理机制
执行以下命令查看 /etc/resolv.conf 文件头部注释:
cat /etc/resolv.conf
若首行显示 # Generated by NetworkManager,说明DNS由NetworkManager接管;若显示 # Managed by systemd-resolved,则由systemd-resolved服务控制;若无任何生成标记且内容为手动写入的nameserver,则可能处于裸配置状态。这一步决定后续该走哪条路径,跳过此判断直接改文件可能导致配置被覆盖。
方法一:修改 systemd-resolved 配置(推荐用于默认桌面/服务器环境)
该方式适配银河麒麟V10 SP1及后续版本,配置持久、优先级最高,且自动同步至/etc/resolv.conf。
第一步:用vim编辑主配置文件:sudo vim /etc/systemd/resolved.conf
第二步:定位到[Resolve]段落,删除DNS=行开头的#,并填入两组国内高速DNS,例如:DNS=114.114.114.114 223.5.5.5。如果原文件中FallbackDNS=也被注释了,同样取消注释并填入备用地址,如FallbackDNS=8.8.8.8 1.1.1.1。
第三步:保存退出后重载并重启服务:sudo systemctl daemon-reload && sudo systemctl restart systemd-resolved
第四步:验证生效情况:systemd-resolve --status | grep "DNS Servers"。输出应包含您刚设置的两个IP,且不为空。
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
方法二:用 nmcli 配置 NetworkManager 连接级 DNS(图形界面用户首选)
当您在桌面环境中点击网络图标能弹出连接设置时,此方法最稳妥,它把DNS绑定到具体连接,避免被DHCP自动覆盖。
方法1:列出所有连接名称nmcli con show
记下目标连接名,常见为“有线连接 1”或“Wired connection 1”。
方法2:为该连接设置DNS并禁用DHCP分发nmcli con mod "有线连接 1" ipv4.dns "114.114.114.114 223.6.6.6"nmcli con mod "有线连接 1" ipv4.ignore-auto-dns yes
方法3:重启连接使配置落地nmcli con down "有线连接 1" && nmcli con up "有线连接 1"
这一步必须执行,否则DNS不会写入/etc/resolv.conf。
注意:如果执行后cat /etc/resolv.conf仍显示旧DNS,请检查是否遗漏了ignore-auto-dns yes——没有它,DHCP响应会强行覆盖您的设置。
方法三:直接写入 /etc/resolv.conf(仅限临时验证)
这一步最快,但仅适用于调试或应急场景。若系统启用了systemd-resolved或NetworkManager,该文件会在服务重启、网络重连后被自动还原。
执行:echo -e "nameserver 114.114.114.114\nnameserver 223.5.5.5" | sudo tee /etc/resolv.conf
验证是否立即生效:ping -c 2 www.baidu.com。能通说明DNS已切换,但请勿长期依赖此法——下次NetworkManager重连或systemd-resolved重启,配置就丢了。

















