linux改hosts不生效怎么辦

linux改hosts不生效的解決辦法:1、找到并打開“/etc/sysconfig/network”文件;2、將HOSTNAME修改成對應的別名,如“NETWORKING=yes HOSTNAME=host1”;3、通過“service network restart”命令重啟網絡服務即可。

linux改hosts不生效怎么辦

本教程操作環境:linux5.9.8系統、Dell G3電腦。

linux改hosts不生效怎么辦?

Linux修改本機/etc/hosts的hostName后經常不生效

?

1、Linux修改本機別名/etc/hosts的hostName后經常不生效解決

?

Linux修改本機別名/etc/hosts的hostName后經常不生效,

比如我們/etc/hosts的內容如下:

#192.68.1.10?message.xxx.com 192.68.1.11?message.xxx.com

但是ping message.xxx.com還是指向192.68.1.10。

?

一般2種解決方案:

1). 重啟,這是最直接最可靠穩定的一種方法,如果有些時候不方便重啟,則可以使用第二種方法。

2). 修改/etc/sysconfig/network文件,將HOSTNAME修改成對應的別名,如下:

?

NETWORKING=yes HOSTNAME=host1

修改后重啟網絡服務

service?network?restart?(本質是/etc/init.d/network)

3). 如果重啟服務器后,還是不起作用,應該是本機的dns緩存引起的。

查看nscd是否啟用: ps -ef|grep nscd

直接關閉Linux nscd 緩存服務:

/etc/init.d/nscd?stop

?

?

2、Linux的DNS

? ? ?linux本身是沒有dns緩存的,想使用dns緩存的話需要自己安裝一個服務程序NSCD(name service cache daemon).

? ? nscd緩存三種服務passwd group hosts,所以它會記錄三個庫,分別對應源/etc/passwd, /etc/hosts 和 /etc/resolv.conf每個庫保存兩份緩存,一份是找到記錄的,一份是沒有找到記錄的。每一種緩存都保存有生存時間(TTL).

? ? ?安裝:

 ?yum?install?nscd

? ? 修改配置文件/etc/nscd.conf,開啟dns緩存,修改這一行

 ?enable-cache?hosts?yes。

如果啟用了nscd 服務,才有dns 緩存,否則是沒有dns緩存的。

?

?

? ? ?開啟 、停止、 重啟服務

?????service?nscd?start?|?stop?|?restart

?

?

?

nscd的配置:

?

通過編輯/etc/nscd.conf文件,在其中增加如下一行可以開啟本地DNS cache:

enable-cache?hosts?yes

?

阿里云主機上的配置如下:

?

[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

?

相關參數的解釋如下:

?

logfile debug-file-name:指定調試信息寫入的文件名。

debug-level value:設置希望的調試級別。

threads number:這是啟動的等待請求的線程數。最少將創建5個線程。

server-user user:如果設置了該選項,nscd將作為該用戶運行,而不是作為root。如果每個用戶都使用一個單獨的緩存(-S參數),將忽略該選項

enable-cache service :啟用或禁用制定的 服務 緩存。

positive-time-to-live service value:設置 service 在指定緩存中正的項目(成功的請求)的TTL(存活時間)。 Value 以秒為單位。較大的值將增加緩存命中率從而減低平均響應時間,但是將增加緩存的一致性問題。

negative-time-to-live service value:設置 service 在指定緩存中負的項目(失敗的請求)的TTL(存活時間)。 Value 以秒為單位。如果存在由不在系統數據庫中的uid(用戶ID)(例如在以root身份解包linux 內核源代碼時)所擁有的文件將明顯改善性能;應該維持較小的值以降低緩存一致性問題。

suggested-size service value:這是內部散列表的大小, value 應該保持一個素數以達到優化效果。

check-files service :啟用或禁用檢查屬于指定 服務 的文件的改變。這些文件是 /etc/passwd, /etc/group, 以及/etc/hosts。

?

?

?

?

nscd的查看和清除

?

?

nscd緩存DB文件在/var/db/nscd下。

nscd -g? 查看統計信息

?

清除 nscd緩存:

nscd?-i?passwd nscd?-i?group nscd?-i?hosts

?

當然也先刪除緩存庫或者停掉nscd服務:

rm?-f?/var/db/nscd/hosts service?nscd?restart

或者是直接停止nscd 服務? service nscd stop。

推薦學習:《linux視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享