Linux DHCP DNS重開機跑掉的問題
問題描述 在 Linux 上使用 DHCP 取得 IP 時,雖然手動設定了 DNS,但每次重開機後 /etc/resolv.conf 的 DNS 設定就會被覆蓋,導致 DNS 解析失敗。
DHCP 與 DNS 的關係 DHCP(Dynamic Host Configuration Protocol)在分配 IP 時,同時也會提供 DNS 伺服器資訊。當網路服務啟動或 DHCP 更新 lease 時,DHCP client 程式(如 dhclient)預設會將 DHCP 伺服器提供的 DNS 寫入 /etc/resolv.conf,覆蓋掉手動設定的內容。
解決方法 CentOS / RHEL(使用 ifcfg 設定) 修改對應網卡的設定檔,加入 PEERDNS=no,告知 DHCP client 不要更新 DNS 設定:
1 2 # 假設網卡為 eth0 sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 在設定檔中加入或修改:
1 2 3 4 BOOTPROTO=dhcp PEERDNS=no # 加入這行,禁止 DHCP 覆蓋 DNS DNS1=8.