通過 SSH 服務遠端訪問 Linux 站羣服務器,總是等待很久才能登陸。
試過下面的方法,再通過 SSH 服務遠端訪問 Linux 站羣服務器,瞬間登陸。。。甚是開心。。。
vi /etc/ssh/sshd_config
關閉 SSH 的 DNS 反解析, 新增下面一行:
UseDNS no
※雖然配置檔案中 [UseDNS yes] 被註釋點,
但預設開關就是 yes…(SSH 服務預設啓用了 DNS 反向解析的功能)
#############################################################
上網查了相關的資料:↓
在目標站羣服務器上有一個檔案/etc/nsswitch.conf ,裏面有如下一行
hosts: files dns
這行的含義是 對於訪問的 WordPress 主機進行域名解析的順序,是先訪問 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 使配置生效