Amazon Elastic Compute Cloud
Linux 实例用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

在 Linux 实例上设置动态 DNS

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

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

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

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

    [ec2-user ~]$ sudo chkconfig noip on

    您可以使用 chkconfig --list 命令验证此服务是否已启用。

    [ec2-user ~]$ chkconfig --list noip noip 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    在这里,noip 在运行级别 2、3、4 和 5 为 on (这是正确的)。现在,每次启动时,更新客户端都会启动并更新公用 DNS 记录,以便指向实例的 IP 地址。

  4. 启动 noip 服务。

    [ec2-user ~]$ sudo service noip start Starting noip2: [ OK ]

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

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