Linux DHCP DNS重開機跑掉的問題
Contents
問題描述
在 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 設定:
|
|
在設定檔中加入或修改:
|
|
修改後重啟網路:
|
|
Ubuntu / Debian(使用 resolvconf 或 systemd-resolved)
方法一:鎖定 resolv.conf(不建議長期使用)
|
|
方法二:使用 resolvconf 管理
|
|
加入:
|
|
更新設定:
|
|
方法三:使用 systemd-resolved(Ubuntu 18.04+)
|
|
|
|
|
|
/etc/resolv.conf 說明
|
|