Linux SSH远程登录慢的解决方法
2016-08-12 00:00
344 查看
一台中转机ssh登录服务器(Linux)的时候,很慢,大概要15秒左右,但是ping很快,而且登录后服务器的负载也很低。解决方法记录在这里:
在目标服务器上有一个文件/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查找访问client IP的hostname,如果DNS不可用或者没有相关记录,就会耗费大量时间。
1, 在server上/etc/hosts文件中把你本机的ip和hostname加入
2, 在server上/etc/ssh/sshd_config文件中修改或加入UseDNS=no
3, 注释掉server上/etc/resolv.conf中所有行
4, 修改server上/etc/nsswitch.conf中hosts为hosts: files
5, reboot server使配置生效
另外在
authentication gssapi-with-mic
也有可能出现问题,在server上/etc/ssh/sshd_config文件中修改
GSSAPIAuthentication no
/etc/init.d/sshd restart重启sshd进程使配置生效。
根据我的使用结果
/etc/resolv.conf的所有行不一定需要全部注释掉,改换成访问快捷的IP似乎也可行。
如果2、3、4这三步都做了,在我的机器上,重新连接SSH就有效果了不用重启机器。
第一步一般/etc/hosts里都会有127.0.0.1 localhost这样一行,如果有,根据我的经验,似乎不加也可以。
Published by WizNote
在目标服务器上有一个文件/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查找访问client IP的hostname,如果DNS不可用或者没有相关记录,就会耗费大量时间。
1, 在server上/etc/hosts文件中把你本机的ip和hostname加入
2, 在server上/etc/ssh/sshd_config文件中修改或加入UseDNS=no
3, 注释掉server上/etc/resolv.conf中所有行
4, 修改server上/etc/nsswitch.conf中hosts为hosts: files
5, reboot server使配置生效
另外在
authentication gssapi-with-mic
也有可能出现问题,在server上/etc/ssh/sshd_config文件中修改
GSSAPIAuthentication no
/etc/init.d/sshd restart重启sshd进程使配置生效。
根据我的使用结果
/etc/resolv.conf的所有行不一定需要全部注释掉,改换成访问快捷的IP似乎也可行。
如果2、3、4这三步都做了,在我的机器上,重新连接SSH就有效果了不用重启机器。
第一步一般/etc/hosts里都会有127.0.0.1 localhost这样一行,如果有,根据我的经验,似乎不加也可以。
Published by WizNote
相关文章推荐
- Linux SSH远程登录慢的解决方法
- Linux 中无法使用 root 用户通过 SSH 远程登录解决方法
- SSH客户端(如PuTTY)ssh远程登录Linux非常慢的解决方法
- 远程登录linux的mysql数据库常见问题解决方法参考
- linux下客户端ssh登录失败的解决方法
- Linux 远程ssh连接出现:REMOTE HOST IDENTIFICATION HAS CHANGED解决方法
- 远程登录Linux,中文显示乱码问题解决方法!
- 关于ssh远程登录太慢的解决方法
- putty生成密钥SSH远程登录注意步骤及报错解决方法
- SSH远程登录慢解决方法
- Linux系统下SSH远程登录速度慢的解决办法
- linux系统新建用户ssh远程登陆显示-bash-4.1$解决方法,ssh-bash-4.1
- VM下的linux系统上不了网?? 使用putty远程登录不上linux的解决方法?
- 解决Linux系统下SSH远程登录很慢的问题
- linux下允许root用户远程登录并建立ssh信任的方法
- 使用密匙让putty(或ssh)自动登录Linux遇到几个问题的解决方法
- Ubuntu通过ssh远程登录linux系统,详细安装方法
- Linux SSH 远程登录错误解决办法 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- linux系统新建用户ssh远程登陆显示-bash-4.1$解决方法
- ssh远程登陆linux显示-bash-4.1$解决方法