Linux系统下域名解析的配置文件是/etc/resolv.conf
    cat /etc/resolv.conf
    # Generated by NetworkManager options single-request-reopen nameserver 114.114.114.114
    1128558-20180503134137472-2047564643.png
    1128558-20180503134203889-99352215.png
    LINUX DNS客户端解析缓慢的其中一个原因是CentOS 6/CentOS 7总是需要等待AAAA(IPv6)的结果,即使关闭IPv6也没用,CentOS 6/CentOS 7中的DNS解析器对于ipv4和ipv6都使用同一个socket接口(如上图),在同时发出ipv4和ipv6解析请求后,只会收到一个ipv4的解析响应,此时socket将一处于“等待”模式,等待ipv6的解析响应,故导致解析缓慢;添加single-request-reopen后就可以重新打开一个新的socket接收ipv6的解析响应,而不影响ipv4的解析响应。

    1. cat /etc/resolv.conf
    2. # Generated by NetworkManager
    3. options single-request-reopen
    4. nameserver 114.114.114.114

    options timeout:1 attempts:1 rotate
    nameserver 114.114.114.114
    nameserver 8.8.8.8
    nameserver 1.1.1.1
    选项解释:

    • rotate:这个参数的含义是随机选取一个作为查询的dns server,默认为按照顺序从上往下。
    • timeout:查询一个nameserver的超时时间,单位是秒。系统缺省是5,最大可以设为30。设置为1S超时即可,否则等AAAA回应就到地老天荒了,浪费时间。
    • attempts:这个是查询的整个都尝试一遍的次数,默认LINUX会发出好几次DNS查询包,让查一次即可,浪费时间。