當(dāng)我們在連接apache 迈窟,ssh桨吊,mysql等服務(wù)器時(shí)孟岛,如果出現(xiàn)連接過慢,可能的原因是dns 的反向查詢针炉。有一些網(wǎng)友出現(xiàn)這種情況:狀況就是ssh, ftp等都要輸入帳號密碼才能登錄痹雅,只有密碼輸入后要等30秒,據(jù)說是DNS反向解析timeout的時(shí)間糊识。
為什么需要域名的反向解析呢绩社?因?yàn)榉乐辜倜暗腎P連接服務(wù)器,把IP解析成域名,來提高安裝性赂苗,看這個(gè)IP是否是偽造愉耙,這是dns反向查詢的功能之一。
如果在開啟apache,ssh,mysql 等服務(wù)器的反向解析功能之后拌滋,連接過慢的話朴沿。有二種解決方法:
- 就要架建自己的dns解析或更改hosts文件
- 把服務(wù)的dns反向解析功能關(guān)掉。
下面先講第二種败砂,這種方法最為簡單赌渣,但關(guān)閉了dns反向解析后,對于偽造IP登陸這種情況昌犹,是不能阻止的坚芜。
一、把mysql,ssh 的反向解析關(guān)閉
找到 /etc/mysql/my.cnf
在 [mysqld]標(biāo)記下面添加:
skip-name-resolve 不把IP地址解析為主機(jī)名斜姥; 與訪問控制(mysql.user數(shù)據(jù)表)有關(guān)的檢查全部通過IP地址行進(jìn)
skip-host-cache 不使用高速緩存區(qū)來存放主機(jī)名和IP地址的對應(yīng)關(guān)系
然后保存
/etc/init.d/mysql restart 重啟mysql鸿竖。
另附上ssh的:
取消sshd服務(wù)的dns反向解析
#vi /etc/ssh/sshd_config
找到選項(xiàng)UseDNS ,取消注釋铸敏,改為
UseDNS no
重啟sshd服務(wù)
/etc/init.d/sshd restart
二缚忧、架構(gòu)自己的dns服務(wù)器,把已知的服務(wù)器的域名添加進(jìn)來杈笔。
這個(gè)是因?yàn)檫@些記錄需要dns解析造成的(程序需要PTR反向解析闪水,即IP到domain name的映射關(guān)系,主要用于驗(yàn)證這個(gè)IP是否是合法的IP)蒙具,解決方法如下:
方法1:把常用的IP地址寫入hosts文件球榆,然后在/etc/nsswitch.conf看看程序是否先查詢hosts文件(一般缺省是這樣)
方法2:起一臺dns服務(wù)器(可以是本機(jī))峰弹,加入反向解析,把這個(gè)dns服務(wù)器加入到/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";
};