全部產品
Search
文件中心

Virtual Private Cloud:DHCP選項集與DNS主機名稱

更新時間:Sep 11, 2025

為降低 ECS 執行個體間通訊對固定 IP 的依賴,您可以使用 DHCP 選項集為 ECS 統一配置 DNS 伺服器 IP 和搜尋域,簡化網路管理工作。使用主機名稱訪問 ECS 時,系統將補全搜尋域,向指定的 DNS 伺服器查詢完整網域名稱與 IP 的映射關係。

工作原理

DHCP選項集(DHCP Options Set)為關聯 VPC 內的 ECS 執行個體統一配置DNS網域名稱伺服器IP網域名稱等參數後,執行個體間可以使用主機名稱/完整網域名稱互訪,無需依賴固定IP。

序號

說明

DHCP 選項集關聯至 VPC,VPC 中的 ECS 與 DHCP 伺服器互動,擷取 DHCP 選項集中的網路設定資訊(包括網域名稱、DNS 伺服器 IP 等網路相關配置資訊,並寫入 ECS 的系統配置。

ECS 執行個體向 DNS 伺服器發送查詢請求,以擷取 DNS 主機名稱與 IP 位址的映射關係。DNS 伺服器將 DNS 主機名稱解析到對應的 IP 位址。

根據解析結果,訪問對應的ECS執行個體。

佈建網域名:使用主機名稱通訊

完整的私網網域名稱包括主機名稱(host name)和網域名稱(domain name)兩部分,例如host01.host.prvz中,主機名稱為host01,網域名稱為host.prvz

在 DNS 伺服器中配置 ECS 網域名稱解析記錄後,ECS 可通過完整的私網網域名稱被訪問。如需簡化為僅使用主機名稱通訊,您可以使用vim /etc/resolv.conf修改 ECS 的 DNS 設定檔,添加search host.prvz,將host.prvz設定成 DNS 搜尋域(search domain)。

但手動設定每個 ECS,可能存在配置效率低下、配置不統一等問題。在關聯的 DHCP 選項集中佈建網域名後,VPC 內的 ECS 執行個體可以通過 DHCP 擷取 DHCP 選項集中配置的網域名稱,寫入/etc/resolv.conf,統一設定 DNS 搜尋域。使用主機名稱訪問 ECS 時,系統將補全搜尋域,向指定的 DNS 伺服器查詢完整網域名稱與 IP 的映射關係。

配置DNS伺服器IP:查詢網域名稱解析記錄

DNS 伺服器維護網域名稱解析記錄。當 ECS 執行ping host01.host.prvz時,會向指定的 DNS 伺服器發送查詢請求,DNS 伺服器將返回對應的 IP 位址。

使用官方鏡像建立 ECS 時,阿里雲會通過 DHCP 自動為 ECS 配置預設 DNS 伺服器,其 IP 為 100.100.2.136 和 100.100.2.138。

對比項

啟用 DNS 主機名稱

內網 DNS 解析(Private DNS)

自建 DNS 服務

DHCP選項集類型

預設DHCP選項集

自訂DHCP選項集

自訂DHCP選項集

網域名稱配置

ECS 私網網域名稱 [regionID].ecs.internal

預設 DNS 伺服器

自訂網域名

預設 DNS 伺服器

自訂網域名

自建 DNS 伺服器

計費

無需支付網域名稱費用

結合添加的網域名稱數量、解析請求量收取費用

無需支付網域名稱費用

是否支援跨 VPC、混合雲私網網域名稱通訊

不支援

支援

支援

DNS 查詢效能取決於使用的DNS伺服器。阿里雲預設DNS伺服器的查詢效能,可參考內網DNS解析服務的使用限制

建立/刪除 DHCP 選項集

為降低對固定 IP 的依賴、使用主機名稱/完整網域名稱互訪,您可以使用 DHCP 選項集為關聯 VPC 內的 ECS 統一配置 DNS 伺服器 IP 和搜尋域。ECS 執行ping <hostname>時,系統將補全搜尋域(例如hostname.example.com),向指定的 DNS 伺服器查詢網域名稱與 IP 的映射關係。

一個DHCP選項集可以關聯多個同地區VPC,但一個VPC只能關聯一個同地區DHCP選項集。

控制台

建立 DHCP 選項集

每個地區首次為 VPC 啟用 DNS 主機名稱時,自動建立預設 DHCP 選項集並關聯至 VPC。預設 DHCP 選項集不支援修改,您可以前往專用網路控制台 - DHCP 選項集建立 DHCP 選項集,配置與 DNS 解析服務對應的網域名稱DNS網域名稱伺服器IP

如果 VPC 已關聯其他 DHCP 選項集,VPC 啟用 DNS 主機名稱後,將不會關聯預設 DHCP 選項集,您需要自行修改關聯關係。

關聯專用網路

VPC 與 DHCP 選項集的關聯關係,可在目標 VPC 詳情頁的DHCP 選項集參數項、目標 DHCP 選項集的操作列或詳情頁,進行建立、更改或解除。

  • 關聯關係變更後,建立 ECS 會自動使用最新配置,存量 ECS 需要通過sudo dhclient -r eth0 && sudo dhclient eth0重啟執行個體中 DHCP 進程,才能使用最新配置;解除關聯關係後,阿里雲會通過 DHCP 為 ECS 指定預設 DNS 伺服器。確保不影響業務的前提下,您也可以通過重啟執行個體或重啟網路服務,確儲存量 ECS 使用最新配置。

    常見作業系統重啟網路服務的命令

    作業系統

    Version

    重啟網路服務命令

    CentOS

    6

    service network restart

    7

    systemctl restart network

    8

    systemctl restart NetworkManager

    Debian

    8

    systemctl restart networking

    9

    systemctl restart networking

    10

    systemctl restart networking

    Ubuntu

    14

    service networking restart

    16

    systemctl restart networking

    18

    systemctl restart systemd-networkd

    20

    systemctl restart systemd-networkd

    Alibaba Cloud Linux 2

    2

    systemctl  restart  network

    Alibaba Cloud Linux 3

    3

    systemctl restart  NetworkManager

  • 如果 DHCP 選項集關聯的 VPC 開啟了共用VPC功能,則 DHCP 選項集也會對共用 VPC 內的 ECS 生效。

修改 DHCP 選項集

預設 DHCP 選項集不支援修改,自訂 DHCP 選項集指定的網域名稱和 DNS 伺服器 IP 可修改。

修改 DHCP 選項集後,關聯 VPC 內的建立 ECS 會自動使用最新配置,存量 ECS 需要通過重啟執行個體中 DHCP 進程,才能使用最新配置。確保不影響業務的前提下,您也可以通過重啟執行個體或重啟網路服務,確儲存量 ECS 使用最新配置。

刪除 DHCP 選項集

需先確保已解除與 VPC 的關聯,在目標 DHCP 選項集的操作列或詳情頁,單擊刪除

API

每個地區首次為 VPC 啟用 DNS 主機名稱時,自動建立預設 DHCP 選項集並關聯至 VPC。
修改 DHCP 選項集配置或變更關聯關係後,建立 ECS 會自動使用最新配置,存量 ECS 需重啟執行個體、重啟執行個體中 DHCP 進程或重啟網路服務,才能使用最新配置。

Terraform

Resource:alicloud_vpc_dhcp_options_setalicloud_vpc_dhcp_options_set_attachment
# 指定VPC的地區
provider "alicloud" {
  region = "cn-hangzhou"
}

# 建立DHCP選項集
resource "alicloud_vpc_dhcp_options_set" "test_dhcp_options_set" {
  dhcp_options_set_name = "test_dhcp_options_set_name"
  domain_name           = "example.com"                 # 指定網域名稱
  domain_name_servers   = "100.100.2.136,100.100.2.138" # 指定DNS伺服器IP
}

# 關聯DHCP選項集與VPC
resource "alicloud_vpc_dhcp_options_set_attachment" "test_attachment_vpc" {
  vpc_id              = "vpc-8vbg******"                                       # 指定關聯的VPC的執行個體ID
  dhcp_options_set_id = alicloud_vpc_dhcp_options_set.test_dhcp_options_set.id # 指定關聯的DHCP選項集的執行個體ID
}

啟用 DNS 主機名稱

為實現同一VPC內通過私網網域名稱進行通訊,您可以為 VPC 啟用 DNS 主機名稱,並在 ECS 中配置私網網域名稱解析,由阿里雲的內網 DNS 解析自動維護網域名稱解析記錄,降低網域名稱解析記錄的維護時間與成本。VPC 會關聯預設 DHCP 選項集,為 ECS 指定統一的ECS 雲產品內建權威網域名稱 [regionID].ecs.internal

1、每個地區首次啟用 DNS 主機名稱時,自動建立預設 DHCP 選項集並關聯至 VPC。該地區其他 VPC 啟用 DNS 主機名稱時,系統自動將該預設 DHCP 選項集與對應 VPC 關聯。
2、如果 VPC 已關聯其他 DHCP 選項集,VPC 啟用 DNS 主機名稱後,將不會關聯預設 DHCP 選項集,您需要自行修改關聯關係。
3、暫不支援跨 VPC、混合雲情境下,使用私網網域名稱通訊。

控制台

啟用 DNS 主機名稱

  1. 前往專用網路控制台,在目標 VPC 基本資料頁面,單擊啟用 DNS 主機名稱。

  2. 前往ECS執行個體管理主控台,為 ECS 配置私網網域名稱解析,對應 ECS 可通過主機名稱被同一 VPC 內的 ECS 訪問。

    建立執行個體時,展開進階選項(選填)配置私網網域名稱解析,選擇IP 格式主機名稱到執行個體主私網 IPv4 的 DNS 解析或執行個體 ID 格式主機名稱到執行個體主私網 IPv4的 DNS 解析。

    執行個體 ID 無法修改;執行個體 IP 變化後,網域名稱解析記錄將自動更新為新 IP 格式的主機名稱到新 IP 的映射。
    執行個體分配 IPv6 地址後,可選擇執行個體 ID 格式主機名稱到執行個體主私網 IPv6的 DNS 解析。

    針對已建立的 ECS,在其操作列選擇表徵圖執行個體屬性 > 編輯執行個體屬性,選擇對應的私網網域名稱和IP地址的映射關係。

禁用 DNS 主機名稱

在目標 VPC 基本資料頁面,單擊禁用 DNS 主機名稱,阿里雲統一分配的網域名稱將失效,無法將 ECS 私網網域名稱解析為對應的 IP。

系統會自動解除與預設 DHCP 選項集的關聯,但不會刪除 DHCP 選項集。如需刪除,確保已解除與所有 VPC 的關聯。

API

與控制台邏輯不同的是,調用CreateVpc建立 VPC 時,可調整EnableDnsHostname參數,啟用/禁用 DNS 主機名稱。
  • 調整 ModifyVpcAttributeEnableDnsHostname 參數,啟用/禁用 DNS 主機名稱。

  • 調用RunInstances建立執行個體時,指定PrivateDnsNameOptions相關參數,配置執行個體的私網網域名稱解析。

  • 調整ModifyInstanceAttributePrivateDnsNameOptions相關參數,配置目標 ECS 的私網網域名稱解析。

Terraform

ECS 私網網域名稱解析暫不支援使用 Terraform 配置,本樣本僅為 VPC 啟用 DNS 主機名稱。
Resources:alicloud_vpcalicloud_vswitch
Data Sources:alicloud_zones
# 指定建立VPC的地區 
provider "alicloud" {
  region = "cn-hangzhou"
}

# 建立VPC 
resource "alicloud_vpc" "test_vpc" {
  vpc_name            = "test_vpc_name"
  cidr_block          = "10.0.0.0/16"
  dns_hostname_status = "ENABLED" # 啟用DNS主機名稱
}

使用自訂網域名通訊

啟用 DNS 主機名稱產生的 ECS 私網網域名稱無法修改,如需使用自訂網域名,您可以使用阿里雲的內網 DNS 解析或自建 DNS 服務。

使用內網 DNS 解析

為統一添加 ECS 的網域名稱解析記錄,您可以使用內網 DNS 解析。該服務將結合添加的網域名稱數量、解析請求量收取費用

控制台

  1. 前往內網 DNS 解析控制台,單擊添加網域名稱(Zone),配置自訂的內建權威網域名稱(Zone),並設定網域名稱生效範圍為目標 VPC。

    單擊目標網域名稱 ID,您可以在ECS主機名稱頁簽,單擊添加 ECS 主機名稱,系統將自動添加所選地區中 ECS 主機名稱與 IP 的網域名稱解析記錄,但主機名稱修改後,無法同步更新。您可以開啟自動同步配置,系統將自動添加所選地區內的網域名稱解析記錄,且1分鐘同步1次。如需使用自訂網域名首碼,您可以選擇解析記錄頁簽,添加自訂主機記錄

  2. 前往專用網路控制台 - DHCP 選項集建立 DHCP 選項集,配置網域名稱為對應的內建權威網域名稱。

  3. 在目標 DHCP 選項集的操作列選擇關聯專用網路,已佈建網域名解析記錄的 ECS 可通過主機名稱/主機記錄被關聯 VPC 內的 ECS 訪問。

API

依次調用如下 API,使用阿里雲的內網 DNS 解析服務:

  1. AddZone - 添加內建權威網域名稱

  2. 添加解析記錄UpdateSyncEcsHostTask - 主機名稱同步

  3. CreateDhcpOptionsSet - 建立 DHCP 選項集

  4. AttachDhcpOptionsSetToVpc - 將 DHCP 選項集關聯到 VPC

Terraform

當前不支援自動添加 ECS 主機名稱解析記錄,您需要逐條添加自訂網域名解析記錄。
Resource:alicloud_pvtz_zonealicloud_pvtz_zone_attachmentalicloud_pvtz_zone_recordalicloud_vpc_dhcp_options_setalicloud_vpc_dhcp_options_set_attachment
# 指定目標VPC所在地區
provider "alicloud" {
  region = "cn-hangzhou"
}

# 配置內建權威網域名稱
resource "alicloud_pvtz_zone" "test_pvtz_zone" {
  zone_name = "example.com"
}

# 設定網域名稱生效範圍
resource "alicloud_pvtz_zone_attachment" "test_pvtz_zone_attachment" {
  zone_id = alicloud_pvtz_zone.test_pvtz_zone.id
  vpc_ids = ["vpc-8vba******"] # 指定網域名稱生效的VPC執行個體ID
}

# 添加網域名稱解析記錄
resource "alicloud_pvtz_zone_record" "test_pvtz_zone_record" {
  zone_id = alicloud_pvtz_zone.test_pvtz_zone.id
  rr      = "abc"         # 指定主機記錄
  type    = "A"           # 指定網域名稱解析記錄類型
  value   = "192.168.0.4" # 指定網域名稱解析記錄值
}

# 建立DHCP選項集
resource "alicloud_vpc_dhcp_options_set" "test_dhcp_options_set" {
  dhcp_options_set_name = "test_dhcp_options_set_name"
  domain_name           = "example.com"                 # 指定網域名稱
  domain_name_servers   = "100.100.2.136,100.100.2.138" # 指定阿里雲預設DNS伺服器IP 
}

# 關聯DHCP選項集與VPC
resource "alicloud_vpc_dhcp_options_set_attachment" "test_attachment_vpc" {
  vpc_id              = "vpc-8vba******"                                       # 指定關聯的VPC的執行個體ID
  dhcp_options_set_id = alicloud_vpc_dhcp_options_set.test_dhcp_options_set.id # 指定關聯的DHCP選項集的執行個體ID
}

使用自建 DNS 服務

如果業務需要靈活的DNS調度策略,例如根據地理位置、網路品質、伺服器負載等因素動態返回最優IP,您可以自建DNS伺服器,但需自我維護網域名稱解析記錄,並確保服務可靠性。您可以參考以下樣本部署自建DNS服務,並使用DHCP選項集為ECS執行個體指定自建DNS伺服器IP和自訂網域名。

使用 BIND 部署自建 DNS 服務樣本

  1. 執行 yum install -y bind bind-utils安裝 BIND。

  2. 執行 vim /etc/named.conf修改主設定檔的配置項。

    listen-on port 53 { any; };  # 監聽所有網路介面的53連接埠
    allow-query     { any; };    # 允許任何IP進行DNS查詢
  3. 執行vim /etc/named.rfc1912.zones配置地區檔案。

    // 自訂網域名
    zone "example.com" IN {
          type master;
          file "example.com.zone";
    };
    
    zone "0.168.192.in-addr.arpa" IN {
          type master;
          file "0.168.192.zone";
    };
  4. 執行cp -p /var/named/named.localhost /var/named/example.com.zonevim /var/named/example.com.zone配置正向解析檔案。

    $TTL 1D
    @       IN      SOA     example.com.  admin.example.com. (
                                                               1       ; serial
                                                               1D      ; refresh
                                                               1H      ; retry
                                                               1W      ; expire
                                                               3H )    ; minimum
    
                  NS      dns.example.com.
    Web01         A       192.168.0.2; 
    Web02         A       192.168.0.3;
  5. 執行cp -p /var/named/named.empty /var/named/0.168.192.zonevim /var/named/0.168.192.zone配置反向解析檔案。

    $TTL 3H
    @       IN      SOA     0.168.192.in-addr.arpa. admin.zjq.com. (
                                                               1       ; serial
                                                               1D      ; refresh
                                                               1H      ; retry
                                                               1W      ; expire
                                                               3H )    ; minimum
    
                  NS      dns.example.com.
    2            PTR     Web01.example.com.
    3            PTR     Web02.example.com.
  6. 執行systemctl restart named重啟 BIND 服務。

如果您在使用自建 DNS 服務的同時希望使用阿里雲 DNS 服務,需要為自建 DNS 伺服器配置轉寄規則,將自訂網域名以外的查詢請求轉寄至阿里雲預設DNS伺服器。

為自建 DNS 伺服器配置轉寄規則

執行vim /etc/named.conf命令,修改設定檔。

// 預設轉寄:其他請求轉寄到預設 DNS 伺服器
options {
    forwarders { 100.100.2.136; 100.100.2.138; };  # 阿里雲VPC預設DNS
    forward only;
};
// 配置自建 DNS 權威解析,"example.com"需替換為自訂網域名
zone "example.com" {
    type master;
    file "example.com.zone";  # 網域名稱解析設定檔
};
在自訂 DHCP 選項集中指定 DNS 伺服器 IP 時,需注意:
1、控制台會自動填入阿里雲的預設 DNS 伺服器 IP(100.100.2.136 和 100.100.2.138),如果您刪除該 IP,可能會導致您無法訪問阿里雲基礎雲上服務,請謹慎操作。調用 API 時,確保填入上述 IP。
2、確保將自建 DNS 伺服器 IP 填寫在首位,否則將優先向阿里雲預設 DNS 伺服器發起查詢請求。由於預設 DNS 伺服器無法解析自訂網域名,將直接返回NXDOMAIN,系統將認為無需繼續查詢後續伺服器,從而無法將私網網域名稱解析為 IP 。
3、您需要在關聯 VPC 的安全性群組網路ACL(如有)中添加允許訪問自建 DNS 伺服器 IP 的規則,否則可能導致網域名稱無法解析。
4、自訂伺服器 IP 不支援使用 IPv6 地址。

控制台

  1. 前往專用網路控制台 - DHCP 選項集建立 DHCP 選項集,配置網域名稱為自建 DNS 服務中使用的網域名稱,單擊自訂伺服器IP,將自建 DNS 伺服器 IP 填寫在首位。

  2. 在目標 DHCP 選項集的操作列選擇關聯專用網路,已佈建網域名解析記錄的 ECS 可通過主機名稱被關聯 VPC 內的 ECS 訪問。

API

依次調用如下 API,建立自訂 DHCP 選項集指定網域名稱與自建 DNS 伺服器 IP,與 VPC 關聯。

  1. CreateDhcpOptionsSet - 建立 DHCP 選項集

  2. AttachDhcpOptionsSetToVpc - 將 DHCP 選項集關聯到 VPC

Terraform

Resource:alicloud_vpc_dhcp_options_setalicloud_vpc_dhcp_options_set_attachment
# 指定VPC的地區
provider "alicloud" {
  region = "cn-hangzhou"
}

# 建立DHCP選項集
resource "alicloud_vpc_dhcp_options_set" "test_dhcp_options_set" {
  dhcp_options_set_name = "test_dhcp_options_set_name"
  domain_name           = "example.com"                              # 指定網域名稱
  domain_name_servers   = "192.168.0.10,100.100.2.136,100.100.2.138" # 指定DNS伺服器IP,首位填寫自建DNS伺服器IP
}

# 關聯DHCP選項集與VPC
resource "alicloud_vpc_dhcp_options_set_attachment" "test_attachment_vpc" {
  vpc_id              = "vpc-8vbg******"                                       # 指定關聯的VPC的執行個體ID
  dhcp_options_set_id = alicloud_vpc_dhcp_options_set.test_dhcp_options_set.id # 指定關聯的DHCP選項集的執行個體ID
}

更多資訊

計費說明

DHCP 選項集功能不收費。

支援的地區

地區

支援DHCP選項集的地區

亞太地區-中國

華東1(杭州)華東2(上海)華北1(青島)華北2(北京)華北3(張家口)華北5(呼和浩特)華北6(烏蘭察布)華南1(深圳)華南3(廣州)西南1(成都)中國香港

亞太地區-其他

日本(東京)韓國(首爾)新加坡馬來西亞(吉隆坡)印尼(雅加達)菲律賓(馬尼拉)泰國(曼穀)

歐美地區

德國(法蘭克福)英國(倫敦)美國(矽谷)美國(維吉尼亞)墨西哥

中東

阿聯酋(杜拜)沙特(利雅得)

重要

沙特(利雅得)地區由夥伴營運。

配額

配額名稱

描述

預設限制

提升配額

單個帳號支援建立的DHCP選項集的數量

預設 DHCP 選項集不佔用該配額。

10個

無法提升

單個DHCP選項集支援關聯的VPC的數量

10個

單個VPC支援關聯的DHCP選項集的數量

1個

單個DHCP選項集支援配置的網域名稱的數量

1個

單個DHCP選項集支援配置的DNS伺服器IP地址的數量

4個