原地址 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使配置生效
#############################################################