

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 更新 WorkSpaces 个人版 DNS 服务器
<a name="update-dns-server"></a>

如果您在启动后需要更新 Active Directory 的 DNS 服务器 IP 地址 WorkSpaces，则还必须 WorkSpaces 使用新的 DNS 服务器设置更新。

您可以通过以下方式之一 WorkSpaces 使用新的 DNS 设置进行更新：
+ 在更新 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)），然后按照中的[重建 WorkSpaces 个人版中的 WorkSpace](rebuild-workspace.md)步骤重建您的 WorkSpaces。重建完成后 WorkSpaces，按照[步骤 3 中的步骤](#test-updated-dns-settings)测试您的 DNS 服务器更新。完成该步骤后，在 Active Directory 中更新第二台 DNS 服务器的 IP 地址，然后 WorkSpaces再次重建您的 IP 地址。请务必按照[步骤 3](#test-updated-dns-settings) 中的说明测试您的第二次 DNS 服务器更新。如[最佳实践](#update-dns-best-practices)部分所述，建议逐一更新您的 DNS 服务器 IP 地址。

## 最佳实践
<a name="update-dns-best-practices"></a>

在您更新 DNS 服务器设置时，建议遵循以下最佳实践：
+ 为避免断开连接和无法访问域资源，强烈建议在非高峰时段或计划维护期间执行 DNS 服务器更新。
+  WorkSpaces 在更改 DNS 服务器设置前 15 分钟和更改 DNS 服务器设置后 15 分钟内，请勿启动任何新内容。
+ 更新 DNS 服务器设置时，请一次更改一个 DNS 服务器 IP 地址。在更新第二个 IP 地址之前，请验证第一次更新是否正确。建议执行以下步骤（[步骤 1](#update-registry-dns)、[步骤 2](#update-dns-active-directory) 和[步骤 3](#test-updated-dns-settings)）两次，一次更新一个 IP 地址。

## 步骤 1：更新您的 DNS 服务器设置 WorkSpaces
<a name="update-registry-dns"></a>

在以下过程中，当前和新的 DNS 服务器 IP 地址的参考值如下所示：
+ 当前 DNS IP 地址：`OldIP1`，`OldIP2`
+ 新的 DNS IP 地址：`NewIP1`，`NewIP2`

**注意**  
 如果这是您第二次执行此过程，请使用 `OldIP2` 替换 `OldIP1`，使用 `NewIP2` 替换 `NewIP1`。

### 更新 Windows 的 DNS 服务器设置 WorkSpaces
<a name="update-registry-dns-windows"></a>

如果您有多个 WorkSpaces，则可以通过在 Active Directory OU 上应用组策略对象 (GPO) WorkSpaces 来部署以下注册表更新。 WorkSpaces有关使用的更多信息 GPOs，请参阅[WorkSpaces 在 WorkSpaces 个人版中管理你的 Windows](group_policy.md)。

您可以使用注册表编辑器或使用 Windows 进行这些更新 PowerShell。此部分介绍了这些过程。

**使用注册表编辑器更新 DNS 注册表设置**

1. 在 Windows 上 WorkSpace，打开 Windows 搜索框，然后输入**registry editor**以打开注册表编辑器 (**regedit.exe**)。

1. 当询问“你要允许此应用对你的设备进行更改吗?”时，选择**是**。

1. 在注册表编辑器中，导航到以下注册表项：

   **HKEY\$1LOCAL\$1MACHINE\$1 软件\$1 Amazon\$1 SkyLight**

1. 打开**DomainJoinDns**注册表项。使用 `NewIP1` 更新 `OldIP1`，然后选择**确定**。

1. 关闭注册表编辑器。

1. 重新启动 WorkSpace或重新启动服务 SkyLightWorkspaceConfigService。
**注意**  
重新启动服务后 SkyLightWorkspaceConfigService，网络适配器最多可能需要 1 分钟才能反映出所做的更改。

1. 继续执行[步骤 2](#update-dns-active-directory)，在 Active Directory 中更新 DNS 服务器设置，将 `OldIP1` 替换为 `NewIP1`。

**使用更新 DNS 注册表设置 PowerShell**

以下过程使用 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 服务器设置，将 `OldIP1` 替换为 `NewIP1`。

### 更新 Amazon Linux 2 的 DNS 服务器设置 WorkSpaces
<a name="update-registry-dns-linux"></a>

如果您有多个 Amazon Linux 2 WorkSpace，我们建议您使用配置管理解决方案来分发和强制执行策略。例如，您可以使用 [Ansible](https://www.ansible.com/)。

**更新 Amazon Linux 上的 DNS 服务器设置 2 WorkSpace**

1. 在 Linux 上 WorkSpace，打开终端窗口。

1. 使用以下 Linux 命令编辑 `/etc/dhcp/dhclient.conf` 文件。您必须具有根用户权限才能编辑此文件。要成为根用户，可以使用 `sudo -i` 命令，也可以运行所有命令，如 `sudo` 所示。

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

   在 `/etc/dhcp/dhclient.conf` 文件中，您将看到以下 `prepend` 命令，其中 `OldIP1` 和 `OldIP2` 是 DNS 服务器的 IP 地址。

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

1. 将 `OldIP1` 替换为 `OldIP2`，并且暂时保持 `NewIP1` 原样。

1. 将更改保存到 `/etc/dhcp/dhclient.conf`。

1. 重新启动 WorkSpace。

1. 继续执行[步骤 2](#update-dns-active-directory)，在 Active Directory 中更新 DNS 服务器设置，将 `OldIP1` 替换为 `NewIP1`。

### 更新 Ubuntu 的 DNS 服务器设置 WorkSpaces
<a name="update-registry-dns-ubuntu"></a>

如果您有多个 Ubuntu WorkSpace，我们建议您使用配置管理解决方案来分发和强制执行策略。例如，您可以使用 [Landscape](https://ubuntu.com/landscape)。

**更新 Ubuntu 上的 DNS 服务器设置 WorkSpace**

1. 在 Ubuntu 上 WorkSpace，打开终端窗口并运行以下命令。您必须具有根用户权限才能编辑此文件。要成为根用户，可以使用 `sudo -i` 命令，也可以运行所有命令，如 `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 服务器设置。

### 更新红帽企业 Linux 的 DNS 服务器设置 WorkSpaces
<a name="update-registry-dns-rhel"></a>

如果您有多个红帽企业 Linux WorkSpace，我们建议您使用配置管理解决方案来分发和强制执行策略。例如，您可以使用 [Ansible](https://www.ansible.com/)。

**更新红帽企业 Linux 上的 DNS 服务器设置 WorkSpace**

1. 在您的红帽企业 Linux 上 WorkSpace，打开终端窗口并运行以下命令。您必须具有根用户权限才能编辑此文件。要成为根用户，可以使用 `sudo -i` 命令，也可以运行所有命令，如 `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 服务器设置，请参阅《Amazon Directory Service 管理指南》**中的以下文档：
+ **AD Connector**：[更新 AD 连接器的 DNS 地址](https://docs.amazonaws.cn/directoryservice/latest/admin-guide/ad_connector_update_dns.html)
+ **Amazon 托管 Microsoft AD**：[为您的本地域配置 DNS 条件转发器](https://docs.amazonaws.cn/directoryservice/latest/admin-guide/ms_ad_tutorial_setup_trust_prepare_onprem.html#tutorial_setup_trust_onprem_forwarder)
+ **Simple AD**：[配置 DNS](https://docs.amazonaws.cn/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 版 DNS 服务器设置 WorkSpaces
<a name="test-updated-dns-settings-windows"></a>

1. 关闭 `OldIP1` DNS 服务器。

1. 登录 Windows WorkSpace。

1. 在 Windows **开始**菜单上，选择 **Windows 系统**，然后选择**命令提示符**。

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 服务器，这次将 `OldIP2` 替换为 `NewIP2`。然后重复步骤 2 和步骤 3。

### 测试更新后的 Linux 版 DNS 服务器设置 WorkSpaces
<a name="test-updated-dns-settings-linux"></a>

1. 关闭 `OldIP1` DNS 服务器。

1. 登录到 Linux 系统 WorkSpace。

1. 在 Linux 上 WorkSpace，打开终端窗口。

1. DHCP 响应中返回的 DNS 服务器 IP 地址将写入上的本地`/etc/resolv.conf`文件中 WorkSpace。运行以下命令以查看 `/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 服务器，这次将 `OldIP2` 替换为 `NewIP2`。然后重复步骤 2 和步骤 3。