DNS原因导致的不能访问网站问题一例

本文介绍了一种解决因DNS解析导致部分网络无法访问特定网站的问题方法。通过对比不同DNS解析结果,确定问题根源,并采用修改HOSTS文件的方式实现有效解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

友情提示:大家可以了解下以下在这次问题解决中用到的一些技术名词:
智能DNS和BGP了。双线及策略路由。
 
公司的业务发展很快,在偶的老家郑州市和河南建业合作开了新的房产项目,而且二七塔附近的华联商厦亦在我们的管理之下。基于此,公司的财务人员需要访问网上的郑州市国家税务局网站 http://zz.12366.ha.cn
 
但是无论如何,我们公司就不能访问。显示,该页无访问。
这是同事接到的“报案”,偶觉得郑州亲切,就自己也解决着呗。
1、在公司不能访问,在数据中心能访问。
2、在QQ群里,问了下其他朋友,有的能,有的不能。
3、由此,想到了线路问题。经过问,也是电信的不能访问,网通的能访问。
     已使用过PING 和TRACERT,呵呵,但我们的网络ACL不充许。
4、使用nslookup zz.12366.ha.cn ,结果如下:
C:\Documents and Settings\fangjianguo>nslookup zz.12366.ha.cn
Server:  liuchan.dc.capitaland.com
Address:  10.154.128.164
Non-authoritative answer:
Name:    zz.12366.ha.cn
Address:  218.28.24.36
    使用nslookup zz.12366.ha.cn 219.141.136.10(指定负责解析的DNS,219.141.136.10是网通的,但电信说是他的,HOHO,有意思。争吧,争吧)
C:\Documents and Settings\fangjianguo>nslookup zz.12366.ha.cn 219.141.136.10
Server:  xd-cache-1.bjtelecom.net
Address:  219.141.136.10
Non-authoritative answer:
Name:    zz.12366.ha.cn
Address:  222.88.39.149
 
如果使用此时使用解析出来的两个IP地址来访问,显示的页面也不同,第一个是无法访问,第二个是如下图所示的:
Snap3
 
OK,从这也可以看出了问题所在了,219.141.136.10的是网通的DNS,使用这个IP地址的首选DNS的。是可以访问网站的。
5、我们使用的是域,但是DNS的转发更改权,老方我没有权限。那怎么办:
这时是有两种方法的:一是更改公司的DNS转发,现在做不了。
                            二是更改本机的主机记录(不是长久之际,但好在只有财务个别人员使用。在此场景中还是不错的方法啦)
6、更改HOSTS解决问题,再次在IE浏览器里输入 http://zz.12366.ha.cn,Ok啦。
Snap1
 
