Linux修改hostname的几种方式,及遇到的问题
前言Linux 主机名配置的困惑之前修改主机名全都是采用的 network 方式今天遇到点问题发现 hostname 并非之前理解的那样。自己配置 hostname 的问题与系统的版本有关系么腾讯云 7.5 的百度云的是 6.5我自己在 VMware 上安装的 6.5 就没 /etc/hostname 这个目录有木有大佬能给详细解释一下。一、云服务器主机名修改实践1. 腾讯云 CentOS 7.5很坑爹的是修改 /etc/hostname 文件才可以更改主机名network 却不可以。2. 百度云 CentOS 6.5百度云的服务器刚好是和腾讯云相反。必须改 network 才可以。二、环境配置信息先贴一下几台机器的配置吧腾讯云配置//不知道为什么这个命令不会出来系统版本 rootVM_69_43_centos ~# cat /etc/issue \S Kernel \r on an \m rootVM_69_43_centos ~# cat /proc/version Linux version 3.10.0-862.el7.x86_64 (builderkbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Fri Apr 20 16:44:24 UTC 2018百度云配置[rootnode01 ~]# cat /proc/version Linux version 2.6.32-696.16.1.el6.x86_64 (mockbuildlxsoft14.cern.ch) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Wed Nov 15 08:09:40 CET 2017 [rootnode01 ~]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m三、Linux 主机名修改方式详解网上查的修改 hostname 的几种方式的区别1. /etc/hostname 文件主机名存放在 /etc/hostname 文件中修改主机名时编辑 hostname 文件在文件中输入新的主机名并保存该文件即可。重启系统后即可生效。在 Linux 发行版中并非都存在 /etc/hostname 文件。如 Fedora 发行版将主机名存放在 /etc/sysconfig/network 文件中。所以修改主机名时应注意区分是哪种 Linux 发行版。2. /etc/sysconfig/network 文件此文件是针对本计算机的是给计算机起的一个名字是计算机的一个标识。可以使用uname -n命令来查看本地计算机的计算机名称。/etc/sysconfig/network 确实是 hostname 的配置文件hostname 的值跟该配置文件中的 HOSTNAME 有一定的关联关系但是没有必然关系hostname 的值来自内核参数 /proc/sys/kernel/hostname原文深入理解 Linux 修改 hostname。3. /etc/hosts 文件此文件是在网络上使用的用于解析计算机名称和 IP 地址的映射关系功能相当于 Windows 下面的C:\Windows\System32\drivers\etc\hosts文件如果想使用计算机名称来访问对方的主机需要把对方计算机的名称和 IP 地址写到本机的 hosts 文件中。四、/etc/hosts 文件格式解析IP地址 主机名/域名 别名第一部分网络 IP 地址第二部分主机名或域名第三部分主机名别名主机名通常在局域网内使用通过 hosts 文件主机名就被解析到对应 IP域名通常在 Internet 上使用但如果本机不想使用 Internet 上的域名解析这时就可以更改 hosts 文件加入自己的域名解析。# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost localhost.localdomain ::1 localhost6.localdomain6 localhost6 --- 第三个字段是别名。 172.16.127.1 CLC01 172.16.127.10 CLC02 #aaaaaa 注释五、总结与建议通过对比腾讯云和百度云的不同表现可以发现 Linux 主机名的配置方式与系统版本、发行版以及云服务商的定制都有关系。建议在修改主机名时先确认系统版本和发行版检查 /etc/hostname 文件是否存在查看 /etc/sysconfig/network 配置使用hostnamectlSystemd 系统或hostname命令临时测试修改后重启网络服务或系统生效