如何为ECS实例配置自定义DNS服务器地址

更新时间:2025-03-24 07:46:19

在创建ECS实例时,默认情况下会自动配置DNS服务器,不需要进行额外配置。若默认的DNS服务器无法满足您的业务需求,可以自行配置其他DNS服务器地址。本文主要介绍配置自定义DNS服务器地址的方法。

背景信息

阿里云为 ECS 实例提供高可用、高性能的默认 DNS 服务器(IP 地址为 100.100.2.136 和 100.100.2.138),该服务由阿里云自动维护,您无需为ECS实例进行额外配置。

请注意,阿里云默认的DNS服务器可以解析阿里云服务的内网域名,如果删除默认DNS服务器,会导致ECS实例无法访问一系列服务,例如OSS Bucket内网域名等。建议您将自定义的DNS服务器地址放在阿里云默认DNS服务器地址前(越前优先级越高),将阿里云默认DNS服务器作为备选DNS服务器。

操作步骤

方式一:使用DHCP选项集自动配置(推荐)

DHCP选项集(DHCP Options Set)是阿里云中用于定义和集中管理网络参数的工具,允许用户统一配置如DNS服务器、域名等关键网络设置。专有网络VPC绑定DHCP选项集后,VPC中的ECS实例向DHCP服务器发送请求以获取选项集中的网络配置信息(域名、DNS服务器等),从而可以确保VPC内的所有ECS实例接收一致且定制化的网络配置,而无需手动为每个实例配置这些网络信息。

方式二:登录实例手动配置

不同的操作系统具有不同的配置步骤,以下列举了一些常见的操作系统,请根据您ECS实例的操作系统进行相应配置。

Windows Server 2022(其他Windows Server版本操作类似)

  1. 登录ECS实例。

    具体操作,请参见使用Workbench工具以RDP协议登录Windows实例

  2. 打开网络和Internet中的网络和共享中心

  3. 单击更改适配器设置

  4. 选择要配置的网络适配器,默认情况下,主网卡的设备名称为以太网。右键选择属性

    image

  5. 以太网属性对话框中,双击Internet 协议版本4(TCP/IPv4),如果配置IPv6DNS服务器地址,选择Internet 协议版本6(TCP/IPv6)

    image

  6. 属性对话框中,选择使用下面的DNS服务器地址,填写首选DNS服务器与备用DNS服务器地址(建议将自定义DNS服务器作为首选,将阿里云默认DNS服务器作为备选)。如果需要配置两个以上的DNS服务器,点击高级->选择DNS栏->添加多个DNS服务器地址。image

  7. 单击确定保存各对话框中的设置。

Alibaba Cloud Linux 2/CentOS 6/CentOS 7

  1. 登录ECS实例。

    具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

  2. 执行以下命令,编辑/etc/resolv.conf普通文件。

    说明

    以下操作涉及配置文件内容的修改,修改文件之前,建议先进行备份。

    sudo vim /etc/resolv.conf
    1. i键切换至编辑模式,在文件中添加以下配置,自定义DNS配置。 您需要将<DNS1>和<DNS2>修改为实际的DNS服务器地址(建议将自定义DNS服务器放在阿里云默认DNS服务器上方)。优先使用上方的DNS服务器,优先级越往下越低。

      nameserver <DNS1>
      nameserver <DNS2>
    2. 修改完成后,按下Esc键后,输入:wq并回车以保存并关闭配置文件。

    3. 执行以下命令,锁定/etc/resolv.conf配置文件,防止网络或系统重启动态更新/etc/resolv.conf配置文件。

      sudo chattr +i /etc/resolv.conf
      说明

      如果后续需要修改/etc/resolv.conf文件,可执行chattr -i /etc/resolv.conf命令解除文件的锁定。

Alibaba Cloud Linux 3(CentOS 8/AlmaLinux/Rocky Linux/CentosStream适用)

  1. 登录ECS实例。

    具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

  2. Alibaba Cloud Linux 3中,DNS配置默认由NetworkManager管理。若需手动配置DNS,需要先禁用NetworkManagerDNS的管理功能。

    1. 创建/etc/NetworkManager/conf.d/90-dns-none.conf文件。

      sudo vim /etc/NetworkManager/conf.d/90-dns-none.conf
    2. i键切换至编辑模式,在文件中添加以下配置,将DNSNetworkManager移除。

      [main]
      dns=none
    3. 修改完成后,按下Esc键后,输入:wq并回车以保存并关闭配置文件。

    4. 执行以下命令,使配置生效。

      sudo systemctl reload NetworkManager
  3. 执行以下命令,编辑/etc/resolv.conf文件。

    说明

    以下操作涉及配置文件内容的修改,修改文件之前,建议先进行备份。

    sudo vim /etc/resolv.conf
    1. i键切换至编辑模式,在文件中添加以下配置,自定义DNS配置。 您需要将<DNS1>和<DNS2>修改为实际的DNS服务器地址(建议将自定义DNS服务器放在阿里云默认DNS服务器上方)。优先使用上方的DNS服务器,优先级越往下越低。

      nameserver <DNS1>
      nameserver <DNS2>
    2. 修改完成后,按下Esc键后,输入:wq并回车以保存并关闭配置文件。

    3. 执行以下命令,锁定/etc/resolv.conf配置文件,防止网络或系统重启动态更新/etc/resolv.conf配置文件。

      sudo chattr +i /etc/resolv.conf
      说明

      如果后续需要修改/etc/resolv.conf文件,可执行chattr -i /etc/resolv.conf命令解除文件的锁定。

