问题描述
Linux弹性云服务器的静态主机名来源于创建弹性云服务器时,通过Cloud-init注入的用户自定义名称。虽然可以使用hostname命令更改Linux弹性云服务器的主机名,但如果重新启动弹性云服务器,它将自动还原为使用Cloud-init注入的用户自定义名称。
在控制台修改云服务器主机名
- 在弹性云服务器列表中,单击待修改的弹性云服务器名称。
系统跳转至该弹性云服务器详情页面。
- 将鼠标移动至目标云服务器的“主机名”列。
- 单击,根据界面提示,修改云服务器主机名称。
- 修改前确保在云服务器显示的主机名和管理控制台上显示的一致。
- 管理控制台上修改主机名后必须重启才能生效。
- 云服务器主机名长度为1-64个字符,允许使用点号(.)分隔字符成多段,每段允许使用大小写字母、数字或连字符(-),但不能连续使用点号(.)或连字符(-),不能以点号(.)或连字符(-)开头或结尾,不能出现(.-)和(-.)。
- 当前只支持如下Linux公共镜像创建的云服务器在控制台修改主机名。
操作系统 | 版本 |
CentOS 6 | CentOS 6.5/6.8/6.9/6.10 |
CentOS 7 | CentOS 7.2/7.3/7.4/7.5/7.6 |
Ubuntu | Ubuntu 14.04/16.04/18.04 |
Debian | Debian 8.2/8.8/9.0 |
Fedora | Fedora 29 |
EulerOS | EulerOS 2.2/2.3 |
- 保存修改后,重启弹性云服务器使新名称生效。
在云服务器内部修改主机名
虽然hostname命令可以修改Linux弹性云服务器的主机名,但是,如果您希望修改后的主机名在弹性云服务器关机、重启后仍然生效,需要将其写入相应的配置文件中,使之永久生效。
假设修改后的主机名为“new_hostname”。
- 修改配置文件“/etc/hostname”。
- 执行以下命令,编辑配置文件“/etc/hostname”。
sudo vim /etc/hostname
-
- 修改配置文件,将文件中的主机名替换为修改后的主机名(new_hostname)。
- 执行以下命令,保存并退出文件。
:wq
- 修改配置文件“/etc/sysconfig/network”。
- 执行以下命令,编辑配置文件“/etc/sysconfig/network”。
sudo vim /etc/sysconfig/network
-
- 修改涉及“HOSTNAME”的参数值,将其设置为修改后的主机名(new_hostname)。
HOSTNAME=修改后的主机名
示例:
HOSTNAME=new_hostname
-
- 执行以下命令,保存并退出文件。
:wq
- 修改配置文件“/etc/cloud/cloud.cfg”。
- 执行以下命令,编辑配置文件“/etc/cloud/cloud.cfg”。
sudo vim /etc/cloud/cloud.cfg
-
- 按需选择如下两种方法,修改配置文件。
- 方法一:修改或添加“preserve_hostname”参数项。
- 按需选择如下两种方法,修改配置文件。
如果文件“/etc/cloud/cloud.cfg”中已有参数项“preserve_hostname: false”,将其修改为“preserve_hostname: true”即可。如果文件“/etc/cloud/cloud.cfg”中没有该参数项,需在“cloud_init_modules”模块前,添加语句preserve_hostname: true。
选择方法一,弹性云服务器关机、重启后,修改后的主机名(new_hostname)仍然生效。但是,如果使用该弹性云服务器制作私有镜像,并使用生成的镜像重新创建弹性云服务器,则新创建的弹性云服务器的主机名即为私有镜像使用的主机名(new_hostname),不能通过Cloud-init重新注入用户自定义名称。
-
-
- 方法二(推荐):删除或者注释语句- update_hostname。
-
选择方法二,弹性云服务器关机、重启后,修改后的主机名(new_hostname)仍然生效。但是,如果使用该弹性云服务器制作私有镜像,并使用生成的镜像重新创建弹性云服务器,用户可以通过Cloud-init注入用户自定义名称(如new_new_hostname),并通过本节内容长久有效地修改静态主机名。
- 执行以下命令,重启弹性云服务器。
sudo reboot
- 执行以下命令,验证主机名的修改是否永久生效。
sudo hostname
如果回显的内容是修改后的主机名(new_hostname),则表示主机名修改成功,永久生效。