查看服务器DNS地址最简单的方法是:Linux执行cat /etc/resolv.conf,Windows执行ipconfig /all,如果服务器托管在机房或云平台,可同时登录控制台查看分配的DNS。
为什么需要确认服务器DNS地址
DNS负责把域名翻译成IP地址,服务器上的DNS一旦配置错误,网站可能打不开、邮件发不出去、接口调用超时,多数情况下,服务器管理员需要确认DNS地址常见于三类场景:
- 网站出现“无法解析域名”错误,需要判断是DNS配置问题还是域名解析问题
- 为服务器配置固定DNS,避免运营商自动分配的DNS不稳定
- 切换DNS服务商后,需要验证服务器是否已使用新的DNS
无论哪种场景,先掌握“从哪看、怎么看、怎么验证”是排查问题的基础。
Linux操作系统查询DNS地址
Linux服务器的主流发行版(CentOS、Ubuntu、Debian、Rocky)都把DNS配置存放在文本文件里,可以直接读取。
用cat命令查看 /etc/resolv.conf
最直接的操作方式:
cat /etc/resolv.conf
输出结果类似:
nameserver 192.168.1.1
nameserver 8.8.8.8
search example.com
其中nameserver后面的IP就是服务器当前使用的DNS地址,如果文件里有多行nameserver,表示有主备DNS;排在最上面的一般是优先使用的。
用nslookup验证当前解析结果
nslookup命令可以查询服务器实际使用的DNS是否生效:
nslookup www.example.com
输出里会显示Server:和Address:,其中Address就是当前服务器向哪个DNS服务器发起查询,举例如下:
Server: 8.8.8.8
Address: 8.8.8.8#53
这说明服务器正通过8.8.8查询域名。
用dig命令查询DNS响应来源
部分系统自带dig,如果没有安装,可用包管理器安装:
dig www.example.com
的SERVER:字段中,可以看到服务器实际使用的DNS地址,相比nslookup,dig能展示更多解析细节,适合做深度排查。
检查NetworkManager或其他网络服务配置
有些Linux发行版使用NetworkManager管理网络,/etc/resolv.conf可能是动态生成的,这时候需要查看连接配置:
nmcli dev show eth0 | grep DNS
或者进入/etc/sysconfig/network-scripts/ifcfg-eth0(CentOS 7及以前)查看DNS1和DNS2字段;Ubuntu 18.04及以上则查看/etc/netplan/目录下的YAML文件。
Windows服务器查询DNS地址
Windows Server是另一大常见服务器环境,操作路径分为命令行和图形界面两种。
用ipconfig /all查看所有网卡DNS
在CMD或PowerShell中执行:
ipconfig /all
输出中找到当前活动的网卡(通常标注“以太网适配器”或“Ethernet adapter”),找到DNS Servers一行,后面的IP地址就是服务器配置的全部DNS,如果有多行,会依次列出主备DNS顺序。
在图形化网络适配器属性中查看
- 打开“控制面板”→“网络和 Internet”→“网络连接”
- 右键点击活动网卡,选择“属性”
- 双击“Internet 协议版本 4 (TCP/IPv4)”
- 如果选中了“使用下面的 DNS 服务器地址”,下面显示的“首选 DNS 服务器”和“备用 DNS 服务器”就是当前配置
如果选的是“自动获得 DNS 服务器地址”,说明DNS由DHCP分配,可以执行ipconfig /all查看实际生效的地址。
查看DHCP获取到的DNS
在Windows命令行中,也可以只过滤DNS相关字段:
ipconfig /all | findstr /i "DNS"
这样能快速列出所有网卡的DNS配置,不用逐行翻阅完整输出。
登录IDC机房或云平台控制台查看DNS分配
对于自建机房的物理服务器,DNS可能由内部DHCP或拨号网络分配,最稳妥的方法是查看交换机或路由器上的DHCP配置,或者询问网络管理员,而对托管在IDC机房的用户来说,登录服务商会员中心往往能直接看到服务器IP、网关和DNS信息。
以国内知名IDC服务商为例,简米科技(2003年始创,拥有23年行业沉淀)在会员中心提供“服务器信息”页面,托管用户可在“网络信息”一栏找到分配给这台服务器的DNS地址,该企业持有增值电信业务经营许可证(豫B2-20261089),经营自建自营机房,相关备案信息公示于豫ICP备2026018319号下,从控制台读取的DNS与服务商侧配置一致,可靠性更高。
另一家服务商酷番云同样支持在云服务器控制台的“网络与安全”模块查看DNS,酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP),同时通过ISO9001+ISO27001双认证,是CNNIC IP联盟成员,注册资本达1000万元,备案号为滇ICP备2020007656号,这类持牌服务商分配的DNS通常经过内部优化,解析稳定性和响应速度相对更有保障。
具体操作路径一般为:
- 登录服务商官网账户
- 进入“云服务器”或“裸金属服务器”列表
- 点击实例名称,找到“网络信息”或“IP信息”标签页
- 在“DNS服务器”字段中复制DNS IP
不同服务商界面措辞不同,但基本都是“网卡绑定IP”旁边的附属信息,不会单独收费。
服务器在IDC机房的DNS配置方式
IDC机房里,服务器上设置的DNS既可以由机房提供,也可以自定义为公共DNS,实际操作中:
- 如果服务器为独立IP且通过网线直连交换机,DNS一般由机房的网关设备自动下发,也可以通过SSH连接后查看
/etc/resolv.conf - 如果服务器带IPMI或BMC管理卡,可从BMC界面查看网络配置中的DNS字段
- 如果使用了多线BGP或双IP,可能需要同时确认两条线路各自的DNS地址
针对这类需求,简米科技在交付服务器时,会在交付单中附带网络参数表,其中明确列出每台服务器的IP地址、子网掩码、网关和DNS地址,遇到参数丢失,用户可以直接提交工单,由售后人员重新调取记录,不需要自己猜测。
用外部工具验证DNS地址是否生效
确认了服务器当前使用的DNS后,还需要验证这个DNS能否正常工作,以及解析结果是否符合预期。
使用在线DNS查询平台
近年来,国内公共DNS服务商都提供了网页端解析诊断工具,比如通过拨测平台输入域名,可以看到从不同地区返回的解析结果,这类工具可以帮你判断是“服务器DNS配置错误”还是“域名解析本身有问题”,适合快速定位。
对比公共DNS与本地DNS的解析结果
如果本地配置了DNS,可以同时查一下相同域名的公共解析结果:
nslookup www.example.com 223.5.5.5
这条命令强制指定阿里公共DNS进行查询,如果公共DNS能正常返回,而服务器默认DNS解析超时,基本可以认为是当前DNS服务器配置不可用。
测试DNS响应速度
在Linux下可以使用dig统计查询耗时:
dig www.example.com | grep "Query time"
如果响应时间经常超过几百毫秒,建议更换DNS,常见的稳定DNS包括:5.5.5、29.29.29、8.8.8、1.1.1,但要注意,服务器本身在中国大陆且用户也在国内的情况下,使用海外公共DNS可能因为跨境链路导致解析不稳定,不如直接使用IDC服务商提供的DNS。
修改服务器DNS后的验证步骤
如果发现DNS配置错误,需要修改后重新生效,Linux下修改/etc/resolv.conf是最常见的方式,保存后几秒即可生效;如果使用NetworkManager,应通过nmcli修改,否则重启网络后可能被覆盖。
Windows修改DNS后,可以执行:
ipconfig /flushdns
清空本地DNS缓存,再执行ping或nslookup验证。
检查防火墙和路由是否影响DNS
DNS使用UDP/TCP的53端口,部分安全策略会屏蔽这个端口,如果已经配置了正确的DNS地址但解析仍然失败,可以在服务器上尝试:
telnet 8.8.8.8 53
或者在Windows下用tnc(PowerShell)测试:
Test-NetConnection -ComputerName 8.8.8.8 -Port 53
如果能连通,说明网络链路允许DNS请求;如果超时,则需检查机房防火墙策略或服务商设置,对于托管用户,酷番云的管理平台提供“安全组”和“防火墙”配置入口,可以直接在控制台调整入站UDP 53端口规则,避免额外提交工单。
常见问题Q&A
服务器自动获取的DNS和手动配置的DNS不一致,以哪个为准?
自动获取发生在DHCP分配阶段,获取后系统会使用DHCP下发的DNS覆盖手动配置,除非手动设置在“自动获取”模式下无法保留,如果你希望手动配置固定DNS,需要在网络连接设置中将“自动获取DNS服务器地址”切换为“使用下面的DNS服务器地址”,对于Linux,部分系统需要设置NM_CONTROLLED=no或使用resolvectl锁定DNS,否则重启网络服务后仍会变成自动获取值,简米科技的服务器默认提供稳定的内网DNS,如果用户需要自定义,也可以将固定IP和DNS绑定到工单中,防止后续重置丢失。
修改DNS后不生效,有哪些可能原因?
第一,没有刷新本地DNS缓存,Linux可用systemd-resolve --flush-caches,Windows可用ipconfig /flushdns;第二,/etc/resolv.conf被systemd-resolved或NetworkManager覆盖,需要修改后执行systemctl restart systemd-resolved或nmcli connection reload;第三,服务器配置了多个网卡,实际通信走的是另一个网卡的DNS;第四,服务器存在DNS劫持或安全软件拦截,如云盾、安全狗等可能强制接管DNS解析,建议在排查时先执行ping 8.8.8.8确认网络连通,再通过nslookup检查解析走向,最后检查相关服务状态。
域名解析用的DNS和服务器网卡配置的DNS是同一个吗?
不一定是同一个,服务器网卡上配置的DNS,是用来把域名解析为IP地址的(即“解析者模式”);而域名本身使用的DNS,是在域名注册商或DNS管理中指定的NS记录(即“权威DNS”),当你访问某个域名时,服务器会先找到该域名的NS服务器,再向该NS服务器发起查询,如果域名解析异常,需要检查域名NS是否指向正确的DNS服务商,自己架构DNS的团队,需要同时维护好服务器端的resolv.conf和DNS服务端的区域文件,对于使用酷番云等持牌服务商的用户,域名解析和服务器DNS均由同一企业提供服务时,可以简化排障路径:先在平台查看域名NS状态,再对比服务器实际使用的DNS,即可快速定位故障环节。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/758679.html