此时,同事的电话中,电信的技术人员还在技术扯皮中!!!
 
 
<think>好的,用户现在遇到了DNS解析验证失败的问题,需要帮助排查。首先,我需要回顾之前的配置步骤,可能的问题点在哪里。用户之前配置了Bind9的主域和子域名,现在验证时无法正确解析。 首先,常见的DNS解析失败原因可能有配置错误、服务未正确启动、防火墙问题、区域文件权限或语法错误,或者客户端配置错误。我需要一步步引导用户检查这些方面。 首先,检查Bind9服务状态,确认是否运行正常。用户可能没有正确启动或重启服务,或者服务因为配置错误而崩溃。可以使用systemctl status bind9查看状态,是否有报错信息。 然后,检查配置文件的语法错误。即使之前检查过,可能修改后有遗漏。使用named-checkconf检查主配置文件,named-checkzone检查区域文件,确保没有语法错误。 接下来,区域文件的权限问题。Bind9运行在bind用户下,如果区域文件的所有者或权限不正确,可能无法读取。需要确认文件所有者是bind:bind,权限至少是640。 防火墙设置也很重要。DNS使用53端口的TCP和UDP,如果防火墙阻止了这些端口,客户端无法连接。需要检查ufw或iptables的规则,确保53端口开放。 然后,检查客户端的DNS配置。用户是否在客户端正确设置了DNS服务器的IP?比如,客户端的/etc/resolv.conf是否指向了Bind9服务器的IP,或者是否使用了其他DNS导致未查询到本地配置。 另外,转发器配置是否正确。如果使用了forward first或forward only,需要确认上游DNS是否可用。可以尝试在服务器上使用dig @转发器IP 目标域名,测试上游DNS是否正常。 还有,区域文件中的记录是否正确。比如A记录的IP是否正确,NS记录是否指向了正确的DNS服务器,SOA记录的序列号是否递增(如果有修改过)。 可能用户在验证时使用了错误的命令,比如nslookup没有指定DNS服务器,导致查询了其他DNS。需要建议用户使用nslookup 域名 DNS服务器IP,或者dig @DNS服务器IP 域名来明确查询本地DNS。 此外,缓存问题也可能导致解析失败。Bind9本身有缓存,客户端也有缓存,可能需要清除缓存后再测试。可以使用rndc flush清空Bind9的缓存,或者重启服务。 总结下来,需要用户按步骤检查服务状态、配置语法、文件权限、防火墙、客户端设置、转发器可用性以及记录正确性。逐步排查这些点,找到问题所在。 </think> DNS解析失败可能由配置错误、服务状态异常或网络限制等原因导致,可按以下步骤排查: --- ### **一、检查Bind9服务状态** 确认服务是否正常运行,避免因配置错误导致服务崩溃: ```bash sudo systemctl status bind9 # 查看服务状态(active/running表示正常) sudo journalctl -u bind9 # 查看服务启动日志(重点关注ERROR/WARNING) ``` 若服务未运行或报错,需修复配置后重启: ```bash sudo systemctl restart bind9 ``` --- ### **二、验证配置文件语法** 配置文件语法错误会直接导致Bind9无法加载配置,需重点检查: 1. **主配置文件(`named.conf.local`等)** 检查区域声明、`options`等是否有语法错误(如引号不匹配、分号缺失): ```bash sudo named-checkconf # 无输出表示语法正确 ``` 2. **区域文件(如`db.mxdx.com`)** 检查SOA、A记录等是否格式正确(如IP地址、域名末尾的`.`是否遗漏): ```bash sudo named-checkzone mxdx.com /etc/bind/zones/db.mxdx.com # 提示"OK"表示正常 ``` --- ### **三、检查区域文件权限** Bind9服务以`bind`用户运行,若区域文件无读取权限会导致无法加载: ```bash ls -l /etc/bind/zones/db.mxdx.com # 检查所有者和权限 # 正确示例:-rw-r--r-- 1 bind bind 1024 Jan 1 00:00 db.mxdx.com ``` 若权限错误,修正权限: ```bash sudo chown bind:bind /etc/bind/zones/db.mxdx.com # 所有者改为bind用户 sudo chmod 640 /etc/bind/zones/db.mxdx.com # 赋予bind用户读写权限 ``` --- ### **四、验证防火墙规则** DNS使用UDP/TCP 53端口,若防火墙拦截会导致客户端无法连接: ```bash sudo ufw status # 查看防火墙规则(检查53端口是否允许) # 若未开放,执行以下命令放行: sudo ufw allow 53/tcp sudo ufw allow 53/udp ``` --- ### **五、测试DNS服务器本地解析** 在DNS服务器本机测试解析,排除客户端配置问题: ```bash # 使用dig命令直接查询本地Bind9(@127.0.0.1指定本地DNS) dig @127.0.0.1 www.mxdx.com # 或使用nslookup(指定DNS服务器IP) nslookup www.mxdx.com 127.0.0.1 ``` - 若**本地解析成功**,但客户端解析失败:问题可能在客户端DNS配置(如客户端未将DNS服务器设置为当前Bind9的IP)。 - 若**本地解析失败**:问题在Bind9配置(如区域文件记录错误、转发器不可用)。 --- ### **六、检查转发器(Forwarders)可用性** 若配置了`forwarders`(上游DNS),需确保上游DNS访问: ```bash # 测试上游DNS是否可用(以119.29.29.29为例) dig @119.29.29.29 www.baidu.com # 若无响应,说明上游DNS不可用 ``` 若上游DNS不可用,可替换为其他公共DNS(如223.5.5.5、180.76.76.76)。 --- ### **七、检查客户端DNS配置** 客户端需将DNS服务器地址设置为Bind9服务器的IP(如192.168.1.100),否则会使用默认DNS(如运营商DNS),导致无法获取本地解析记录。 以Linux客户端为例,修改`/etc/resolv.conf`(临时生效): ```conf nameserver 192.168.1.100 # 指向Bind9服务器IP ``` 或通过网络管理器永久配置(如`nmcli`或图形化工具)。 --- ### **常见错误示例** - **区域文件未添加`@`或`$ORIGIN`**:导致域名后缀缺失(如`www`被解析为`www`而非`www.mxdx.com`)。 - **A记录IP错误**:如将`www.mxdx.com`的IP写成了192.168.2.101(实际应为192.168.1.101)。 - **NS记录未指向自身**:`ns.mxdx.com`的A记录IP与Bind9服务器实际IP不一致。 --- 通过以上步骤可定位90%以上的DNS解析失败问题,重点关注配置语法、权限和网络连通性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值