Linux 下 NetworkManager 自定義 DNS

hugh Lee發表於2017-09-16

Linux 下 NetworkManager 自定義 DNS

OS: fedora
Kernel: 2.6.30
Package: NetworManager 0.8

一、常規方法

在 Linux (筆者用fedora) 下當使用 NetworkManager時,更改 DNS 的一般方式:

  1. 修改 /etc/resolv.conf 檔案, 新增 “nameserver ip” 行.
  2. 修改 /etc/sysconfig/network-scripts/ifcfg-eth0, 新增 “DNS1=ip”, “DNS2=IP”…行。
  3. 修改 /etc/sysconfig/networking/….目錄下的 ifcfg-eth0 或者 default. 方式同上。

修改完檔案後需要執行 “service NetworkManager restart” 重啟網路以使設定生效。

另說明linux 服務的管理方法:
service NetworkManager restart | start | stop | status
上面的 NetworkManager 可被其他服務名替換。”|” 隔開的命令可任選其一。

注意:以上修改在 關機再次啟動 電腦後會被 NetworkManager重置為預設 isp 的 dns. 即 “generated by NetworkManager”.

二、改進

用 NetworkManager 管理網路設定,並永久自定義 DNS. 可以如下設定:

  1. 修改 /etc/resolv.conf , 新增 “nameserver ip”.
  2. 執行 “sudo chattr +i /etc/resolv.conf”, 該命令修改檔案屬性為 只有 root 使用者才能修改該檔案。去掉可將引數改為 “-i”.
  3. 以 root 身份執行 “service NetworkManager restart”.

注意:此時 會產生 /etc/resolv.conf.tmp 檔案,不必理會。

三、推薦DNS

Google Public DNS: 8.8.8.8; 8.8.4.4.
Norton DNS: 198.153.192.1; 198.153.194.1.
OpenDNS: 208.67.222.222; 208.67.220.220.

四、筆者的 /etc/resolv.conf 檔案

#此行註釋
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 198.153.192.1
nameserver 198.153.194.1
nameserver 208.67.222.222
nameserver 208.67.220.220

在此要強調一點的是,直接修改/etc/resolv.conf這個檔案是沒用的,網路服務重啟以後會根據/etc/sysconfig /network-scripts/ifcfg-eth0來過載配置,如果ifcfg-eth0沒有配置DNS,那麼resolv.conf會被沖掉,重新變成空值。

相關文章