如何配置Linux DNS服務(wù)器 resolv.conf文件修改指南

要修改linux系統(tǒng)的dns配置,需編輯/etc/resolv.conf文件并添加nameserver條目,但需注意系統(tǒng)覆蓋問(wèn)題。resolv.conf位于/etc目錄下,負(fù)責(zé)指定dns服務(wù)器,用于域名解析。手動(dòng)修改可能被網(wǎng)絡(luò)工具自動(dòng)覆蓋,解決方法包括:1.用chattr +i防止文件被修改;2.通過(guò)networkmanager等工具配置dns;3.禁用systemd-resolved服務(wù)。文件最多支持3個(gè)nameserver,還可配置search和domain項(xiàng)。修改前應(yīng)備份原文件以防影響網(wǎng)絡(luò)連接。

如何配置Linux DNS服務(wù)器 resolv.conf文件修改指南

linux系統(tǒng)中,resolv.conf文件是控制DNS解析的關(guān)鍵配置文件。如果你需要讓服務(wù)器或本地機(jī)器使用特定的DNS服務(wù)器,修改這個(gè)文件幾乎是必經(jīng)步驟。操作不復(fù)雜,但細(xì)節(jié)需要注意。

如何配置Linux DNS服務(wù)器 resolv.conf文件修改指南

resolv.conf 文件的位置和作用

這個(gè)文件一般位于 /etc/resolv.conf,它的主要作用是告訴系統(tǒng)使用哪些DNS服務(wù)器進(jìn)行域名解析。當(dāng)你執(zhí)行 ping www.example.com 或者訪問(wèn)網(wǎng)頁(yè)時(shí),系統(tǒng)會(huì)先去查這個(gè)文件里的DNS地址,再進(jìn)行解析。

如何配置Linux DNS服務(wù)器 resolv.conf文件修改指南

默認(rèn)情況下,很多系統(tǒng)的這個(gè)文件可能是由網(wǎng)絡(luò)管理工具(比如NetworkManager或dhclient)自動(dòng)生成的。所以有時(shí)候你手動(dòng)改了內(nèi)容,重啟網(wǎng)絡(luò)后又變回去了,這就是因?yàn)楸蛔詣?dòng)覆蓋了。

如何正確修改 resolv.conf?

修改方法其實(shí)很簡(jiǎn)單,就是用文本編輯器打開(kāi)它,寫(xiě)入你需要的DNS信息即可。例如:

如何配置Linux DNS服務(wù)器 resolv.conf文件修改指南

sudo nano /etc/resolv.conf

然后在里面添加類(lèi)似下面的內(nèi)容:

  • nameserver 8.8.8.8
  • nameserver 1.1.1.1

這表示你希望系統(tǒng)優(yōu)先使用 Google 的 DNS 和 Cloudflare 的 DNS 來(lái)解析域名。

不過(guò)要注意的是,有些發(fā)行版為了防止手動(dòng)修改被覆蓋,會(huì)把該文件做成一個(gè)符號(hào)鏈接,指向其他位置。你可以用 ls -l /etc/resolv.conf 看一下是不是個(gè)軟鏈接。如果是的話,可能需要先取消鏈接,再創(chuàng)建真正的文件。

防止配置被覆蓋的小技巧

如果你發(fā)現(xiàn)每次重啟網(wǎng)絡(luò)或系統(tǒng)后,resolv.conf 又變回去了,那很可能是因?yàn)槟愕南到y(tǒng)使用了像 dhclient 或 NetworkManager 這類(lèi)網(wǎng)絡(luò)管理工具,它們會(huì)在獲取DHCP信息時(shí)自動(dòng)重寫(xiě)這個(gè)文件。

解決辦法有幾個(gè):

  • 方法一:設(shè)置文件為不可變
    使用 chattr +i /etc/resolv.conf 命令可以讓文件變成只讀狀態(tài),這樣即使有程序想改它也改不了。但注意,以后你自己要修改的時(shí)候也需要先解除這個(gè)限制:chattr -i /etc/resolv.conf。

  • 方法二:通過(guò)網(wǎng)絡(luò)管理工具配置DNS
    比如使用 NetworkManager 的話,可以在連接設(shè)置里直接填上你想用的DNS地址,這樣它就會(huì)自動(dòng)寫(xiě)入到 resolv.conf 中,不會(huì)被覆蓋。

  • 方法三:禁用systemd-resolved服務(wù)(某些系統(tǒng)適用)
    在一些使用 systemd 的系統(tǒng)中,systemd-resolved 會(huì)接管DNS解析,并生成一個(gè)動(dòng)態(tài)的 resolv.conf。如果你不想讓它插手,可以停用這個(gè)服務(wù)并替換為自己的配置。

常見(jiàn)問(wèn)題和注意事項(xiàng)

  • 最多支持3個(gè)nameserver
    標(biāo)準(zhǔn)規(guī)定 resolv.conf 中最多可以寫(xiě)三個(gè) nameserver 行,系統(tǒng)會(huì)按順序嘗試。超過(guò)三個(gè)的會(huì)被忽略。

  • search 和 domain 設(shè)置
    如果你在內(nèi)網(wǎng)環(huán)境中工作,可能會(huì)看到 search example.com 或 domain local 這樣的配置項(xiàng)。它們的作用是在你輸入短域名時(shí)自動(dòng)補(bǔ)全,比如輸入 host1 就會(huì)被當(dāng)作 host1.example.com 來(lái)解析。

  • 不要隨便刪除或清空這個(gè)文件
    一旦沒(méi)了DNS配置,系統(tǒng)就無(wú)法正常上網(wǎng)了。如果不確定怎么改,建議先備份原文件。

基本上就這些。修改 resolv.conf 并不難,關(guān)鍵是要知道系統(tǒng)是怎么管理它的,避免自己寫(xiě)的配置被“偷偷”改掉。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享