UseDNS no
重启ssh服务,即可关闭反向解析,访问速度顿时加快~
================================================
mysql反向解析我的mysql数据库服务器放在私网内,从公网访问时连接速度很慢,每次都要过12秒后才能连上,只要连接上了速度正常。后来抓服务器上的数据包发现,连接mysql时,都会向DNS做反向地址查询,只有等超时失败后,mysql才会响应客户端,因而数据很慢。后来我做了个试验,将DNS禁止,发现从公网访问mysql连接很快。但我的系统中DNS是不能禁止的,请问各位:能不能将mysql的反向地址查询禁止?怎么配置?谢谢了
#vi /etc/my.cnf 配置你的my.cnf文件
[mysqld]
skip-name-resolve //这一选项可以消除MySQL进行DNS解析的时间
=======================================
ssh反向解析
Linux SSH远程登录慢的解决方法
一台中转机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查找访问clientIP的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进程使配置生效。
如果以上两招还不能解决问题,善于使用DEBUG MODE ssh-v来查看log,找到停滞时间最长的步骤,然后针对性的修改配置解决。