在 Amazon Linux 实例上设置动态 DNS - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 Amazon Linux 实例上设置动态 DNS

当您启动 EC2 实例时,系统会为其分配公有 IP 地址和公有域名系统(DNS)名称,您可以通过互联网访问这些地址和名称。因为 Amazon Web Services 域中有非常多主机,所以这些公用名称必须足够长才能使每个名称保持唯一。典型的 Amazon EC2 公用 DNS 名称如下所示:ec2-12-34-56-78.us-west-2.compute.amazonaws.com,其中名称由 Amazon Web Services 域、服务(在此示例中为 compute)、Amazon Web Services 区域 和公有 IP 地址的形式组成。

动态 DNS 服务在其域区域中提供自定义主机名,这些主机名便于记忆,也与主机的使用案例更为相关。其中一些服务也是免费的。您可以对 Amazon EC2 使用动态 DNS 提供商,可以将实例配置为每次实例启动时都更新与公用 DNS 名称关联的 IP 地址。有许多不同的提供商可以选择,本指南不介绍有关如何选择提供商以及如何向它们注册名称的具体详细信息。

重要

此信息适用于 Amazon Linux。有关其他发布版本的信息,请参阅特定于该版本的文档。

对 Amazon EC2 使用动态 DNS
  1. 向动态 DNS 服务提供商注册并利用其服务注册公用 DNS 名称。这个过程使用来自 noip.com/free 的免费服务作为示例。

  2. 配置动态 DNS 更新客户端。有了动态 DNS 服务提供商并且使用其服务注册了公用 DNS 名称后,将 DNS 名称指向实例的 IP 地址。很多提供商(包括 noip.com)允许您从您在其网站上的账户页手动执行此操作,不过很多也支持软件更新客户端。如果更新客户端正在 EC2 实例上运行,则每次 IP 地址更改(如关机和重启后)都会更新动态 DNS 记录。在本例中,将安装 noip2 客户端,该客户端利用 noip.com 提供的服务。

    1. 启用 Extra Packages for Enterprise Linux (EPEL) 存储库,以获取对 noip2 客户端的访问权。

      注意

      默认情况下,Amazon Linux 实例安装有 EPEL 存储库的 GPG 密钥和存储库信息;但是,Red Hat 和 CentOS 实例必须先安装 epel-release 软件包,然后您才能启用 EPEL 存储库。有关更多信息以及要下载此软件包的最新版本,请参阅 https://fedoraproject.org/wiki/EPEL

      • 对于 Amazon Linux 2

        [ec2-user ~]$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
      • 对于 Amazon Linux AMI

        [ec2-user ~]$ sudo yum-config-manager --enable epel
    2. 安装 noip 软件包。

      [ec2-user ~]$ sudo yum install -y noip
    3. 创建配置文件。在提示时输入登录名和密码信息,并回答后续问题以配置客户端。

      [ec2-user ~]$ sudo noip2 -C
  3. 启用 noip 服务。

    • 对于 Amazon Linux 2

      [ec2-user ~]$ sudo systemctl enable noip.service
    • 对于 Amazon Linux AMI

      [ec2-user ~]$ sudo chkconfig noip on
  4. 启动 noip 服务。

    • 对于 Amazon Linux 2

      [ec2-user ~]$ sudo systemctl start noip.service
    • 对于 Amazon Linux AMI

      [ec2-user ~]$ sudo service noip start

    该命令启动客户端,读取先前创建的配置文件 (/etc/no-ip2.conf),并且更新您选择的公用 DNS 名称的 IP 地址。

  5. 验证更新客户端是否已为动态 DNS 名称设置了正确的 IP 地址。等待几分钟使 DNS 记录进行更新,然后尝试使用您在此过程中配置的公有 DNS 名称通过 SSH 连接到实例。