首頁  >  文章  >  運維  >  linux改hosts不生效怎麼辦

linux改hosts不生效怎麼辦

藏色散人
藏色散人原創
2023-03-27 10:08:108802瀏覽

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 bb465b611d06b065d5e0e67bdf17426c:啟用或停用制定的 服務 快取。

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 bb465b611d06b065d5e0e67bdf17426c:啟用或停用檢查屬於指定 服務 的檔案的變更。這些檔案是 /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影片教學

以上是linux改hosts不生效怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn