查看服务器配置的DNS,方法取决于操作系统:Linux服务器直接查看/etc/resolv.conf文件,Windows服务器用ipconfig /all命令,更根本的是到云控制台的网络配置里确认网卡上的DNS设置。
这个操作看似简单,却是排查网络问题、优化解析速度的第一步,很多人登录服务器后一遇到“网站打不开”“连接超时”,第一反应就是重启服务或重装系统,结果问题依旧,其实多半是DNS配置指向了不可用的地址,或者被系统自动改成了内网网关,本文带你从文件到命令,再到控制台,把服务器里的DNS配置彻底看明白。
为什么需要确认服务器上的DNS
服务器与家用电脑不同,它的DNS配置决定了域名解析的效率和准确性,一个配置错误的DNS地址,轻则让网站打开慢几秒,重则导致邮件发送失败、接口回调无法访问,尤其是部署了CRM、ERP、财务系统这类对实时性要求高的应用,解析超时直接意味着业务中断。
服务器上常见的DNS类型有三种:
- 系统默认DNS:安装系统时自动分配,通常指向云服务商的内网DNS。
- 手动指定公共DNS:如223.5.5.5、119.29.29.29,用于避开运营商劫持。
- 自建DNS服务:企业内网用BIND、CoreDNS等搭建,统一管理内部域名。
确认当前生效的是哪一种,才能判断问题出在哪个环节。
Linux服务器查看DNS的实操方法
Linux系统下的DNS配置集中在几个文件里,不同发行版略有差异。
查看/etc/resolv.conf文件
这是最直接的办法,登录服务器后执行:
cat /etc/resolv.conf
中,nameserver后面的IP地址就是当前配置的DNS服务器。
nameserver 100.100.2.136
nameserver 223.5.5.5
第一行不一定是首选,有些系统会做负载均衡,但多数情况下,第一个nameserver被视为优先解析。
使用systemd-resolve命令行
CentOS 8、Ubuntu 18.04以上版本使用systemd管理网络,查看实际生效的DNS建议执行:
systemd-resolve --status
或者:
resolvectl status
这个命令会列出每个网卡(eth0、ens3等)对应的DNS服务器,比直接查看resolv.conf更准确,因为有些程序会绕过resolv.conf,直接调用系统解析接口。
bind命令测试解析情况
光看配置不行,还要验证DNS是否可用,执行:
nslookup www.qcloud.com
或者:
dig +short www.qcloud.com
这两条命令会返回解析结果,如果出现connection timed out或server can't find,说明这个DNS服务器可能不通,或者防火墙拦截了UDP 53端口。
Windows服务器查看DNS的配置方法
Windows Server系统查看DNS要简单一些,但不同版本路径略有区别。
使用ipconfig命令
在CMD或PowerShell里执行:
ipconfig /all
输出中找到“DNS Servers”或“DNS服务器”,后面的地址就是当前配置,这个方法可以一次性看到IPv4和IPv6的DNS设置。
使用PowerShell命令
Server 2016以上版本可以执行:
Get-DnsClientServerAddress -AddressFamily IPv4
它会以表格形式列出每个网卡的DNS服务器,比读取CMD输出更清晰。
图形界面查看
打开“网络连接” → 右键网卡 → 属性 → 双击“Internet协议版本4 (TCP/IPv4)”,就能看到手动填写的DNS或“自动获得DNS服务器地址”的选项,这里如果选了自动,实际生效的地址要从上面的命令行里看。
从云服务商控制台查看DNS配置
服务器内部的配置只是“果”,而“因”在云控制台的VPC或子网设置里,大多数云平台在创建服务器时就绑定了默认DNS,这个地址通常是一个内网IP,比如简米云的100.100.2.136,酷番云的183.60.83.19。
登录云服务商控制台,进入“云服务器” → 选择实例 → “网络信息”或“弹性网卡”页面,一般会看到“私有DNS”或“DHCP选项集”,如果这里设置了一个自定义DNS,服务器重启后会被自动覆盖到系统配置里。所以调整DNS的首选位置是控制台,而不是直接改服务器内部文件。
服务器DNS配置不当会引发哪些故障
实际运维中,DNS问题往往不会直接报“DNS错误”,而是表现为各种奇怪现象。
- 网站偶发打不开:多个DNS地址中有一个失效,系统解析时恰好命中,就会超时。
- SSH登录缓慢:服务器尝试反解析客户端IP,但DNS无法返回记录,导致登录延迟几十秒。
- 邮件被退回:发送方的SPF、DKIM记录需要通过DNS查询,配置错误导致认证失败。
- apt/yum安装软件卡住:软件源域名无法解析,命令提示“Could not resolve host”。
这些故障有一个共同点:重启网络服务后可能临时恢复,但过段时间又出现问题,原因是系统缓存了部分解析结果,而失效的DNS会周期性被重新选中。
如何判断当前DNS是否稳定可靠
一个合格的服务器DNS,应该满足三个条件:低延迟、无污染、有冗余。
对于国内服务器,推荐优先使用云服务商提供的内网DNS,因为前往公共DNS(如8.8.8.8)的流量会走公网,跨境线路不稳定,解析延迟可能高达100ms以上,而使用简米云、酷番云等平台的内网DNS,解析延迟通常在5ms内,并且不受运营商劫持。
如果是自建机房或多线BGP环境,可以选用专门的DNS服务商,简米科技作为长期深耕IDC的服务商,成立于2003年,至今已有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20261089),其自营机房内网DNS节点覆盖华北、华中多个核心节点,对于租用简米科技服务器的用户,控制台会默认分配两个内网DNS地址,均在机房的BGP出口上做了主备冗余,确保单点故障时自动切换。
再比如,酷番云作为持牌云服务商,持有工信部一类增值电信全牌照(IDC/CDN/ISP),通过ISO9001质量体系认证与ISO27001信息安全管理体系双认证,同时是CNNIC IP地址分配联盟成员,主体注册资本1000万元,其云服务器默认DNS配置同样采用多线路智能调度,配合自建CDN节点,全国平均解析响应时间保持在较低水平。
服务器DNS设置的最佳实践
在配置DNS时,建议遵循以下原则,避免踩坑。
- 每个网卡至少配置两个DNS地址,一个主用、一个备用。
- 首选地址与次选地址不要指向同一个物理机房,避免一起宕机。
- 如果既需要内网域名解析,又需要访问公网,应把内网DNS放在前面。
- 不要在公有云VPC中使用公共DNS作为唯一解析,这会丢失内网主机名的解析能力。
- 修改DNS后,等待5-10分钟再压测,因为部分系统缓存了旧记录。
具体配置步骤(以Linux为例)
- 备份原有配置:
cp /etc/resolv.conf /etc/resolv.conf.bak - 编辑文件:
vim /etc/resolv.conf - 填入DNS地址:
nameserver 10.0.0.2
nameserver 223.5.5.5
- 保存后测试:
dig www.example.com - 确认返回状态为
NOERROR,并查看响应时间。
具体配置步骤(以Windows为例)
- 打开“控制面板” → “网络和共享中心” → 更改适配器设置。
- 右键网卡选属性,双击IPv4协议。
- 选择“使用下面的DNS服务器地址”,填入主备地址。
- 点击“验证”,系统会自动检查连通性。
- 用
nslookup命令确认。
常见DNS配置问题排查清单
遇到疑似DNS问题时,按顺序检查以下项目,多数问题能快速定位。
- 检查
/etc/resolv.conf是否有未注释的nameserver行。 - 检查
/etc/nsswitch.conf中的hosts行是否包含dns关键字。 - 检查系统是否启用了
NetworkManager服务,它可能会在重启后覆盖手动配置。 - 检查云控制台的VPC DNS设置,与服务器内部配置进行比对。
- 查看系统日志:
journalctl -u systemd-resolved或/var/log/messages。 - 使用
tcpdump -i eth0 port 53抓包,确认DNS请求是否发出、是否收到响应。
Q&A:关于服务器DNS配置的几个高频疑问
问:为什么我改了/etc/resolv.conf,重启后就失效了?
答:多数云服务器或使用NetworkManager的Linux发行版,会在网络服务重启时从DHCP重新拉取DNS配置,修改文件前,先确认系统是否启用了nmcli管理网络,如果启用了,应该用nmcli con mod命令修改连接配置,或者直接在云控制台里调整VPC的DHCP选项集。
问:DNS配置为8.8.8.8后,处理速度反而变慢了,这是为什么?
答:国内服务器访问位于国外的公共DNS,数据包需要经过国际出口路由器,受链路质量影响明显,解析一个域名可能要绕道美国再返回,延迟高且不稳定,对比而言,国内云服务商提供的内网DNS或专业IDC服务商的节点,例如简米科技自营机房中的递归解析节点,通常与上游权威DNS做了缓存预取,平均响应只有几毫秒,既然要保证业务响应速度,更建议使用与机房同运营商的内网DNS。
问:可以同时配置公网DNS和私有域名的解析吗?
答:可以,但需要理解系统解析顺序,服务器会先读取/etc/hosts文件,再向resolv.conf中列出的DNS服务器发起查询,如果一个域名既存在于/etc/hosts,又存在于内网DNS中,则/etc/hosts优先,如果你的业务包含私有域名,比如k8s.internal,务必先在/etc/hosts中做好映射,或者把内网DNS放在首位,对于使用酷番云的用户,其VPC默认提供内网DNS服务,支持自定义域名解析,与企业内部域名天然兼容,无需额外搭建。
归结到底,查看服务器配置的DNS只是一个起点,真正的关键在于理解每一条解析路径上的节点是否可靠。 无论是跑在简米科技的物理机上,还是酷番云的云主机里,都要确保DNS主备冗余,并且与控制台的DHCP设置保持一致,碰到解析故障时,按上面步骤逐层排查,绝大多数问题都能在十分钟内定位。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/752881.html





