使用命令time dig google.com
看到域名解析需要1秒多
real 0m1.037s user 0m0.016s sys 0m0.012s
lrwxrwxrwx 1 root root 29 Nov 20 07:55 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 192.168.1.1 nameserver 8.8.8.8 nameserver 8.8.4.4 search localdomain
在域名解析的时候会根据nameserver的顺序去查询
因为服务器是LAN和WAN都通过dhcp获取地址
resolvconf在设置naneserver的时候把内网的IP设置在最前面了
导致第一次查询失败
通过修改文件/etc/resolvconf/interface-order来调整nameserver的顺序
查看文件/etc/resolvconf/interface-order原始的内容
# interface-order(5) lo.inet* lo.dnsmasq lo.pdnsd lo.!(pdns|pdns-recursor) lo tun* tap* hso* em+([0-9])?(_+([0-9]))* p+([0-9])p+([0-9])?(_+([0-9]))* eth* ath* wlan* ppp* *
内网是eth接口
外网使用了网桥br0,默认内容里没有网桥接口
所以需要在eth*前面增加br*
以便resolvconf脚本把WAN口通过DHCP获取的DNS服务器设置在前面
执行sudo resolvconf -u
可以看到/etc/resolv.conf中nameserver的顺序变化
执行time dig google.com
real 0m0.042s user 0m0.016s sys 0m0.012s
可以看到解析时间已经缩短到了40多毫秒
查看相关手册
man 8 resolvconf
man 5 resolv.conf
man 5 interface-order