1.引子
经常有人问同样一个问题,能够打开QQ,网页打不开,多数是DNS配置错误引起的,授之以鱼不如授之以渔,要懂原理才是。
2.基本原理
2.1.QQ建立连接的过程
登录QQ的操作过程,首先QQ的软件内集成你了对应服务端的IP地址,比如
TCP 192.168.30.102:14118 113.96.18.167:8080 ESTABLISHED 1768
windows任务管理器中的详细信息,可以查看到QQ运行程序的PID。
通过PID查询对应的网络连接,cmd命令下输入netstat -nao | find "1768"
对应看到ESTABLISHED表示已经建立的连接。
192.168.30.102 这台电脑是如何访问113.96.18.167服务端?
首先跨网段访问,对于电脑来说先发送给网关设备,192.168.30.254
网关设备进行查询路由表,匹配默认路由发送给出口路由器设备192.168.10.253。
出口路由器进行源地址NAT转换把192.168.30.102转换为117.27.76.128发送给给运营商117.27.76.1
运营商内部通过互联网路由表进行匹配一跳跳发送给113.96.18.167服务端。
服务端接收到请求响应请求,建立TCP三次握手,稳定的逻辑链路传输数据。
2.2.打开网页的连接过程
浏览器中输入www.baidu.com,首先电脑是不知道域名对应的IP地址,电脑端先要做的是解析域名为IP地址。
那么电脑端需要通过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 www.baidu.com,能够看到解析的对应的IP地址14.215.177.39
访问DNS服务器访问过程略.....
得到www.baidu.com对应的IP地址,浏览器访问对应的IP地址即可。
访问过程略.....
3.思考
为何网页要用域名,而QQ应用程序不用域名?
IP地址是不好记忆,14.215.177.39根本记不住,而网页的域名是容易记忆,比如百度就是拼音的baidu,比如京东就是拼音jd.com,比如QQ就是用QQ.com都是容易记忆为主,QQ应用程序内直接集成直接使用IP地址就可,不需要用域名。
4.问题思考
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防护手段进行防护(此内容后期再更新)
5.总结
1)排障的时候思路要清晰,懂得基本的结构。
2)先解决局部问题。
3)杜绝未来还有可能出现这种情况。
都看到这了,点个赞怎样?
关注微信公众号从此学网络不迷路
funnetyoo