

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 更新 WorkSpaces Personal 的 DNS 伺服器
<a name="update-dns-server"></a>

如果您需要在啟動 WorkSpaces 之後更新 Active Directory 的 DNS 伺服器 IP 地址，您也必須使用新的 DNS 伺服器設定來更新您的 WorkSpaces。

您可使用下列其中一種方式，使用新的 DNS 設定來更新 WorkSpaces：
+ 在更新 Active Directory 的 DNS 設定**之前**，請先更新 WorkSpaces 上的 DNS 設定。
+ 更新 Active Directory 的 DNS 設定**之後**，請重新建置 WorkSpaces。

我們建議在更新 Active Directory 中的 DNS 設定之前，先更新 WorkSpaces 上的 DNS 設定 (如下列程序的[步驟 1](#update-registry-dns) 所述)。

如果您想要改為重新建置 WorkSpaces，請更新 Active Directory 中的其中一個 DNS 伺服器 IP 地址 ([步驟 2](#update-dns-active-directory))，然後依照 [在 WorkSpace WorkSpaces](rebuild-workspace.md) 中的程序重新建置 WorkSpaces。重新建置 WorkSpaces 之後，請依照[步驟 3](#test-updated-dns-settings) 中的程序來測試 DNS 伺服器更新。完成該步驟之後，請在 Active Directory 中更新第二個 DNS 伺服器的 IP 地址，然後再次重新建置 WorkSpaces。務必遵循[步驟 3](#test-updated-dns-settings) 中的程序來測試您的第二個 DNS 伺服器更新。如[最佳實務](#update-dns-best-practices)一節所述，建議您一次更新一個 DNS 伺服器 IP 地址。

## 最佳實務
<a name="update-dns-best-practices"></a>

當您更新 DNS 伺服器設定時，建議您採用下列最佳實務：
+ 為了避免網域資源中斷連線和無法存取，我們強烈建議您在離峰時間或在計劃的維護期間執行 DNS 伺服器更新。
+ 請勿在變更 DNS 伺服器設定的前 15 分鐘和後 15 分鐘內啟動任何新的 WorkSpaces。
+ 更新 DNS 伺服器設定時，請一次變更一個 DNS 伺服器 IP 地址。在更新第二個 IP 地址之前，請先確認第一次更新正確無誤。我們建議您執行下列程序兩次 ([步驟 1](#update-registry-dns)、[步驟 2](#update-dns-active-directory) 和[步驟 3](#test-updated-dns-settings))，以便一次更新一個 IP 地址。

## 步驟 1：更新 WorkSpaces 上的 DNS 伺服器設定
<a name="update-registry-dns"></a>

在下列程序中，目前和新的 DNS 伺服器 IP 地址值參考如下：
+ 目前的 DNS IP 地址：`{{OldIP1}}`、`{{OldIP2}}`
+ 新的 DNS IP 地址：`{{NewIP1}}`、`{{NewIP2}}`

**注意**  
 如果這是您第二次執行此程序，請以 `{{OldIP2}}` 取代 `{{OldIP1}}` 和以 `{{NewIP2}}` 取代 `{{NewIP1}}`。

### 更新 Windows WorkSpaces 的 DNS 伺服器設定
<a name="update-registry-dns-windows"></a>

如果您有多個 WorkSpaces，您可以在 WorkSpaces 的 Active Directory OU 上套用群組政策物件 (GPO)，將下列登錄更新部署至 WorkSpaces。如需使用 GPO 的詳細資訊，請參閱 [在 WorkSpaces Personal 中管理您的 Windows WorkSpaces](group_policy.md)。

您可以使用登錄編輯程式或使用 Windows PowerShell 進行這些更新。本節將說明這兩個程序。

**使用登錄編輯程式更新 DNS 登錄設定**

1. 在 Windows WorkSpace 上，開啟 Windows 搜尋方塊，然後輸入 **registry editor** 以開啟登錄編輯程式 (**regedit.exe**)。

1. 當系統詢問「您要允許此應用程式對裝置進行變更嗎？」時，請選擇**是**。

1. 在登錄編輯程式中，導覽至下列登錄項目：

   **HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Amazon\\SkyLight**

1. 開啟 **DomainJoinDns** 登錄機碼。使用 `{{NewIP1}}` 更新 `{{OldIP1}}`，然後選擇**確定**。

1. 關閉登錄編輯程式。

1. 重新啟動 WorkSpace，或重新啟動 SkyLightWorkspaceConfigService 服務。
**注意**  
重新啟動 SkyLightWorkspaceConfigService 服務之後，網路介面卡最多可能需要 1 分鐘才會反映變更。

1. 繼續進行[步驟 2](#update-dns-active-directory)，並在 Active Directory 中更新 DNS 伺服器設定以使用 `{{NewIP1}}` 取代 `{{OldIP1}}`。

**使用 PowerShell 更新 DNS 登錄設定**

下列程序會使用 PowerShell 命令來更新您的登錄，並重新啟動 SkyLightWorkspaceConfigService 服務。

1. 在 Windows WorkSpace 上，開啟 Windows 搜尋方塊，然後輸入 **powershell**。選擇**以管理員身分執行**。

1. 當系統詢問「您要允許此應用程式對裝置進行變更嗎？」時，請選擇**是**。

1. 在 PowerShell 視窗中，執行下列命令以擷取目前的 DNS 伺服器 IP 地址。

   ```
   Get-ItemProperty -Path HKLM:\SOFTWARE\Amazon\SkyLight -Name DomainJoinDNS
   ```

   您應該會收到以下輸出。

   ```
   DomainJoinDns : {{OldIP1}},{{OldIP2}}
   PSPath        : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\SkyLight
   PSParentPath  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Amazon
   PSChildName   : SkyLight
   PSDrive       : HKLM
   PSProvider    : Microsoft.PowerShell.Core\Registry
   ```

1. 在 PowerShell 視窗中，執行下列命令，將 `{{OldIP1}}` 變更為 `{{NewIP1}}`。務必暫時將 `{{OldIP2}}` 保持原樣。

   ```
   Set-ItemProperty -Path HKLM:\SOFTWARE\Amazon\SkyLight -Name DomainJoinDNS -Value "{{NewIP1}},{{OldIP2}}"
   ```

1. 執行下列命令以重新啟動 SkyLightWorkspaceConfigService 服務。

   ```
   restart-service -Name SkyLightWorkspaceConfigService
   ```
**注意**  
重新啟動 SkyLightWorkspaceConfigService 服務之後，網路介面卡最多可能需要 1 分鐘才會反映變更。

1. 繼續進行[步驟 2](#update-dns-active-directory)，並在 Active Directory 中更新 DNS 伺服器設定以使用 `{{NewIP1}}` 取代 `{{OldIP1}}`。

### 更新 Amazon Linux 2 WorkSpaces 的 DNS 伺服器設定
<a name="update-registry-dns-linux"></a>

如果您有多個 Amazon Linux 2 WorkSpace，建議您使用組態管理解決方案來分發和強制執行政策。例如，您可以使用 [Ansible](https://www.ansible.com/)。

**更新 Amazon Linux 2 WorkSpace 上的 DNS 伺服器設定**

1. 在您的 Linux WorkSpace 上，開啟終端機視窗。

1. 使用以下 Linux 命令來編輯 `/etc/dhcp/dhclient.conf` 檔案。您必須擁有 root 使用者權限才能編輯此檔案。使用 `sudo -i` 命令以成為 root，或者如下所示使用 `sudo` 執行所有命令。

   ```
   sudo vi /etc/dhcp/dhclient.conf
   ```

   在 `/etc/dhcp/dhclient.conf` 檔案中，您將看到以下 `prepend` 命令，其中 `{{OldIP1}}` 和 `{{OldIP2}}` 是 DNS 伺服器的 IP 地址。

   ```
   prepend domain-name-servers {{OldIP1}}, {{OldIP2}}; # skylight
   ```

1. 以 `{{NewIP1}}` 取代 `{{OldIP1}}`，並且暫時將 `{{OldIP2}}` 保持原樣。

1. 將您的變更儲存至 `/etc/dhcp/dhclient.conf`。

1. 重新啟動 WorkSpace。

1. 繼續進行[步驟 2](#update-dns-active-directory)，並在 Active Directory 中更新 DNS 伺服器設定以使用 `{{NewIP1}}` 取代 `{{OldIP1}}`。

### 更新 Ubuntu WorkSpaces 的 DNS 伺服器設定
<a name="update-registry-dns-ubuntu"></a>

如果您有多個 Ubuntu WorkSpace，建議您使用組態管理解決方案來分發和強制執行政策。例如，您可以使用[橫向](https://ubuntu.com/landscape)。

**更新 Ubuntu WorkSpace 上的 DNS 伺服器設定**

1. 在 Ubuntu WorkSpace 上，開啟終端機視窗並執行下列命令。您必須擁有 root 使用者權限才能編輯此檔案。使用 `sudo -i` 命令以成為 root，或者如下所示使用 `sudo` 執行所有命令。

   ```
   sudo vi /etc/netplan/zz-workspaces-domain.yaml
   ```

1. 在 yaml 檔案中，您會看到下列`nameserver`命令。

   ```
   nameservers:
       search:[{{Your domain FQDN}}]
       addresses:[{{OldIP1}}, {{OldIP2}}]
   ```

   將 `{{OldIP1}}`和 取代`{{OldIP2}}`為 `{{NewIP1}}`和 `{{NewIP2}}`。

   如果您有多個 DNS 伺服器 IP 增益集，請將它們新增為逗號分隔值。例如 `[{{NewDNSIP1}}, {{NewDNSIP2}}, {{NewDNSIP3}}]`。

1. 儲存 yaml 檔案。

1. 執行 命令`sudo netplan apply`以套用變更。

1. 執行 命令`resolvectl status`以確認正在使用新的 DNS IP 地址。

1. 繼續[步驟 2](#update-dns-active-directory)，並在 Active Directory 中更新您的 DNS 伺服器設定。

### 更新 Red Hat Enterprise Linux WorkSpaces 的 DNS 伺服器設定
<a name="update-registry-dns-rhel"></a>

如果您有多個 Red Hat Enterprise Linux WorkSpace，建議您使用組態管理解決方案來分發和強制執行政策。例如，您可以使用 [Ansible](https://www.ansible.com/)。

**更新 Red Hat Enterprise Linux WorkSpace 上的 DNS 伺服器設定**

1. 在 Red Hat Enterprise Linux WorkSpace 上，開啟終端機視窗並執行以下命令。您必須擁有 root 使用者權限才能編輯此檔案。使用 `sudo -i` 命令以成為 root，或者如下所示使用 `sudo` 執行所有命令。

   ```
   sudo nmcli conn modify CustomerNIC ipv4.dns '{{NewIP1}} {{NewIP2}}'
   ```

1. 執行下列命令。

   ```
   sudo systemctl restart NetworkManager
   ```

1. 若要檢查更新的 DNS 和網路組態，請執行下列命令。

   ```
   nmcli device show eth1
   ```

1. 繼續[步驟 2](#update-dns-active-directory)，並在 Active Directory 中更新您的 DNS 伺服器設定。

## 步驟 2：更新 Active Directory 的 DNS 伺服器設定
<a name="update-dns-active-directory"></a>

在此步驟中，您會更新 Active Directory 的 DNS 伺服器設定。如[最佳實務](#update-dns-best-practices)一節所述，建議您一次更新一個 DNS 伺服器 IP 地址。

若要更新 Active Directory 的 DNS 伺服器設定，請參閱《AWS Directory Service 管理指南》**中的下列文件：
+ **AD Connector**：[更新 AD Connector 的 DNS 位址](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_connector_update_dns.html)
+ **AWS Managed Microsoft AD**：[為您的內部部署網域設定 DNS 條件式轉寄站](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_setup_trust_prepare_onprem.html#tutorial_setup_trust_onprem_forwarder)
+ **Simple AD**：[設定 DNS](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/simple_ad_dns.html)

更新 DNS 伺服器設定之後，請繼續執行[步驟 3](#test-updated-dns-settings)。

## 步驟 3：測試已更新的 DNS 伺服器設定
<a name="test-updated-dns-settings"></a>

完成[步驟 1](#update-registry-dns) 和[步驟 2](#update-dns-active-directory) 之後，請使用下列程序來確認已更新的 DNS 伺服器設定是否如預期般運作。

在下列程序中，目前和新的 DNS 伺服器 IP 地址值參考如下：
+ 目前的 DNS IP 地址：`{{OldIP1}}`、`{{OldIP2}}`
+ 新的 DNS IP 地址：`{{NewIP1}}`、`{{NewIP2}}`

**注意**  
如果這是您第二次執行此程序，請以 `{{OldIP2}}` 取代 `{{OldIP1}}` 和以 `{{NewIP2}}` 取代 `{{NewIP1}}`。

### 測試 Windows WorkSpaces 的已更新 DNS 伺服器設定
<a name="test-updated-dns-settings-windows"></a>

1. 關閉 `{{OldIP1}}` DNS 伺服器。

1. 登入 Windows WorkSpace。

1. 在 Windows **Start (開始)** 功能表，選擇 **Windows System (Windows 系統)**，然後選擇 **Command Prompt (命令提示字元)**。

1. 執行下列命令，其中 `{{AD_Name}}` 是 Active Directory 的名稱 (例如，`corp.example.com`)。

   ```
   nslookup {{AD_Name}}
   ```

   `nslookup` 命令應該會傳回下列輸出。(如果這是您第二次執行此程序，您應該會看到 `{{NewIP2}}` 代替 `{{OldIP2}}`。)

   ```
   Server:  {{Full_AD_Name}}
   Address:  {{NewIP1}}
   
   Name:    {{AD_Name}}
   Addresses:  {{OldIP2}}
             {{NewIP1}}
   ```

1. 如果輸出不是您預期的輸出，或者您收到任何錯誤，請重複[步驟 1](#update-registry-dns)。

1. 請等待一個小時，確認沒有回報任何使用者問題。確認 `{{NewIP1}}` 正在取得 DNS 查詢並回應答案。

1. 確認第一個 DNS 伺服器運作正常之後，請重複[步驟 1](#update-registry-dns) 來更新第二個 DNS 伺服器，這次會以 `{{NewIP2}}` 取代 `{{OldIP2}}`。然後重複步驟 2 和步驟 3。

### 測試 Linux WorkSpaces 的已更新 DNS 伺服器設定
<a name="test-updated-dns-settings-linux"></a>

1. 關閉 `{{OldIP1}}` DNS 伺服器。

1. 登入 Linux WorkSpace。

1. 在您的 Linux WorkSpace 上，開啟終端機視窗。

1. DHCP 回應中傳回的 DNS 伺服器 IP 地址會寫入 WorkSpace 上的本機 `/etc/resolv.conf` 檔案。執行下列命令以檢視 `/etc/resolv.conf ` 檔案的內容。

   ```
   cat /etc/resolv.conf
   ```

   您應該會看到下列輸出。(如果這是您第二次執行此程序，您應該會看到 `{{NewIP2}}` 代替 `{{OldIP2}}`。)

   ```
   ; This file is generated by Amazon WorkSpaces
   ; Modifying it can make your WorkSpace inaccessible until reboot
   options timeout:2 attempts:5
   ; generated by /usr/sbin/dhclient-script
   search {{region}}.compute.internal
   nameserver {{NewIP1}}
   nameserver {{OldIP2}}
   nameserver {{WorkSpaceIP}}
   ```
**注意**  
如果您手動修改 `/etc/resolv.conf` 檔案，則當 WorkSpace 重新啟動時，這些變更就會遺失。

1. 如果輸出不是您預期的輸出，或者您收到任何錯誤，請重複[步驟 1](#update-registry-dns)。

1. 實際的 DNS 伺服器 IP 地址會儲存在 `/etc/dhcp/dhclient.conf` 檔案中。若要查看此檔案的內容，請執行以下命令。

   ```
   sudo cat /etc/dhcp/dhclient.conf
   ```

   您應該會看到下列輸出。(如果這是您第二次執行此程序，您應該會看到 `{{NewIP2}}` 代替 `{{OldIP2}}`。)

   ```
   # This file is generated by Amazon WorkSpaces
   # Modifying it can make your WorkSpace inaccessible until rebuild
   prepend domain-name-servers {{NewIP1}}, {{OldIP2}}; # skylight
   ```

1. 請等待一個小時，確認沒有回報任何使用者問題。確認 `{{NewIP1}}` 正在取得 DNS 查詢並回應答案。

1. 確認第一個 DNS 伺服器運作正常之後，請重複[步驟 1](#update-registry-dns) 來更新第二個 DNS 伺服器，這次會以 `{{NewIP2}}` 取代 `{{OldIP2}}`。然後重複步驟 2 和步驟 3。