linux修改hosts文件無效怎么辦?
1、linux修改本機(jī)別名/etc/hosts的hostName后經(jīng)常不生效解決
Linux修改本機(jī)別名/etc/hosts的hostName后經(jīng)常不生效,
比如我們/etc/hosts的內(nèi)容如下:
#192.68.1.10?message.xxx.com 192.68.1.11?message.xxx.com
但是ping message.xxx.com還是指向192.68.1.10。
相關(guān)推薦:《linux教程》
一般2種解決方案:
1). 重啟,這是最直接最可靠穩(wěn)定的一種方法,如果有些時(shí)候不方便重啟,則可以使用第二種方法。
2). 修改/etc/sysconfig/network文件,將HOSTNAME修改成對(duì)應(yīng)的別名,如下:
NETWORKING=yes HOSTNAME=host1
修改后重啟網(wǎng)絡(luò)服務(wù)
service?network?restart?(本質(zhì)是/etc/init.d/network)
3). 如果重啟服務(wù)器后,還是不起作用,應(yīng)該是本機(jī)的dns緩存引起的。
查看nscd是否啟用: ps -ef|grep nscd
直接關(guān)閉Linux nscd 緩存服務(wù):
/etc/init.d/nscd?stop
2、Linux的DNS
linux本身是沒有dns緩存的,想使用dns緩存的話需要自己安裝一個(gè)服務(wù)程序NSCD(name service cache daemon).
nscd緩存三種服務(wù)passwd group hosts,所以它會(huì)記錄三個(gè)庫,分別對(duì)應(yīng)源/etc/passwd, /etc/hosts 和 /etc/resolv.conf每個(gè)庫保存兩份緩存,一份是找到記錄的,一份是沒有找到記錄的。每一種緩存都保存有生存時(shí)間(TTL).
安裝:
?yum?install?nscd
修改配置文件/etc/nscd.conf,開啟dns緩存,修改這一行
?enable-cache?hosts?yes
如果啟用了nscd 服務(wù),才有dns 緩存,否則是沒有dns緩存的。
開啟 、停止、 重啟服務(wù)
service?nscd?start?|?stop?|?restart
nscd的配置:
通過編輯/etc/nscd.conf文件,在其中增加如下一行可以開啟本地DNS cache:
enable-cache hosts yes
阿里云主機(jī)上的配置如下:
[root@iZ2571ykq?~]#?cat?/etc/nscd.conf? #logfile????????/var/log/nscd.log threads?????????6 max-threads?????128 server-user?????nscd debug-level?????5 paranoia????????no enable-cache????passwd??????no enable-cache????group???????no enable-cache????hosts???????yes positive-time-to-live???hosts???5 negative-time-to-live???hosts???????20 suggested-size??hosts???????211 check-files?????hosts???????yes persistent??????hosts???????yes shared??????????hosts???????yes max-db-size?????hosts???????33554432
相關(guān)參數(shù)的解釋如下:
logfile debug-file-name:指定調(diào)試信息寫入的文件名。
debug-level value:設(shè)置希望的調(diào)試級(jí)別。
threads number:這是啟動(dòng)的等待請(qǐng)求的線程數(shù)。最少將創(chuàng)建5個(gè)線程。
server-user user:如果設(shè)置了該選項(xiàng),nscd將作為該用戶運(yùn)行,而不是作為root。如果每個(gè)用戶都使用一個(gè)單獨(dú)的緩存(-S參數(shù)),將忽略該選項(xiàng)
enable-cache service
positive-time-to-live service value:設(shè)置 service 在指定緩存中正的項(xiàng)目(成功的請(qǐng)求)的TTL(存活時(shí)間)。 Value 以秒為單位。較大的值將增加緩存命中率從而減低平均響應(yīng)時(shí)間,但是將增加緩存的一致性問題。
negative-time-to-live service value:設(shè)置 service 在指定緩存中負(fù)的項(xiàng)目(失敗的請(qǐng)求)的TTL(存活時(shí)間)。 Value 以秒為單位。如果存在由不在系統(tǒng)數(shù)據(jù)庫中的uid(用戶ID)(例如在以root身份解包linux 內(nèi)核源代碼時(shí))所擁有的文件將明顯改善性能;應(yīng)該維持較小的值以降低緩存一致性問題。
suggested-size service value:這是內(nèi)部散列表的大小, value 應(yīng)該保持一個(gè)素?cái)?shù)以達(dá)到優(yōu)化效果。
check-files service
nscd的查看和清除
nscd緩存DB文件在/var/db/nscd下。
nscd?-g??查看統(tǒng)計(jì)信息
清除 nscd緩存:
nscd?-i?passwd nscd?-i?group nscd?-i?hosts
當(dāng)然也先刪除緩存庫或者停掉nscd服務(wù):
rm?-f?/var/db/nscd/hosts service?nscd?restart
或者是直接停止nscd 服務(wù) service nscd stop。