在建立ECS執行個體時,預設情況下會自動設定DNS伺服器,不需要進行額外配置。若預設的DNS伺服器無法滿足您的業務需求,可以自行配置其他DNS伺服器位址。本文主要介紹配置自訂DNS伺服器位址的方法。
背景資訊
阿里雲為 ECS 執行個體提供高可用、高效能的預設 DNS 伺服器(IP 位址為 100.100.2.136 和 100.100.2.138),該服務由阿里雲自動維護,您無需為ECS執行個體進行額外配置。
請注意,阿里雲預設的DNS伺服器可以解析阿里雲服務的內網網域名稱,如果刪除預設DNS伺服器,會導致ECS執行個體無法訪問一系列服務,例如OSS Bucket內網網域名稱等。建議您將自訂的DNS伺服器位址放在阿里雲預設DNS伺服器位址前(越前優先順序越高),將阿里雲預設DNS伺服器作為備選DNS伺服器。
操作步驟
方式一:使用DHCP選項集自動設定(推薦)
DHCP選項集(DHCP Options Set)是阿里雲中用於定義和集中管理網路參數的工具,允許使用者統一配置如DNS伺服器、網域名稱等關鍵網路設定。Virtual Private Cloud綁定DHCP選項集後,VPC中的ECS執行個體向DHCP伺服器發送請求以擷取選項集中的網路設定資訊(網域名稱、DNS伺服器等),從而可以確保VPC內的所有ECS執行個體接收一致且定製化的網路設定,而無需手動為每個執行個體配置這些網路資訊。
方式二:登入執行個體手動設定
不同的作業系統具有不同的配置步驟,以下列舉了一些常見的作業系統,請根據您ECS執行個體的作業系統進行相應配置。
Windows Server 2022(其他Windows Server版本操作類似)
登入ECS執行個體。
具體操作,請參見使用Workbench工具以RDP協議登入Windows執行個體。
開啟網路和Internet中的網路和共用中心。
單擊更改適配器設定。
選擇要配置的網路介面卡,預設情況下,主網卡的裝置名稱為乙太網路。右鍵選擇屬性。

在乙太網路屬性對話方塊中,雙擊網際網路通訊協定 (IP)版本4(TCP/IPv4),如果配置IPv6的DNS伺服器位址,選擇網際網路通訊協定 (IP)版本6(TCP/IPv6)。

