如何为运行 Ubuntu Linux 的 Amazon EC2 实例分配静态主机名?
上次更新时间:2020 年 11 月 9 日
我更改了我 Amazon Elastic Compute Cloud (Amazon EC2) 实例的主机名。但在我重新引导实例或停止并重启实例时,主机名会改回原名。如何让新主机名保持不变?
简短描述
要确保在重新引导或停止并启动实例时保留主机名,请将主机名添加到实例上的相应配置文件中。
注意:以下步骤适用于 Ubuntu Linux。有关适用于其他发行版的说明,请参阅下面的一项内容:
如何为运行 RHEL 5 或 6、CentOS 5 或 6 或者 Amazon Linux 的 Amazon EC2 实例分配静态主机名?
解决方法
1. 使用 vim 打开 /etc/hosts 文件。
sudo vim /etc/hosts
2. 更新 /etc/hosts 文件,使其包含 localhost 的永久主机名,类似于以下内容:
127.0.0.1 localhost persistent-hostname
注意:如果 EC2 实例上的 /etc/hosts 文件没有 localhost 的条目,则必须为它创建一个条目。
有关 Ubuntu 上的 hosts 文件的更多信息,请参阅 Ubuntu 18.04 hosts file manpage。
3. 如果 EC2 实例使用 IPv6,请添加以下配置数据。
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
4. 保存并退出 vim 编辑器。
注意:做出此更改后,按 SHIFT + : [冒号],在 vim 编辑器中打开新的命令输入框。键入 wq,然后按 Enter 以保存更改并退出 vim。或者,按 SHIFT + ZZ 以保存并关闭文件。
5. 运行 hostnamectl 命令并指定新主机名。使用新主机名替换 persistent-hostname。
sudo hostnamectl set-hostname persistent-hostname
6. 在启动或重新引导 EC2 实例后,不使用任何参数运行 Linux hostname 命令可验证该主机名更改是否已保留。
hostname
该命令会返回新的主机名。
注意:如果安装了任何影响 /etc/hosts 文件、hostname 文件或 hostname utility 文件的系统更新,则必须再次运行这些步骤。