在开发网路应用程序时,网络不通的情话是经常发生的,如果快速查找和定位网络问题就是一个重要的技能。今天来总结一下:
-
第一步,使用 ping 查看网络是否畅通,如果不畅通需要进一步查看其它方向。
-
第二步,在 ping 的通的情况家,dig 查询 CDN 情况
- dig 使用
dig baidu.com-
dig 的 5 个组成部分
- 显示 dig 命令的版本和输入的参数
- 显示服务返回的一些技术详情,比较重要的是 status。如果 status 的值为 NOERROR 则说明本次查询成功结束。
- "QUESTION SECTION" 显示我们要查询的域名。
- "ANSWER SECTION" 是查询到的结果。
- 是本次查询的一些统计信息,比如用了多长时间,查询了哪个 DNS 服务器,在什么时间进行的查询
-
记录类型:
- A 指向一个 ipv4 地址
- AAAA 指向一个 ipv6 地址
- CNAME 将一个域名指向另一个域名
- MX 如果需要设置邮箱,让邮箱能够收到邮件,需要添加 MX 记录。
- NS 域名服务器记录,如果需要把子域名交给其他 DNS 服务器解析,就需要添加 NS 记录。
-
查询指定记录
dig abc.filterinto.com CNAME- 从指定服务器上查询
dig @8.8.8.8 abc.filterinto.com如果不指定 DNS 服务器,dig 会依次使用 /etc/resolv.conf 里的地址作为 DNS 服务器。
- 反向查询:查询 DNS 服务器名称
dig -x 8.8.8.8 +short- TTL 主要是控制 DNS 记录在 DNS 服务器上的缓存时间
-
第三步,如果 CDN 没有问题的情况下,使用 trackroute 来检查路由,基本可以断定大部分问题了。
traceroute www.baidu.com
总结
网络查找问题要从 OSI 七层中一层一层的查找 物理层---网线,网卡 链路层---基本不需要检查 传输层---检查包是否发出 网络层---路由是否正确 会话层以上就是应用层了,检测应用程序是否正常即可。
