原地址 http://blog.chinaunix.net/uid-26719405-id-3435293.html html
从新安装机器的状况下咱们常常会遇到的一个状况是telnet到server速度很快,可是ssh链接的时候却很慢,大概api
要等半分钟甚至更久。ping的速度也很是好,让人误觉得是ssh链接不上。安全
下面说下如何解决这样的问题,最为常见的缘由是由于server的sshd会去DNS查找访问服务器
client IP的hostname,若是DNS不可用或者没有相关记录,就会耗费大量时间。ssh
一、在server上/etc/hosts文件中把你本机的ip和hostname加入ide
二、在server上/etc/ssh/sshd_config文件中修改或加入UseDNS=no,另外在authentication gssapi-with-mic也有可能出现问题,在server上/etc/ssh/sshd_config文件中修改GSSAPIAuthentication no.ui
三、修改server上/etc/nsswitch.conf中hosts为hosts: files.net
四、reboot server使配置生效unix
/etc/init.d/sshd restart重启sshd进程使配置生效。rest
项目组的服务器,经过SSH服务远程访问Linux服务器,老是等待好久才能登录。
试过下面的方法,再经过SSH服务远程访问Linux服务器,瞬间登录。。。甚是开心。。。
vi /etc/ssh/sshd_config
关闭 SSH 的 DNS 反解析,添加下面一行:
UseDNS no
※虽然配置文件中[UseDNS yes]被注释点,
但默认开关就是yes...(SSH服务默认启用了DNS反向解析的功能)
#############################################################
上网查了相关的资料:↓
在目标服务器上有一个文件/etc/nsswitch.conf ,里面有以下一行
hosts: files dns
这行的含义是对于访问的主机进行域名解析的顺序,是先访问file,也就是/etc/hosts文件,若是hosts中没有记录域名,则访问dns,进行域名解析,若是dns也没法访问,就会等待访问超时后返回,所以等待时间比较长。那若是将这一行屏蔽掉是否是也能够达到一样的效果呢?应该是能够的,可是若是本机要经过域名访问其余服务器,则确定没法访问,所以这行应该须要保留。这个问题也提示咱们,dns若是不可用,会带来的一些反作用的。
相信不少朋友在使用Linux系统的时候由于安全性的缘由摒弃了telnet rlogin 或者X-window,而把openssh做为本身默认的远程登陆方式。然而常常会遇到的一个状况是telnet到server速度很快,可是ssh链接的时候却很慢,大概要等半分钟甚至更久。ping的速度也很是好,让人误觉得是ssh链接不上。下面说下如何解决这样的问题,最为常见的缘由是由于server的sshd会去DNS查找访问clientIP的hostname,若是DNS不可用或者没有相关记录,就会耗费大量时间。
1, 在server上/etc/hosts文件中把你本机的ip和hostname加入
2, 在server上/etc/ssh/sshd_config文件中修改或加入UseDNS=no(这个方法试过了,好用)
3, 注释掉server上/etc/resolv.conf中全部行(关于这个方法:另外一台服务器虽然没有按照方法2修改配置文件sshd_config,可是在这台服务器resolv.conf为空,也就是说这个方法也好用)
4, 修改server上/etc/nsswitch.conf中hosts为hosts: files
5, reboot server使配置生效
#############################################################