可設定的 PTR 記錄可讓您定義與 VM 執行個體外部 IP 位址相關聯的反向 DNS 記錄,使依賴於這些記錄的應用程式可以正常運作。
一些應用程式需要反向 DNS 記錄 (PTR 記錄) 來將 IP 位址解析為網域名稱。例如,使用 SMTP 的應用程式需要指向傳送電子郵件之來源網域的 PTR 記錄。若沒有這個記錄,垃圾郵件篩選器可以將電子郵件標示為聲譽不佳,進而導致電子郵件最終進入垃圾郵件資料夾,或根本不會寄出。
您只能將 PTR 記錄新增至 VM 執行個體的主要網路介面。PTR 記錄不適用於負載平衡器前端、Cloud NAT 或其他非 VM IP 位址。
只有在執行個體的主要網路介面連線至具有外部 IPv6 位址範圍的雙重堆疊或僅限 IPv6 子網路時,才能使用 IPv6 PTR 記錄。如果是雙重堆疊網路介面,您可以分別設定 IPv4 和 IPv6 PTR 記錄。
如要建立自訂 PTR 記錄以覆寫自動建立的內部 DNS PTR 名稱,請參閱「受管理的反向查詢區域」。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,可以選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
驗證您的網域擁有權
在您建立具有自訂 PTR 記錄的 VM 之前,請驗證您是否擁有網域名稱。驗證擁有權是一項安全措施,可向 Google 證明您是網域擁有者。
驗證網域名稱的方式有兩種:
- 如果您有 Google 帳戶,可以使用 Search Console 進行驗證。
- 如果您有 Google 或非 Google 帳戶,可以將 VM 的 IP 位址新增至 DNS 設定,藉此完成驗證。
使用 Search Console 驗證
- 開啟 Search Console,並使用您要用來將 PTR 記錄新增至執行個體的 Google 帳戶登入。您可以使用多個帳戶驗證網域擁有權。
- 輸入 PTR 網域名稱。
- 按一下「繼續」。
- 按照指示操作,然後按一下「前往資源」。
- 按一下「設定」 (位於左側選單底部附近),然後按一下「擁有權驗證」。
驗證網域擁有權後,在「設定」窗格中,按一下「使用者」即可查看其他已驗證的擁有者。如要在其他網域中新增 PTR 記錄,請按一下左側的屬性選擇器,該選擇器會顯示目前的網域。按一下「新增屬性」即可新增這些網域。
如果您的網域名稱並未立即驗證,請使用建議的方法來取得驗證。
將 VM 的 IP 位址新增至 DNS 設定,藉此進行驗證
- 如果 VM 尚未建立,請保留地區靜態外部 IP 位址,並在稍後建立 VM 時使用。
- 在網域的 DNS 設定中,新增含有 VM 外部 IP 位址的「A」記錄。
建立具有 PTR 記錄的 VM 執行個體
建立新執行個體時,可以指定 PTR 記錄。如要為現有執行個體新增 PTR 記錄,請參閱「新增 PTR 記錄」。
主控台
前往 Google Cloud 控制台的「建立執行個體」頁面。
指定 VM 詳細資料。
展開「Advanced options」(進階選項) 區段,然後執行下列操作:
- 展開「Networking」(網路) 區段。
- 建立一或多個網路介面以與這個 VM 搭配使用。或者,您也可以使用預設網路介面。
- 在「Network interfaces」(網路介面) 專區中,展開第一個網路介面 (即主要網路介面)。
- 在「公開 DNS PTR 記錄」部分,選取要新增的各類型 PTR 記錄。
- 在「PTR 網域名稱」欄位中,輸入要新增的每種 PTR 記錄的網域名稱。
- 在「External IPv4 address」(外部 IPv4 位址)或「External IPv6 address」(外部 IPv6 位址) 欄位中,選擇您先前保留的 IP 位址。如果您已透過 DNS 設定驗證 VM 的 IP 位址,則必須指定該位址。
- 如要確認網路介面設定,請按一下「Done」(完成)。
為新的 VM 設定剩餘屬性。
按一下頁面底部的 [Create] (建立)。
VM 啟動後,您可以對 VM 的外部 IP 位址執行反向 DNS 查詢,確認 PTR 記錄如預期般運作。
gcloud
如要建立具有相關 IPv4 PTR 記錄的新執行個體,請使用
gcloud instances create
指令。gcloud compute instances create INSTANCE_NAME \ --image-family IMAGE_FAMILY \ --image-project IMAGE_PROJECT \ --public-ptr \ --public-ptr-domain DOMAIN_NAME \ --address=IP_ADDRESS
更改下列內容:
INSTANCE_NAME
:新 VM 執行個體的名稱。IMAGE_FAMILY
:可用映像檔系列中的映像檔。IMAGE_PROJECT
:會對所有映像檔和映像檔系列所參照的 Google Cloud 專案進行解析。如未提供專案名稱,系統會使用目前的預設專案。DOMAIN_NAME
:要新增至這個執行個體的網域名稱。IP_ADDRESS
:先前預留的 IP 位址。如果您已透過 DNS 設定驗證 VM 的 IP 位址,則必須指定該位址。
如要建立具有相關 IPv6 PTR 記錄的新執行個體,請按照下列步驟操作:
REST
如要建立具有 IPv4 PTR 記錄的新執行個體,請對
instances.insert
方法發出POST
要求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "name": "INSTANCE_NAME", "disks": [ { "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/family/debian-10" }, "boot": true } ], "networkInterfaces": [ { "network": "NETWORK", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External NAT", "natIP": "IP_ADDRESS", "publicPtrDomainName": "DOMAIN_NAME", "setPublicPtr": true } ] } ] }
更改下列內容:
PROJECT_ID
:專案 ID。ZONE
:執行個體所在的可用區。MACHINE_TYPE
:機器類型。INSTANCE_NAME
:執行個體的名稱。NETWORK
:電視網的網址。IP_ADDRESS
:先前預留的 IP 位址。如果您已透過 DNS 設定驗證 VM 的 IP 位址,則必須指定該位址。DOMAIN_NAME
:要新增的網域名稱。
如要建立具有 IPv6 PTR 記錄的新執行個體,請按照下列步驟操作:
新增 PTR 記錄
如要新增 PTR 記錄,請更新 VM 執行個體主要網路介面 (
nic0
) 的存取權設定。主控台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
按一下要編輯的執行個體。
按一下 [編輯]。
在「Network interfaces」(網路介面) 區段中,按一下主要網路介面。
在「公開 DNS PTR 記錄」部分,選取要新增的各類型 PTR 記錄。
在「PTR 網域名稱」欄位中,輸入要新增的每種 PTR 記錄的網域名稱。
依序按一下 [完成] 及 [儲存]。
gcloud
如果 VM 沒有存取權設定,請使用
gcloud compute instances add-access-config
指令新增設定。gcloud compute instances add-access-config INSTANCE_NAME
將
INSTANCE_NAME
換成您的執行個體名稱。使用
gcloud compute instances update-access-config
指令更新存取權設定,新增 PTR 記錄。 如要同時新增 IPv4 和 IPv6 PTR 記錄,請個別使用下列指令。IPv4:
gcloud compute instances update-access-config INSTANCE_NAME \ --public-ptr \ --public-ptr-domain DOMAIN_NAME
IPv6:
gcloud compute instances update-access-config INSTANCE_NAME \ --ipv6-public-ptr-domain=DOMAIN_NAME
更改下列內容:
INSTANCE_NAME
:要更新的執行個體名稱。DOMAIN_NAME
:要新增的網域名稱。
REST
如果 VM 沒有存取權設定,請對
instances.addAccessConfig
方法發出POST
要求,新增存取權設定。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addAccessConfig?networkInterface="nic0"
更新存取權設定,對
instances.updateAccessConfig
方法提出POST
要求,新增 PTR 記錄。如要同時新增 IPv4 和 IPv6 PTR 記錄,請個別提出下列要求。IPv4:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0 { "setPublicPtr": true, "publicPtrDomainName": "DOMAIN_NAME", "type": "ONE_TO_ONE_NAT" }
IPv6:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0 { "publicPtrDomainName": "DOMAIN_NAME", "type": "DIRECT_IPV6" }
更改下列內容:
PROJECT_ID
:專案 ID。ZONE
:執行個體的可用區。INSTANCE_NAME
:執行個體名稱。DOMAIN_NAME
:要新增的網域名稱。
移除 PTR 記錄
如要移除 PTR 記錄,請更新 VM 執行個體主要網路介面 (
nic0
) 的存取權設定。移除 PTR 記錄後, Google Cloud 會以googleusercontent.com
的預設完整網域名稱回應反向 DNS 查詢。主控台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
按一下要編輯的執行個體。
按一下 [編輯]。
在「網路介面」部分,按一下主要網路介面。
在「公開 DNS PTR 記錄」部分中,取消勾選要移除的每種 PTR 記錄類型。
依序按一下 [完成] 及 [儲存]。
gcloud
如要移除 PTR 記錄,請使用
gcloud compute instances update-access-config
指令。如要移除 IPv4 和 IPv6 PTR 記錄,請分別使用下列指令。IPv4:
gcloud compute instances update-access-config INSTANCE_NAME \ --no-public-ptr
IPv6:
gcloud compute instances update-access-config INSTANCE_NAME \ --no-ipv6-public-ptr
將
INSTANCE_NAME
替換為要更新的執行個體名稱。REST
如要移除 PTR 記錄,請對
instances.updateAccessConfig
方法發出POST
要求。如要移除 IPv4 和 IPv6 PTR 記錄,請分別提出下列要求。IPv4:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0 { "setPublicPtr": false, "type": "ONE_TO_ONE_NAT" }
IPv6:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0 { "publicPtrDomainName": "", "type": "DIRECT_IPV6" }
更改下列內容:
PROJECT_ID
:專案 ID。ZONE
:執行個體的可用區。INSTANCE_NAME
:執行個體名稱。
限制
在維護事件期間,如果 VM 遷移至其他主機 (即時遷移程序的一部分),PTR 記錄邏輯無法正確處理部分極端情況,並會將 DNS PTR 記錄還原為完整網域名稱 (FQDN)
googleusercontent.com
。如要還原功能,請再次套用 PTR 記錄。停止具有 IPv6 PTR 記錄的 VM 時,系統會暫時取消註冊 IPv6 PTR 記錄,且該記錄不會顯示在 VM 上。重新啟動 VM 時,系統會自動重新新增記錄。
後續步驟
- 如要瞭解如何為資源設定及管理靜態外部 IP 位址,請參閱保留靜態外部 IP 位址。
- 如要瞭解如何建立及管理虛擬機器執行個體,請參閱「建立及啟動 VM 執行個體」。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-09-04 (世界標準時間)。
-