在建立ECS時,DNS伺服器採用預設配置,不需要額外配置。若您的DNS伺服器無法滿足業務需求,可自行配置DNS。本文主要介紹在Linux執行個體中自訂配置DNS的方法。
步驟一:自訂配置DNS
Linux系統存在不同的發行版本,不同發行版本中自訂配置DNS的方法不同,請根據現場環境匹配下列發行版本的操作命令。DNS配置完成之後請完成步驟二操作,避免因為重啟系統配置還原。
Alibaba Cloud Linux
Ubuntu
CentOS
Debian
SUSE Linux
OpenSUSE
Alibaba Cloud Linux 2/3
在Alibaba Cloud Linux 2/3執行個體中自訂配置DNS的方法,請參見如何在Alibaba Cloud Linux 2執行個體中通過“/etc/resolv.conf”檔案自訂配置DNS。
Ubuntu 18/20
目前常見的發行版大多使用的是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章節的步驟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/Ubuntu 16
Debian9、Debian 10和Ubuntu 16系統使用的網路服務相同為networking,以下是在Debian 9、Debian 10和Ubuntu 16系統中自訂配置DNS的操作步驟:
以下操作涉及設定檔內容的修改,修改檔案之前,請先進行備份。
執行以下命令,編輯
/etc/network/interfaces
網卡設定檔。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
(可選)步驟二:鎖定檔案
配置完成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>為您需要測試的網域名稱,請根據實際情況進行修改。