快速入门:在 Windows Server 上安装和配置 DNS 服务器

本快速入门介绍如何在 Windows Server 上安装和配置 DNS 服务器。 你将安装 DNS 服务器角色以托管 DNS 区域数据,以将 DNS 查询转发到 DNS 根提示名称服务器,或选择性地转发到上游名称服务器。

先决条件

在安装和配置 DNS 服务器之前,计算机必须满足以下先决条件:

  • 运行 Windows Server 支持版本的计算机。
  • 一个静态 IP。
  • 一个作为管理员组成员或等效身份的帐户。

安装 DNS 服务器

安装域名系统 (DNS) 服务器涉及到将 DNS 服务器角色添加到现有 Windows Server 服务器。

提示

使用 Active Directory 域服务安装向导安装 Active Directory 域服务 (AD DS) 时,该向导提供了可自动安装和配置 DNS 服务器的选项。 生成的 DNS 区域将与 AD DS 域命名空间集成。 有关详细信息,请参阅了解 Active Directory 域服务集成

若要将 DNS 服务器角色安装为独立服务器,请执行以下步骤:

下面介绍如何使用 Install-WindowsFeature 命令安装 DNS 服务器角色。

  1. 在提升的会话中在计算机上运行 PowerShell。

  2. 若要安装 DNS 角色,请运行以下命令。 安装后无需重启。

    Install-WindowsFeature -Name DNS
    

配置 DNS 服务器

安装 DNS 服务器角色后,可以配置服务器。

配置接口

默认情况下,DNS 服务器侦听所有 IP 地址接口上的请求。 可以将 DNS 服务器配置为使用 GUI 或 PowerShell 侦听指定接口。

下面介绍如何使用 Set-DNSServerSetting 命令配置用于侦听 DNS 请求的接口。

  1. 在提升的会话中在计算机上运行 PowerShell。

  2. 运行 Get-NetIPAddress cmdlet 查找计算机的现有 IP 地址。 记下要用于 DNS 服务器的 IP 地址。

    Get-NetIPAddress | fl IPAddress,InterfaceAlias
    
  3. 将当前 DNS 服务器设置存储在一个临时变量中,设置 ListeningIpAddress 属性,并运行以下命令应用新设置。 请将占位符 <ip_address> 替换为之前记下的 IP。

    $DnsServerSettings = Get-DnsServerSetting -ALL
    $DnsServerSettings.ListeningIpAddress = @("<ip_address>")
    Set-DNSServerSetting $DnsServerSettings
    

配置根提示

当 DNS 服务器无法从托管区域或 DNS 服务器缓存本地解析查询时,将使用根提示服务器来帮助解析 DNS 地址信息。 默认情况下,新的安装中会填充根提示名称服务器。

如果需要,你可以通过导航到 DNS 服务器属性对话框的“根提示”选项卡或使用 PowerShell 来编辑根名称服务器的列表。

不支持删除所有根提示服务器。 相反,通过在 DNS 管理器控制台“高级”选项卡中选择“禁用递归服务器”选项,将 DNS 服务器配置为不使用根提示名称服务器。禁用递归也会禁用任何配置的转发器。 或者,取消选中“转发器”选项卡中的“如果没有转发器可用,请使用根提示”。

下面介绍如何使用 Set-DnsServerRootHint 命令更新 DNS 根提示名称服务器。

  1. 在提升的会话中在计算机上运行 PowerShell。

  2. 通过运行 Get-DnsServerRootHint cmdlet 查找计算机的现有 IP 地址。 记下要更新的名称服务器。

    Get-DnsServerRootHint
    
  3. 运行以下命令,将当前 DNS 服务器设置存储在某个变量中。 请将占位符 <root_hint_name_server> 替换为之前记下的根提示名称服务器。

    $RootHintServer = (Get-DnsServerRootHint | Where-Object {$_.NameServer.RecordData.NameServer -match "<root_hint_name_server>"} )
    
  4. 运行以下命令,在临时变量中设置 Ipv4address 属性。 请将占位符 <ip_address> 替换为更新的 IP 地址。

    $RootHintServer.IPAddress[0].RecordData.Ipv4address = "<ip_address>"
    
  5. 运行以下命令应用更新的记录。

    Set-DnsServerRootHint $RootHintServer
    
  6. 若要检查更新的根提示,请运行以下命令。 请注意,名称服务器具有尾随点(.)。

    Get-DnsServerRootHint
    

配置转发器

你可以选择性地配置转发器来解析 DNS 地址信息,而不是将流量转发到 DNS 根服务器。 可以使用 GUI 或使用 Set-DNSServerForwarder PowerShell cmdlet 来添加转发器。

注意

除非转发器无法响应,否则不会使用 DNS 根提示。

下面介绍如何使用 Install-WindowsFeature 命令安装 DNS 服务器角色。

  1. 在提升的会话中在计算机上运行 PowerShell。

  2. 若要配置 DNS 转发器,请将占位符 <ip_forwarder_1><ip_forwarder_2> 替换为要用作转发器的 DNS 服务器的 IP 地址。 然后运行以下命令。

    $Forwarders = "<ip_forwarder_1>","<ip_forwarder_2>"
    Set-DnsServerForwarder -IPAddress $Forwarders
    

删除 DNS 服务器角色

若要删除 DNS 服务器角色,请执行以下步骤。

下面介绍如何使用 Uninstall-WindowsFeature 命令卸载 DNS 服务器角色。

  1. 在权限提升的 PowerShell 提示符下运行以下命令:

    Uninstall-WindowsFeature -Name DNS
    

重要

从 Windows Server 计算机中删除 DNS 服务器角色服务时,请注意以下事项:

  • 对于托管 AD DS 集成区域的 DNS 服务器,将根据区域的存储类型保存或删除这些区域。 除非要卸载的 DNS 服务器是托管该区域的最后一个 DNS 服务器,否则不会删除区域数据。
  • 对于托管标准 DNS 区域的 DNS 服务器,区域文件将保留在 %systemroot%\System32\Dns 目录中,但如果重新安装 DNS 服务器,将不会重新加载这些文件。 如果您使用与旧区域相同的名称创建一个新的区域,则旧的区域文件将被新的区域文件替换。