Linux ·

更改 AWS Amazon EC2 Linux 实例的主机名

201704190101

当您启动实例时,实例会分配到一个主机名,其形
式为私有内部 IPv4 地址。

典型的 Amazon EC2 私有 DNS 名称如下所示:ip-12-34-56-78.us-west-2.compute.internal,其中包含内部域、服务 (在此示例中为 compute)、区域和某种形式的私有 IPv4 地址。

当您登录实例时,Shell 提示符处显示此主机名的一部分 (例如,ip-12-34-56-78)。

每次停止和重新启动 Amazon EC2 实例时 (除非您使用的是弹性 IP 地址),公有 IPv4 地址都会改变,而且公有 DNS 名称、系统主机名和 Shell 提示符也会改变。

在 EC2-Classic 中启动的实例在停止和重新启动时,也会收到新的私有 IPv4 地址、私有 DNS 主机名和系统主机名;而在 VPC 中启动的实例则不会收到这些内容。

更改系统主机名

如果为实例的 IP 地址注册了公用 DNS 名称 (如 webserver.mydomain.com),则可以设置系统主机名,以便实例将自己标识为该域的一部分。

这样还会更改 Shell 提示符,以便它显示此名称的第一部分,而不是 AWS 提供的主机名 (例如,ip-12-34-56-78)。

如果没有注册公用 DNS 名,还是可以更改主机名,但过程略有差异。

将系统主机名更改为公用 DNS 名称

如果已注册了公用 DNS 名称,请执行此过程。

  • 配置文件

在您的实例上,在您常用的文本编辑器中打开 /etc/sysconfig/network 配置文件,更改 HOSTNAME 条目以反映完全限定域名 (例如 webserver.mydomain.com)。

  • 重启实例以接受新主机名。

或者,您可以使用 Amazon EC2 控制台重启 (在 Instances 页面上,依次选择 Actions、Instance State 和 Reboot)。

  • 验证

登录实例,验证主机名是否已更新。您的提示应显示新主机名 (显示第一个“.”之前的部分)。并且 hostname 命令应显示完全限定域名。

在无公用 DNS 名称的情况下更改系统主机名

  • 配置文件

在您常用的文本编辑器中打开 /etc/sysconfig/network 配置文件,更改 HOSTNAME 条目以反映所需的系统主机名 (例如 webserver)。

  • 更改Hosts

在您常用的文本编辑器中打开 /etc/hosts 文件,更改以 127.0.0.1 开始的条目,以匹配以下示例,替换为您自己的主机名。

  • 重启实例以接受新主机名。

或者,您可以使用 Amazon EC2 控制台重启 (在 Instances 页面上,依次选择 Actions、Instance State 和 Reboot)。

  • 验证

登录实例,验证主机名是否已更新。您的提示应显示新主机名 (显示第一个“.”之前的部分)。并且 hostname 命令应显示完全限定域名。

在不影响主机名的情况下更改 Shell 提示符

如果不需要修改实例的主机名,但是希望显示比 AWS 提供的专用名称 (例如 webserver) 更有用的系统名称 (如 ip-12-34-56-78),您可以编辑 Shell 提示符配置文件,以显示系统别名,而不是主机名。

将 Shell 提示符更改为主机别名

  • 在 /etc/profile.d 中创建一个文件,将名为 NICKNAME 的环境变量设置为要在 Shell 提示符中显示的值。例如,若要将系统别名设置为 webserver,请执行以下命令。

  • 在您的常用文本编辑器 (如 vim 或 nano) 中打开 /etc/bashrc 文件。您需要在编辑器命令中使用 sudo,因为 /etc/bashrc 由 root 拥有。

编辑文件,将 Shell 提示符变量 (PS1) 更改为显示别名而不是主机名。在 /etc/bashrc 中找到以下设置 Shell 提示符的行 (为了上下文需要,下面多显示了几行;查找以 [ "$PS1" 开头的行):

  • 将该行中的 \h(hostname 的符号) 更改为 NICKNAME 变量的值。

  • (可选) 要将 Shell 窗口上的标题设置为新别名,请完成以下步骤。
    • 创建名为 /etc/sysconfig/bash-prompt-xterm 的文件。

    • 使用以下命令使该文件可执行。

    • 在您常用的文本编辑器 (如 vim 或 nano) 中打开 /etc/sysconfig/bash-prompt-xterm 文件。您需要在编辑器命令中使用 sudo,因为 /etc/sysconfig/bash-prompt-xterm 归 root 所有。
    • 将以下行添加到该文件。

  • 注销,再重新登录,以接受新别名值。

参与评论