Programming Life
相信不能相信的,完成不能完成的。矛盾,就象征进步。
posts - 151,comments - 7,trackbacks - 0
当我们在连接apache sshmysql等服务器时,如果出现连接过慢,可能的原因是dns 的反向查询。有一些网友出现这种情况:状况就是ssh, ftp等都要输入帐号密码才能登录,只有密码输入后要等30秒,据说是DNS反向解析timeout的时间。

为什么需要域名的反向解析呢?因为防止假冒的IP连接服务器,把IP解析成域名,来提高安装性,看这个IP是否是伪造,这是dns反向查询的功能之一。

如果在开启apache,ssh,mysql 等服务器的反向解析功能之后,连接过慢的话。有二种解决方法:1.就要架建自己的dns解析或更改hosts文件2.把服务的dns反向解析功能关掉。下面先讲第二种,这种方法最为简单,但关闭了dns反向解析后,对于伪造IP登陆这种情况,是不能阻止的。

一。把mysql,ssh 的反向解析关闭

找到 /etc/mysql/my.cnf ,当然,我是用的apt-get 装的,你若是自己编译的,肯定知道这个配置文件在哪。
[mysqld]标记下面添加:
skip-name-resolve
不把IP地址解析为主机名; 与访问控制(mysql.user数据表)有关的检查全部通过IP地址行进
skip-host-cache
不使用高速缓存区来存放主机名和IP地址的对应关系
然后保存
/etc/init.d/mysql restart
重启mysql

另附上ssh:

取消sshd服务的dns反向解析
#vi /etc/ssh/sshd_config
找到选项UseDNS ,取消注释,改为
UseDNS no

重启sshd服务
/etc/init.d/sshd restart

2。架构自己的dns服务器,把已知的服务器的域名添加进来。

这个是因为这些记录需要dns解析造成的(程序需要PTR反向解析,即IPdomain name的映射关系,主要用于验证这个IP是否是合法的IP),解决方法如下:
方法1:把常用的IP地址写入hosts文件,然后在/etc/nsswitch.conf看看程序是否先查询hosts文件(一般缺省是这样)
方法2:起一台dns服务器(可以是本机),加入反向解析,把这个dns服务器加入到/etc/resolv.conf中。例子如下:
/********************************************************************************
reverse mapping
********************************************************************************/

zone "0.0.127.in-addr.arpa" in {
type master;
notify no;
file "named.local";
allow-update {"none";};
};

zone "20.172.in-addr.arpa" in {
type master;
file "master/20.172";
};

zone "168.192.in-addr.arpa" in {
type master;
file "master/168.192";
};

zone "16.172.in-addr.arpa" in {
type master;
file "master/16.172";
};

zone "17.172.in-addr.arpa" in {
type master;
file "master/17.172";
};

posted on 2011-07-21 16:53 Prog 阅读(1133) 评论(0)  编辑 收藏 引用 网摘 所属分类: LAMPSystem

只有注册用户登录后才能发表评论。
网站导航: