共计 2380 个字符,预计需要花费 6 分钟才能阅读完成。
现在连接 inux 服务器一般都是使用 SSH 远程连接的方式。最近新装了一台服务器,发现 telnet 时速度很快,ping 时一切也正常,但 SSH 连接的时候却很慢。经过网上资料查询,大致是有以下几种原因:
1、SERVER 的 SSHD 会去 DNS 查找访问的 CLIENT IP 的 HOSTNAME,如果 DNS 不可用或者没有相关记录,就会消耗一段时间。
2、在 authentication gssapi-with-mic 有时候也会消耗一段时间
一、测试查找具体原因:
1、使用 ssh -v host 进行 debug
# ssh -v 192.168.100.10
然后就会输出一大堆 debug,通过 debug 信息就可以看到连接到什么地方被耽搁了
比如会显示如下信息:
[html] view plaincopyprint?debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
No credentials cache found
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
No credentials cache found
2、检测连接时间
# time ssh root@192.168.100.10 exit
二、解决方法(建议一个个设置,因为每个人连接慢的原因都不一样):
注意:修改之后记得重启 sshd 服务
# service sshd restart
1、关闭 DNS 反向解析
在 linux 中,默认就是开启了 SSH 的反向 DNS 解析, 这个会消耗大量时间,因此需要关闭。
# vi /etc/ssh/sshd_config
UseDNS=no
在配置文件中,虽然 UseDNS yes 是被注释的,但默认开关就是 yes
2、关闭 SERVER 上的 GSS 认证
在 authentication gssapi-with-mic 有很大的可能出现问题,因此关闭 GSS 认证可以提高 ssh 连接速度。
# vi /etc/ssh/sshd_config
GSSAPIAuthentication no
3、修改 server 上 nsswitch.conf 文件
# vi /etc/nsswitch.conf
找到
hosts:files dns
改为
hosts:files
hosts:files dns 这一行含义是对于访问的主机进行域名解析的顺序,是先访问 file,也就是 /etc/hosts 文件,如果 hosts 中没有记录域名,则访问 dns,进行域名解析,如果 dns 也无法访问,就会等待访问超时后返回,因此等待时间比较长。
注意:如果 SERVER 需要通过域名访问其他服务器,则需要保留此行。
4、修改 SERVER 上 resolv.conf 文件
4.1、删除 /etc/resolv.conf 中所有不使用的 IP。
4.2、把 nameserver 全部删除,问题也能解决,但是服务器就无法上网了。
4.3、如果 SERVER 曾经配置过双网卡,则在该文件中会有一行目前不使用的 IP 地址,删除该行即可。
5、修改 SERVER 上 hosts 文件
在 SERVER 上 /etc/hosts 文件中把客户端的 IP 和 HOSTNAME 加入
6、打开 SERVER 上的 IgnoreRhosts 参数
IgnoreRhosts 参数可以忽略以前登录过主机的记录,设置为 yes 后可以极大的提高连接速度
# vi /etc/ssh/sshd_config
IgnoreRhosts yes
——————– 以上的均在 SERVER 上设置,以下的均在 CLIENT 上设置 ———————–
7、修改客户端的 hosts 文件
将目标 SERVER 的 IP 和域名加上去, 使得本机的 DNS 服务能解析目标地址。
# vi /etc/hosts
192.168.100.11 doiido.com
注:hosts 文件格式为 ’ 目标 SERVER_IP 目标 SERVER_NAME’。但是使用这个方法有一个弊端,如果需要给每台 SERVER 都添加一个域名解析。
8、修改客户端配置文件 ssh_conf(注意,不是 sshd_conf)
# vi /etc/ssh/ssh_conf
找到
GSSAPIAuthentication yes
改为
GSSAPIAuthentication no
ssh 连接慢解决办法 http://www.linuxidc.com/Linux/2013-02/79898.htm
提高 Ubuntu 的 SSH 登陆认证速度的办法 http://www.linuxidc.com/Linux/2014-09/106810.htm
开启 SSH 服务让 Android 手机远程访问 Ubuntu 14.04 http://www.linuxidc.com/Linux/2014-09/106809.htm
如何为 Linux 系统中的 SSH 添加双重认证 http://www.linuxidc.com/Linux/2014-08/105998.htm
在 Linux 中为非 SSH 用户配置 SFTP 环境 http://www.linuxidc.com/Linux/2014-08/105865.htm
Linux 上 SSH 服务的配置和管理 http://www.linuxidc.com/Linux/2014-06/103627.htm
SSH 入门学习基础教程 http://www.linuxidc.com/Linux/2014-06/103008.htm
更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14