Ubuntu 18/20/22

  1. 登录ECS实例。

    具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

  2. 执行以下命令,新建文件,禁用cloud-init的网络配置功能。

    sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

    添加如下配置项:

    network: {config: disabled}

    修改完成后,按下Esc键后,输入:wq并回车以保存并关闭配置文件。

  3. 执行以下命令,编辑/etc/netplan/50-cloud-init.yaml配置文件。 此处以主网卡配置文件为例,如果您配置了辅助网卡,请修改/etc/netplan/目录下对应的网卡配置文件。

    说明

    以下操作涉及配置文件内容的修改,修改文件之前,建议先进行备份。

    sudo vim /etc/netplan/50-cloud-init.yaml
    1. i键切换至编辑模式,在网络接口(如eth0)的配置中添加自定义配置DNS信息。

      nameservers:
          addresses:
              - 10.0.XX.XX
              - 192.168.XX.XX
    2. 修改后的内容如下所示。需要注意避免多余或缺失的空格与换行。

      network:
          version: 2
          ethernets:
              eth0:
                  dhcp4: true
                  match:
                      macaddress: 00:16:3e:13:xx:xx
                  set-name: eth0
                  nameservers:
                      addresses: 
                          - 10.0.XX.XX
                          - 192.168.XX.XX
      说明
      • eth0:配置的网卡名称,本文以eth0网卡为例。

      • dhcp4:ECS实例的网络配置默认为DHCP模式。

      • match:实例的MAC地址。

      • nameservers:自定义配置的DNS信息,本文以DNS IP地址10.0.XX.XX192.168.XX.XX为例,请按照实际情况填写DNS IP地址(建议将自定义DNS服务器放在阿里云默认DNS服务器前方)。优先使用前方的DNS服务器,优先级越往后越低。

    3. 修改完成后,按下Esc键后,输入:wq并回车以保存并关闭配置文件。

  4. 执行以下命令,应用网卡配置。

    sudo netplan apply

Debian 10/Debian 11/Ubuntu 16

  1. 登录ECS实例。

    具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

  2. 执行以下命令,编辑/etc/network/interfaces网卡配置文件。某些高版本系统网卡配置文件中若配置为 source /etc/network/interfaces.d/*,则需在文件 /etc/network/interfaces.d/50-cloud-init.cfg 中进行相应修改。

    sudo vim /etc/network/interfaces
    1. i键切换至编辑模式,在网络接口(如eth0)的配置中添加以下配置,自定义配置DNS信息。请按照实际情况填写DNS IP地址(建议将自定义DNS服务器放在阿里云默认DNS服务器前面)。优先使用前面的DNS服务器,优先级越往后越低。

      dns-nameservers 10.0.XX.XX 192.168.XX.XX
    2. 修改之后的内容如下所示,注意不要有缺失或多余的空格。

      说明
      • auto eth0:配置的网卡名称,此处以eth0网卡为例,请以您实际环境为准。

      • iface eth0 inet dhcp:ECS实例的网络配置默认为DHCP模式。

      auto lo
      iface lo inet loopback
      
      auto eth0
      iface eth0 inet dhcp
      dns-nameservers 10.0.XX.XX 192.168.XX.XX
    3. 修改完成后,按下Esc键后,输入:wq并回车以保存并关闭配置文件。

  3. 然后执行以下命令,重启网络服务。

    sudo systemctl restart networking.service

SUSE Linux 12/SUSE Linux 15/OpenSUSE 15

  1. 登录ECS实例。

    具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

  2. 执行以下命令,启动YaST控制中心。

    yast
  3. 选择 Network Settings,回车键进入。image

    说明

    在不能使用鼠标点击时,YaST控制中心可以通过键盘方向键或Tab键选择操作。

  4. 切换至DNS栏,在下方Name Server区域设置自定义DNS服务器地址。您需要填写实际的DNS服务器地址(建议将自定义DNS服务器放在阿里云默认DNS服务器上方)。优先使用上方的DNS服务器,优先级越往下越低。设置完成后保存退出。image

  5. 执行以下命令,重启网络服务。

    sudo service network restart

验证测试

在配置完成后,您可以使用如下命令,测试您新配置的DNS服务器是否生效。

重要

在执行测试前,您需要确保ECS实例到目标DNS服务器的53端口是可达的,请检查可能限制此流量的节点,包括但不限于安全组、实例内防火墙。

nslookup aliyun.com

nslookup命令适用于大多数操作系统,以Alibaba Cloud Linux 3为例,默认没有安装nslookup,需要通过以下命令安装。

sudo yum install bind-utils

Ubuntu系统测试方式

nslookup命令适用于Ubuntu系统,但是Ubuntu默认启用了systemd-resolved服务。这个服务提供了一个本地DNS解析服务,您的DNS查询首先会发送到本地的解析服务,例如127.0.0.53。如果需要查看实际使用的DNS服务器,请使用以下命令。

resolvectl status

查看返回结果的 Server 信息,如果已经更新为您在上一步设置的DNS服务器地址,表示配置成功。

image

  • 本页导读 (1)
  • 背景信息
  • 操作步骤
  • 方式一:使用DHCP选项集自动配置(推荐)
  • 方式二:登录实例手动配置
  • 验证测试