一台中转机ssh登录服务器(Linux)的时候,很慢,大概要15秒左右,但是ping很快,而且登录后服务器的负载也很低。这个小问题一直没有引起注意,今天领导登录的时候发现了这个问题,并且给出了原因和解决方法,记录在这里:
在目标服务器上有一个文件/etc/nsswitch.conf ,里面有如下一行
hosts: files dns
这行的含义是对于访问的主机进行域名解析的顺序,是先访问file,也就是/etc/hosts文件,如果hosts中没有记录域名,则访问dns,进行域名解析,如果dns也无法访问,就会等待访问超时后返回,因此等待时间比较长。
那如果将这一行屏蔽掉是不是也可以达到同样的效果呢?应该是可以的,但是如果本机要通过域名访问其他服务器,则肯定无法访问,因此这行应该需要保留。这个问题也提示我们,dns如果不可用,会带来的一些副作用的。