共計 916 個字符,預(yù)計需要花費 3 分鐘才能閱讀完成。
在 linux 下,ping 域名反應(yīng)很慢,即使把域名解析出來后 ping,也是很慢; 直接 ping IP 就很快,可能是如下一個原因造成的! 很有可能是 DNS 的反向查詢慢了,比如在在 ubuntu20 或 centos7 上發(fā)現(xiàn)隨便 ping 一個域名要等 10 秒以上才有回應(yīng),如 ping www.baidu.com,而 windows 不存在這種問題!
經(jīng)過抓包發(fā)現(xiàn):
1、ubuntu centos 在 dns 域名解析時,進行了反向解析請求,而 dns 并未回復(fù)導致了響應(yīng)延遲。
這個 dns 地址 192.168.199.1 是我家的路由器地址
規(guī)避方法:ping -n www.baidu.com 加了 - n 參數(shù),- n 為不進行反向解析。
2、在 ubuntu centos 上將 dns 地址切換至 114.114.114.114 后無此問題,抓包顯示 dns 回應(yīng)了反向解析。
這個結(jié)果就表示我家的路由器可能不支持 dns 反向解析
這種解決方法就是在 DHCP 中修改分配的 DNS 地址為公網(wǎng) dns 地址如 114.114.114.114 或公司內(nèi)網(wǎng) 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
總結(jié):
1、可能出于程序本身的情況,linux 系統(tǒng)上的 ping 程序帶了反向解析,windows 系統(tǒng)上 ping 程序不帶反向解析。
2、顯示出 DNS 服務(wù)中反向解析配置的重要性,它影響 linux 終端 ping 域名的響應(yīng)速度和使用人員的判斷。