Linux云服务器的hostname是服务器在网络中的标识名称,合理设置hostname可以方便后续服务器管理和业务区分。修改hostname分为临时修改和永久修改两种场景,不同Linux发行版的操作方式略有不同。

临时修改hostname
临时修改的hostname在服务器重启后会恢复为原来的名称,适合临时测试场景,操作方式如下:
直接在终端执行hostname命令,后面跟上新的hostname名称即可,示例如下:
# 临时将hostname修改为new-server hostname new-server
执行完成后,可以通过hostname命令直接查看当前hostname是否已经更新,但这种方式重启后就会失效。
永久修改hostname
永久修改hostname需要修改系统配置文件,不同Linux发行版的操作方式存在差异,主要分为两类情况。
基于systemd的系统(CentOS 7及以上、Ubuntu 16.04及以上、Debian 9及以上)
这类系统可以直接使用hostnamectl命令进行修改,该命令会同时修改配置文件和内核中的hostname,重启后依然生效,操作示例如下:
# 永久修改hostname为new-server hostnamectl set-hostname new-server # 查看当前hostname配置 hostnamectl
如果需要手动修改配置文件,也可以编辑/etc/hostname文件,将该文件内容替换为新的hostname名称即可,修改后重启服务器生效。
非systemd系统(CentOS 6及以下、Ubuntu 14.04及以下)
这类系统需要修改/etc/sysconfig/network文件(CentOS系列)或者/etc/hostname文件(Ubuntu/Debian系列),同时还需要修改/etc/hosts文件,避免本地解析出现问题。
以CentOS 6为例,操作步骤如下:
# 编辑network文件 vi /etc/sysconfig/network # 在文件中添加或修改HOSTNAME字段 HOSTNAME=new-server # 编辑hosts文件 vi /etc/hosts # 在文件中添加如下内容,将127.0.0.1对应的主机名更新为新的hostname 127.0.0.1 new-server localhost localhost.localdomain # 重启服务器生效 reboot
修改后验证与注意事项
修改完成后,可以通过以下命令验证hostname是否生效:
- 执行
hostname命令查看当前内核中的hostname - 执行
cat /etc/hostname查看配置文件中的hostname(systemd系统) - 执行
cat /etc/sysconfig/network查看配置文件中的hostname(非systemd的CentOS系统)
需要注意,hostname名称不能包含下划线、空格等特殊字符,只能包含字母、数字和连字符,且长度不宜过长。另外修改hostname后,部分依赖hostname运行的服务可能需要重启才能识别新的hostname。