在开发网路应用程序时,网络不通的情话是经常发生的,如果快速查找和定位网络问题就是一个重要的技能。今天来总结一下:

  • 第一步,使用ping查看网络是否畅通,如果不畅通需要进一步查看其它方向。
  • 第二步,在ping的通的情况家,dig查询CDN情况
    • dig 使用
        dig baidu.com
      
    • dig 的5个组成部分
      1. 显示 dig 命令的版本和输入的参数
      2. 显示服务返回的一些技术详情,比较重要的是 status。如果 status 的值为 NOERROR 则说明本次查询成功结束。
      3. “QUESTION SECTION” 显示我们要查询的域名。
      4. “ANSWER SECTION” 是查询到的结果。
      5. 是本次查询的一些统计信息,比如用了多长时间,查询了哪个 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七层中一层一层的查找 物理层—网线,网卡 链路层—基本不需要检查 传输层—检查包是否发出 网络层—路由是否正确 会话层以上就是应用层了,检测应用程序是否正常即可。