在創建ECS時,DNS服務器采用默認配置,不需要額外配置。若您的DNS服務器無法滿足業務需求,可自行配置DNS。本文主要介紹在Linux實例中自定義配置DNS的方法。
方式一(推薦使用)
使用DHCP選項集
通過DHCP選項集功能,您可以為VPC中的ECS實例配置DNS服務器IP地址和域名。
方式二
步驟一:自定義配置DNS
Linux系統存在不同的發行版本,不同發行版本中自定義配置DNS的方法不同,請根據現場環境匹配下列發行版本的操作命令。DNS配置完成之后請完成步驟二操作,避免因為重啟系統配置還原。
Alibaba Cloud Linux
Ubuntu
CentOS
Debian
SUSE Linux
OpenSUSE
AlmaLinux
Rocky Linux
CentosStream
Fedora
Alibaba Cloud Linux 2/3
在Alibaba Cloud Linux 2/3實例中自定義配置DNS的方法,請參見如何在Alibaba Cloud Linux 2實例中通過“/etc/resolv.conf”文件自定義配置DNS。
Ubuntu 18/20/22
目前常見的發行版大多使用的是NetworkManager服務進行網絡管理,但是從Ubuntu 18系統開始網絡服務類型為systemd-networkd,以下是在Ubuntu 18、Ubuntu 20系統中自定義配置DNS的操作步驟:
以下操作涉及配置文件內容的修改,修改文件之前,請先進行備份。
執行以下命令,編輯
/etc/cloud/cloud.cfg
配置文件。vim /etc/cloud/cloud.cfg
按
i
鍵切換至編輯模式,在# Example datasource config
內容上增加以下配置,關閉cloud-init中的自動配置網絡的參數,避免網卡配置文件內容被覆蓋。network: config: disabled
系統顯示類似如下,表示修改成功。
修改完成后,按下
Esc
鍵后,輸入:wq
并回車以保存并關閉配置文件。
執行以下命令,編輯
/etc/netplan/50-cloud-init.yaml
配置文件。vim /etc/netplan/50-cloud-init.yaml
按
i
鍵切換至編輯模式,在文件底部添加以下配置,自定義配置DNS信息。nameservers: addresses:[223.5.XX.XX,223.6.XX.XX]
修改之后的內容如下所示。
network: version: 2 ethernets: eth0: dhcp4: true match: macaddress: 00:16:3e:13:42:71 set-name: eth0 nameservers: addresses: [223.5.XX.XX,223.6.XX.XX]
說明eth0:配置的網卡名稱,本文以eth0網卡為例,用戶可根據實際環境修改。
dhcp4:ECS實例的網絡配置默認為DHCP模式。
match:配置的MAC地址,本文以
00:16:3e:13:42:71
為例,用戶可根據實際環境修改。nameservers:自定義配置的DNS信息,本文以默認DNS IP地址
223.5.XX.XX
和223.6.XX.XX
為例,請按照實際情況填寫您自定義的DNS IP地址。
修改完成后,按下
Esc
鍵后,輸入:wq
并回車以保存并關閉配置文件。
執行以下命令,應用網卡配置。
netplan apply
執行以下命令,建立
/run/systemd/resolve/resolv.conf
文件的軟鏈接,避免因為/etc/resolv.conf
配置文件內容更新而導致配置還原。sudo ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf
CentOS 6/7/8
CentOS系統中,網絡配置和DNS配置被兩個不同的服務進行管理,分別維護比較麻煩。
網絡服務
CentOS 6和CentOS 7系統中的網絡服務為Network。
CentOS 8中的網絡服務為NetworkManager.service。
DNS服務截止到CentOS 8系統,目前均使用systemd-resolved作為管理DNS的服務。
為了便于維護,您可以參考下列步驟,統一通過網絡服務來管理網絡和DNS配置,即DNS也配置在網卡配置文件中。
以下操作涉及配置文件內容的修改,修改文件之前,請先進行備份。
請參見Ubuntu 18/20/22章節的步驟1,關閉cloud-init中的自動配置網絡的參數,避免網卡配置文件內容被覆蓋。
執行以下命令,編輯
/etc/sysconfig/network-scripts/ifcfg-eth0
配置文件。vim /etc/sysconfig/network-scripts/ifcfg-eth0
按
i
鍵切換至編輯模式,在文件底部添加以下配置,添加以下自定義DNS配置。PEERDNS=no DNS1=[223.5.XX.XX] DNS2=[223.6.XX.XX]
修改之后的內容如下所示。
BOOTPROTO=dhcp DEVICE=eth0 ONBOOT=yes STARTMODE=auto TYPE=Ethernet USERCTL=no PEERDNS=no DNS1=[223.5.XX.XX] DNS2=[223.6.XX.XX]
說明PEERDNS=no:表示不使用DHCP提供的DNS。
DNS1、DNS2:自定義配置的DNS信息,本文以默認DNS IP地址
223.5.XX.XX
和223.6.XX.XX
為例,請按照實際情況填寫您自定義的DNS IP地址。
修改完成后,按下
Esc
鍵后,輸入:wq
并回車以保存并關閉配置文件。
由于CentOS 6、CentOS 7、CentOS 8系統中重啟網絡服務的操作命令不同,請根據現場情況,選擇以下對應的步驟,重啟網絡服務。
CentOS 6:
service network restart
。CentOS 7:
systemctl restart network
。CentOS 8:
重新加載所有網卡配置
nmcli c reload
。激活網卡
nmcli d connect eth0
。
Debian 9/Debian 10/Debian 11/Ubuntu 16
Debian9、Debian 10、Debian 11和Ubuntu 16系統使用的網絡服務相同為networking,以下是在Debian 9、Debian 10、Debian 11和Ubuntu 16系統中自定義配置DNS的操作步驟:
以下操作涉及配置文件內容的修改,修改文件之前,請先進行備份。
執行以下命令,編輯
/etc/network/interfaces
網卡配置文件。某些高版本系統網卡配置文件中若配置為
source /etc/network/interfaces.d/*
,則需在文件 /etc/network/interfaces.d/50-cloud-init.cfg 中進行相應修改。vim /etc/network/interfaces
按
i
鍵切換至編輯模式,在文件底部添加以下配置,自定義配置DNS信息。dns-nameservers [223.5.XX.XX 223.6.XX.XX]
修改之后的內容如下所示。
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp dns-nameservers [223.5.XX.XX 223.6.XX.XX]
說明auto eth0:配置的網卡名稱,本文以eth0網卡為例,現場以實際環境為準。
iface eth0 inet dhcp:ECS實例的網絡配置默認為DHCP模式。
dns-nameservers:自定義配置的DNS信息,本文以默認DNS IP地址
223.5.XX.XX
和223.6.XX.XX
為例,請按照實際情況填寫您自定義的DNS IP地址。
修改完成后,按下
Esc
鍵后,輸入:wq
并回車以保存并關閉配置文件。
然后執行以下命令,重啟網絡服務。
systemctl restart networking.service
SUSE Linux 12/SUSE Linux 15/OpenSUSE 15
目前常見的發行版大多使用的是NetworkManager服務進行網絡管理,但是從SUSE Linux 12開始,SUSE Linux使用了Wicked網絡管理工具進行網絡管理。以下是在SUSE Linux 12、SUSE Linux 15、OpenSUSE 15系統中自定義配置DNS的操作步驟:
執行以下命令,編輯
/etc/resolv.conf
配置文件。vim /etc/resolv.conf
按
i
鍵切換至編輯模式,將nameserver
參數的值修改為您自定義的DNS IP地址。nameserver [223.5.XX.XX] nameserver [223.6.XX.XX]
說明nameserver:自定義配置的DNS信息,本文以默認DNS IP地址
223.5.XX.XX
和223.6.XX.XX
為例,請按照實際情況填寫您自定義的DNS IP地址。修改完成后,按下
Esc
鍵后,輸入:wq
并回車以保存并關閉配置文件。
執行以下命令,編輯
/etc/sysconfig/network/config
配置文件。vim /etc/sysconfig/network/config
按
i
鍵切換至編輯模式,將NETCONFIG_MODULES_ORDER
參數的值刪除,保留雙引號符號(""),如下所示。NETCONFIG_MODULES_ORDER=""
修改完成后,按下
Esc
鍵后,輸入:wq
并回車以保存并關閉配置文件。
執行以下命令,重啟網絡服務。
service network restart
AlmaLinux/Rocky Linux/CentosStream/Fedora
AlmaLinux8/9、Rocky Linux 8/9、CentosStream 8/9、Fedora 37 系統的DNS配置方式和Alibaba Cloud Linux 3系統一樣,請參考如何在Alibaba Cloud Linux實例中通過“/etc/resolv.conf”文件自定義配置DNS
(可選)步驟二:鎖定文件
配置完成DNS后,可通過重啟服務器的方式檢測是否配置成功。由于部分鏡像上安裝了高版本的cloud-init,重啟服務器cloud-init會自動重置網絡配置,您可以參考以下方式鎖定配置文件,避免因為重啟系統而導致配置文件內容重置。
如果想了解關于cloud-init的更多信息,請參見cloud-init的官方文檔。
鎖定配置文件: 以
/etc/resolv.conf
文件為例,執行以下命令,將該文件鎖定。chattr +i /etc/resolv.conf
解鎖配置文件:
如果您需要再次對鎖定文件進行修改,則執行以下命令,解鎖文件。
chattr -i /etc/resolv.conf
執行以下命令,確認域名可以正常解析。
nslookup <$Domain>
說明<$Domain>為您需要測試的域名,請根據實際情況進行修改。