如果遇到这样一个问题,首先要考虑到是 DNS 有问题或者是 DNS 配置错误引起的。
想要排除故障,首先要懂得我们访问 QQ 的过程。
1.和 QQ 建立连接的过程
登录 QQ 的操作过程和登录网页都是一样的,QQ 的软件内实际上和访问网页没有任何差别,它集成对应服务端的 IP 地址,通过 windows 任务管理器中的详细信息,可以查看到 QQ 运行程序的 PID。
通过 PID 查询对应的网络连接,cmd 命令下输入 netstat -nao | find “16332”
对应看到 ESTABLISHED 表示已经建立的连接。
192.168.1.33 这台电脑是如何访问 157.148.54.140 服务端?
首先主机和服务器并不在同一网段,是跨网段访问,对于主机来说数据要先发送给网关设备,192.168.1.1
网关设备进行查询路由表,匹配默认路由发送给出口路由器设备 192.168.10.253。
出口路由器进行源地址 NAT 转换把 192.168.1.33 转换为 117.27.76.128 发送给给运营商 117.27.76.1
运营商内部通过互联网查找路由表,逐条发送给 157.148.54.140 服务端。
服务端接收到请求响应请求,建立 TCP 三次握手,稳定的逻辑链路传输数据。
2.2.打开网页的连接过程
浏览器中输入 www.baidu.com,主机是不知道百度所对应的 IP 的,所以先要做的是通过 DNS 解析域名。
主机需要通过 DNS 域名解析进行,公网的 DNS 服务器比较好记的有:114.114.114.114、114.114.115.115、223.5.5.5、223.6.6.6,这时候配置的是 223.5.5.5 这个 DNS 服务器。
那么域名解析请求需要先访问 223.5.5.5 获取 www.baidu.com 的 IP 地址。
cmd 下输入 nslookup http://www.baidu.com,能够看到解析的对应的 IP 地址 14.215.177.39
知道了服务器的 IP 地址,那么主机访问百度服务器的过程就和访问 QQ 的过程别无二致了!
我们回到最开始的问题,为何网页要用域名,而 QQ 应用程序不用域名?
IP 地址是不好记忆,百度的 IP 地址 14.215.177.39 根本记不住,而网页的域名是容易记忆,所以人们访问时都通过域名访问,而 QQ 应用程序内直接集成直接使用 IP 地址就可,不需要用域名。
我们平常遇到访问不了网页怎么确定故障呢?
4.1.确定内网到外网有无问题如果我们访问任意网站都访问不了,那么可能是物理链路和连接的问题了,在这件事中,QQ 能够打开,首先能确定电脑访问到外网是没问题的。
4.2.内网没问题网页打不开网页打开不,在访问到外网没问题的情况下,大概率是 DNS 配置错误,可以尝试修改 DNS 为 114.114.114.114 114.114.115.115 223.5.5.5 223.6.6.6 这几个通用的 DNS 服务器
4.3.那么为何 DNS 配置会出问题?DNS 的地址是从 DHCP 服务器自动分配的 IP、掩码、网关、DNS。
DHCP 服务器上查看下发的 DNS 修改,或者内网可能出现非法的 DHCP 服务器,建议使用 DHCP 防护手段进行防护。