银河麒麟系统内网dns配置失败时,需按优先级依次检查systemd-resolved、网卡静态配置、nsswitch.conf、networkmanager及/etc/hosts五种方法,确保dns解析路径正确启用且域名匹配生效。

如果您在银河麒麟系统中配置了内网DNS服务器(例如192.168.10.5),但无法通过域名访问局域网内部服务(如intranet.local、fileserver、gitlab.internal等),则很可能是DNS解析未指向内网DNS,或解析顺序被跳过。以下是多种可独立实施的内网DNS设置方法,适配不同网络管理机制与部署场景:
一、通过 systemd-resolved 配置内网DNS(推荐用于V10 SP1+桌面及服务器环境)
该方法将内网DNS设为最高优先级解析源,并支持按域名后缀定向解析(如仅对*.internal查询该DNS),避免污染公网解析路径,适用于需同时访问内网服务与互联网的混合场景。
1、以管理员权限编辑 resolved 主配置文件:sudo vim /etc/systemd/resolved.conf
2、在[Resolve]段落中取消DNS=和Domains=行前的注释符号#,填入内网DNS地址及专属搜索域:DNS=192.168.10.5,Domains=~internal ~local ~intranet.local
3、可选:添加备用DNS用于公网解析,例如:FallbackDNS=114.114.114.114 223.5.5.5
4、保存退出后重载并重启服务:sudo systemctl daemon-reload && sudo systemctl restart systemd-resolved
5、验证内网域名是否命中指定DNS:systemd-resolve --status | grep -A5 "DNS Servers",并执行dig gitlab.internal @192.168.10.5确认连通性
二、修改网卡静态配置绑定内网DNS(适用于V4.0.2-sp4等network-scripts管理环境)
该方式将内网DNS直接写入物理网卡配置,由network服务在启动时注入/etc/resolv.conf,不依赖上层服务,稳定性高,特别适合无图形界面的内网服务器。
1、确认目标网卡名称:ip -br link | grep UP(例如输出ens33 UP)
2、编辑对应网卡配置文件:sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
3、在文件末尾新增三行:DNS1=192.168.10.5,DNS2=192.168.10.6,DOMAIN="internal local intranet.local"
4、重启网络服务:sudo systemctl restart network(V4.0.2-sp4)或sudo ifdown ens33 && sudo ifup ens33
5、检查生效结果:cat /etc/resolv.conf | grep -E "(nameserver|search)"
三、配置 /etc/nsswitch.conf 强制启用DNS解析路径(关键补全项)
即使resolv.conf已含内网DNS,若/etc/nsswitch.conf中hosts行未包含dns,系统仍将忽略所有DNS条目,仅查/etc/hosts,导致内网域名完全无法解析。
1、查看当前解析策略:grep "^hosts:" /etc/nsswitch.conf
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
2、若输出为hosts: files myhostname或不含dns,则需修正
3、编辑该文件:sudo vim /etc/nsswitch.conf
4、将hosts行完整替换为:hosts: files dns myhostname(顺序不可调换,files必须在dns前以支持本地覆盖)
5、立即生效,无需重启服务;后续所有getaddrinfo()调用均启用DNS路径
四、通过 NetworkManager 按连接配置内网DNS(桌面版图形环境适用)
该方法将内网DNS与特定网络连接(如有线连接1)绑定,避免Wi-Fi等其他连接误用内网DNS,且配置持久保存于NetworkManager数据库,不受DHCP自动覆盖影响。
1、列出所有活动连接:nmcli con show --active
2、针对内网有线连接(如“有线连接 1”)设置DNS:nmcli con mod "有线连接 1" ipv4.dns "192.168.10.5 192.168.10.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是否更新:grep nameserver /etc/resolv.conf
五、直接编辑 /etc/hosts 实现静态内网域名映射(轻量级免服务方案)
当内网DNS服务不可控、或仅需解析少量固定主机时,可绕过DNS服务,直接在本地/etc/hosts中建立IP与主机名的静态映射,零延迟、零依赖,适用于测试环境或关键服务保底。
1、以管理员权限打开hosts文件:sudo vim /etc/hosts
2、在文件末尾追加内网服务条目,格式为:192.168.10.10 gitlab.internal,192.168.10.20 fileserver.intranet.local
3、确保每行仅含一个IP与一个主机名(空格分隔),禁止使用Tab或逗号
4、保存后立即生效;执行ping -c 2 gitlab.internal验证解析










