红联Linux门户
Linux帮助

ubuntu server 14.04在ping IP的时候很快,但是ping域名却很慢

发布时间:2016-11-21 09:39:32来源:linux网站作者:雜貨鋪老闆
使用命令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
 
本文永久更新地址:http://www.linuxdiyf.com/linux/26187.html