推荐通过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。

如果您在使用银河麒麟V10操作系统时发现网页加载缓慢、域名解析延迟或部分网站无法访问,则可能是当前DNS服务器响应慢或不可靠所致。以下是针对该问题的多种修改DNS配置的方法,每种方法均适配不同网络管理机制与使用场景。
一、通过 systemd-resolved 修改全局DNS(推荐用于大多数桌面及服务器环境)
该方法直接作用于系统级DNS解析服务 systemd-resolved,配置持久、优先级高,且能自动同步至 /etc/resolv.conf,适用于麒麟V10 SP1及后续版本默认启用该服务的系统。
1、以管理员权限编辑 resolved 配置文件:sudo vim /etc/systemd/resolved.conf
2、定位到 [Resolve] 段落,取消 DNS= 行前的注释符号 #,并填入高速公共DNS,例如:DNS=114.114.114.114 223.5.5.5
3、可选:取消 FallbackDNS= 注释并填写备用DNS,如:FallbackDNS=8.8.8.8 1.1.1.1
4、保存退出后重载并重启服务:sudo systemctl daemon-reload && sudo systemctl restart systemd-resolved
5、验证配置是否生效:systemd-resolve --status | grep "DNS Servers"
二、通过 NetworkManager 修改连接级DNS(适用于图形界面及DHCP网络)
当系统使用NetworkManager管理网络(常见于桌面版),DNS应按连接单独配置,避免被DHCP自动覆盖,确保解析策略与网络策略一致。
1、列出所有网络连接名称:nmcli con show
2、针对有线连接(如“有线连接 1”),设置自定义DNS:nmcli con mod "有线连接 1" ipv4.dns "114.114.114.114 223.6.6.6"
3、禁用DHCP自动分配的DNS:nmcli con mod "有线连接 1" ipv4.ignore-auto-dns yes
4、关闭并重新启用该连接以应用配置:nmcli con down "有线连接 1" && nmcli con up "有线连接 1"
5、确认 /etc/resolv.conf 中已更新:cat /etc/resolv.conf | grep nameserver
三、直接编辑 /etc/resolv.conf(仅限临时调试或验证)
此方式绕过服务管理直接写入解析器配置,生效最快,但若系统启用 systemd-resolved 或 NetworkManager,该文件可能在服务重启或网络重连后被自动覆盖。
1、以 root 权限打开文件:sudo vim /etc/resolv.conf
2、清空原有内容,写入两行 nameserver 条目,例如:nameserver 114.114.114.114
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
3、添加备用DNS行:nameserver 223.5.5.5
4、为防止被 NetworkManager 覆盖,可设为不可修改:sudo chattr +i /etc/resolv.conf
5、如需后续修改,请先执行:sudo chattr -i /etc/resolv.conf
四、修改网卡配置文件(适用于静态IP或 network.service 管理环境)
该方法将DNS绑定至特定物理网卡,由传统 network 服务在启动时写入 /etc/resolv.conf,适合服务器版或禁用NetworkManager的场景。
1、确认网卡名称:ip -br link show | awk '{print $1}'
2、编辑对应网卡配置文件,例如 ens33:sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
3、在文件末尾新增两行:DNS1=114.114.114.114
4、添加第二行备用DNS:DNS2=223.6.6.6
5、重启网络服务:sudo systemctl restart network
五、校验并修正 /etc/nsswitch.conf 解析路径(关键修复项)
即使DNS地址已正确配置,若 hosts 解析顺序未启用 dns,系统仍将跳过DNS查询,仅依赖本地 /etc/hosts 文件,导致所有外部域名解析失败。
1、检查当前 hosts 解析策略:grep ^hosts /etc/nsswitch.conf
2、若输出为 hosts: files myhostname,则需补充 dns;
3、编辑该文件:sudo vim /etc/nsswitch.conf
4、将 hosts 行修改为:hosts: files dns myhostname
5、保存后无需重启服务,后续所有 getaddrinfo() 调用即启用 DNS 解析路径。

















