共計 1729 個字符,預計需要花費 5 分鐘才能閱讀完成。
centos 如何解決 ssh 連接慢和 ping 響應慢的問題?現在連接 linux 服務器一般都是使用 SSH 遠程連接的方式。最近新裝了一臺服務器,發(fā)現 telnet 時速度很快,ping 服務器 ip 的時候一切也正常,但 SSH 連接的時候卻很慢,還有在服務器內部 ping 百度反應也慢,要停頓好幾秒才會出現 ping。
經過網上資料查詢,大致是有以下幾種原因:
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 信息就可以看到連接到什么地方被耽擱了
比如會顯示如下信息:
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.1 www.jqkar.com
注:hosts 文件格式為 ’ 目標 SERVER_IP 目標 SERVER_NAME’。但是使用這個方法有一個弊端,如果需要給每臺 SERVER 都添加一個域名解析。
8、修改客戶端配置文件 ssh_conf(注意,不是 sshd_conf)
# vi /etc/ssh/ssh_conf
找到:
GSSAPIAuthentication yes
改為:
GSSAPIAuthentication no