使用命令time dig google.com
看到域名解析需要1秒多
real 0m1.037s
user 0m0.016s
sys 0m0.012s
查看文件/etc/resolv.conf内容
现在这是一个链接文件
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