linux 下面,ping域名反应很慢,即使在分析域名后ping,也很慢;直接ping IP 很快,可能是以下原因造成的!很有可能是DNS 反向查询速度较慢。例如,在ubuntu20或centos7上发现任何ping域名都需要10秒以上才能回应,例如ping www.baidu.com,而windows没有这样的问题!
抓包后发现:
1、ubuntu dns域名分析时,centos提出了反向分析请求,dns没有回复,导致响应延迟。
这个dns地址192.168.199.1是我的路由器地址
规避方法:ping -n www.baidu.com 添加-n参数,-n不进行反向分析。
2、ubuntu dns地址在centos上切换到114.114.114.114后无此问题,抓包显示dns反应反向分析。
结果表明,我的路由器可能不支持dns反向分析
该解决方案是修改DHCP中分配的DNS地址,如114.114.114.114或公司内网DNS地址,以避免使用该小路由器的DNS地址。
解决:
1、 禁止ping 使用反向DNS查询时: ping xxx.xxx.xxx -n
2、 在 /etc/host 添加域名和IP,例如:183.232.231.174 www.baidu.com (此临时解决方案)
3、修改server上的nswitch.conf文件
# vi /etc/nsswitch.conf
找到:hosts: files dns 改为:hosts:files
4、修改客户端配置文件ssh_conf(注意,不是sshd_conf)
# vi /etc/ssh/ssh_conf
找到:GSSAPIAuthentication yes 改为:GSSAPIAuthentication no
5、修改/etc/resolv.conf文件:
nameserver 8.8.8.8
nameserver 114.114.114.114
总结:
1、也许是因为程序本身,linux系统上的ping程序有反向分析,windows系统上的ping程序没有反向分析。
2、它显示了DNS服务中反向分析配置的重要性,影响了linux终端ping域名的响应速度和用户的判断。