在屬性對話方塊中,選擇使用下面的DNS伺服器位址,填寫首選DNS伺服器與備用DNS伺服器位址(建議將自訂DNS伺服器作為首選,將阿里雲預設DNS伺服器作為備選)。如果需要配置兩個以上的DNS伺服器,點擊進階->選擇DNS欄->添加多個DNS伺服器位址。
單擊確定儲存各對話方塊中的設定。
Alibaba Cloud Linux 2/CentOS 6/CentOS 7
登入ECS執行個體。
具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
執行以下命令,編輯/etc/resolv.conf
普通檔案。
說明
以下操作涉及設定檔內容的修改,修改檔案之前,建議先進行備份。
sudo vim /etc/resolv.conf
按i
鍵切換至編輯模式,在檔案中添加以下配置,自訂DNS配置。 您需要將<DNS1>和<DNS2>修改為實際的DNS伺服器位址(建議將自訂DNS伺服器放在阿里雲預設DNS伺服器上方)。優先使用上方的DNS伺服器,優先順序越往下越低。
nameserver <DNS1>
nameserver <DNS2>
修改完成後,按下Esc
鍵後,輸入:wq
並斷行符號以儲存並關閉設定檔。
執行以下命令,鎖定/etc/resolv.conf
設定檔,防止網路或系統重啟動態更新/etc/resolv.conf
設定檔。
sudo chattr +i /etc/resolv.conf
說明
如果後續需要修改/etc/resolv.conf
檔案,可執行chattr -i /etc/resolv.conf
命令解除檔案的鎖定。
Alibaba Cloud Linux 3(CentOS 8/AlmaLinux/Rocky Linux/CentosStream適用)
登入ECS執行個體。
具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
在Alibaba Cloud Linux 3中,DNS配置預設由NetworkManager管理。若需手動設定DNS,需要先禁用NetworkManager對DNS的管理功能。
建立/etc/NetworkManager/conf.d/90-dns-none.conf
檔案。
sudo vim /etc/NetworkManager/conf.d/90-dns-none.conf
按i
鍵切換至編輯模式,在檔案中添加以下配置,將DNS從NetworkManager移除。
修改完成後,按下Esc
鍵後,輸入:wq
並斷行符號以儲存並關閉設定檔。
執行以下命令,使配置生效。
sudo systemctl reload NetworkManager
執行以下命令,編輯/etc/resolv.conf
檔案。
說明
以下操作涉及設定檔內容的修改,修改檔案之前,建議先進行備份。
sudo vim /etc/resolv.conf
按i
鍵切換至編輯模式,在檔案中添加以下配置,自訂DNS配置。 您需要將<DNS1>和<DNS2>修改為實際的DNS伺服器位址(建議將自訂DNS伺服器放在阿里雲預設DNS伺服器上方)。優先使用上方的DNS伺服器,優先順序越往下越低。
nameserver <DNS1>
nameserver <DNS2>
修改完成後,按下Esc
鍵後,輸入:wq
並斷行符號以儲存並關閉設定檔。
執行以下命令,鎖定/etc/resolv.conf
設定檔,防止網路或系統重啟動態更新/etc/resolv.conf
設定檔。
sudo chattr +i /etc/resolv.conf
說明
如果後續需要修改/etc/resolv.conf
檔案,可執行chattr -i /etc/resolv.conf
命令解除檔案的鎖定。
登入ECS執行個體。
具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
執行以下命令,建立檔案,禁用cloud-init的網路設定功能。
sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
添加如下配置項:
network: {config: disabled}
修改完成後,按下Esc
鍵後,輸入:wq
並斷行符號以儲存並關閉設定檔。
執行以下命令,編輯/etc/netplan/50-cloud-init.yaml
設定檔。 此處以主網卡設定檔為例,如果您配置了輔助網卡,請修改/etc/netplan/
目錄下對應的網卡設定檔。
說明
以下操作涉及設定檔內容的修改,修改檔案之前,建議先進行備份。
sudo vim /etc/netplan/50-cloud-init.yaml
按i
鍵切換至編輯模式,在網路介面(如eth0)的配置中添加自訂配置DNS資訊。
nameservers:
addresses:
- 10.0.XX.XX
- 192.168.XX.XX
修改後的內容如下所示。需要注意避免多餘或缺失的空格與換行。
network:
version: 2
ethernets:
eth0:
dhcp4: true
match:
macaddress: 00:16:3e:13:xx:xx
set-name: eth0
nameservers:
addresses:
- 10.0.XX.XX
- 192.168.XX.XX
說明
eth0:配置的網卡名稱,本文以eth0網卡為例。
dhcp4:ECS執行個體的網路設定預設為DHCP模式。
match:執行個體的MAC地址。
nameservers:自訂配置的DNS資訊,本文以DNS IP地址10.0.XX.XX
和192.168.XX.XX
為例,請按照實際情況填寫DNS IP地址(建議將自訂DNS伺服器放在阿里雲預設DNS伺服器前方)。優先使用前方的DNS伺服器,優先順序越往後越低。
修改完成後,按下Esc
鍵後,輸入:wq
並斷行符號以儲存並關閉設定檔。
執行以下命令,應用網卡配置。
Debian 10/Debian 11/Ubuntu 16
登入ECS執行個體。
具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
執行以下命令,編輯/etc/network/interfaces
網卡設定檔。某些高版本系統網卡設定檔中若配置為 source /etc/network/interfaces.d/*
,則需在檔案 /etc/network/interfaces.d/50-cloud-init.cfg
中進行相應修改。
sudo vim /etc/network/interfaces
按i
鍵切換至編輯模式,在網路介面(如eth0)的配置中添加以下配置,自訂配置DNS資訊。請按照實際情況填寫DNS IP地址(建議將自訂DNS伺服器放在阿里雲預設DNS伺服器前面)。優先使用前面的DNS伺服器,優先順序越往後越低。
dns-nameservers 10.0.XX.XX 192.168.XX.XX
修改之後的內容如下所示,注意不要有缺失或多餘的空格。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
dns-nameservers 10.0.XX.XX 192.168.XX.XX
修改完成後,按下Esc
鍵後,輸入:wq
並斷行符號以儲存並關閉設定檔。
然後執行以下命令,重啟網路服務。
sudo systemctl restart networking.service
SUSE Linux 12/SUSE Linux 15/OpenSUSE 15
登入ECS執行個體。
具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
執行以下命令,啟動YaST控制中心。
選擇 Network Settings,斷行符號鍵進入。
說明
在不能使用滑鼠點擊時,YaST控制中心可以通過鍵盤方向鍵或Tab鍵選擇操作。
切換至DNS欄,在下方Name Server地區設定自訂DNS伺服器位址。您需要填寫實際的DNS伺服器位址(建議將自訂DNS伺服器放在阿里雲預設DNS伺服器上方)。優先使用上方的DNS伺服器,優先順序越往下越低。設定完成後儲存退出。
執行以下命令,重啟網路服務。
sudo service network restart
驗證測試
在配置完成後,您可以使用如下命令,測試您新配置的DNS伺服器是否生效。
重要
在執行測試前,您需要確保ECS執行個體到目標DNS伺服器的53連接埠是可達的,請檢查可能限制此流量的節點,包括但不限於安全性群組、執行個體內防火牆。
nslookup
命令適用於大多數作業系統,以Alibaba Cloud Linux 3為例,預設沒有安裝nslookup
,需要通過以下命令安裝。
sudo yum install bind-utils
nslookup
命令適用於Ubuntu系統,但是Ubuntu預設啟用了systemd-resolved服務。這個服務提供了一個本地DNS解析服務,您的DNS查詢首先會發送到本地的解析服務,例如127.0.0.53。如果需要查看實際使用的DNS伺服器,請使用以下命令。
查看返回結果的 Server 資訊,如果已經更新為您在上一步設定的DNS伺服器位址,表示配置成功。
