在linux 下,ping域名反应很慢,即使把域名解析出来后ping,也是很慢;直接ping IP 就很快,可能是如下一个原因造成的!很有可能是DNS 的反向查询慢了,比如在在ubuntu20或centos7上发现随便ping一个域名要等10秒以上才有回应,如ping www.baidu.com,而windows不存在这种问题!
经过抓包发现:
1、ubuntu centos在dns域名解析时,进行了反向解析请求,而dns并未回复导致了响应延迟。
这个dns地址192.168.199.1是我家的路由器地址
规避方法:ping -n www.baidu.com 加了-n参数,-n为不进行反向解析。
2、在ubuntu centos上将dns地址切换至114.114.114.114后无此问题,抓包显示dns回应了反向解析。
这个结果就表示我家的路由器可能不支持dns反向解析
这种解决方法就是在DHCP中修改分配的DNS地址为公网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上nsswitch.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域名的响应速度和使用人员的判断。
网友留言: