如何快速设置Linux主机名

上周有个客人问我怎么在Linux系统里改主机名,我给他详细解释了一下。
首先,他得知道他的系统是哪种类型的,因为不同的系统设置方法不一样。

如果是systemd系统,那推荐用hostnamectl命令。
他可以先临时改一下,想改什么名字就输入sudo hostnamectl set-hostname 新主机名,这样一重启就恢复原来了。
如果想永久改,那得编辑/etc/hostname文件,用sudo nano /etc/hostname替换里面的内容,然后重启系统。

如果是传统的init系统,那就用hostname命令。
临时改也是一样的,直接sudo hostname 新主机名。
永久改也是编辑/etc/hostname文件,然后用sudo nano /etc/hostname替换内容,重启系统。

还有一种是NetworkManager系统,用nmcli命令永久改主机名,只要系统用NetworkManager管理网络,直接sudo nmcli general hostname 新主机名就搞定了。

不管用哪种方法,最后都可以用hostnamectl status或者hostname来检查一下当前的主机名。

不过,有几个关键点要注意。
首先,这些操作都需要用sudo或者以root用户身份执行。
其次,hostnamectl适用于systemd系统,比如Ubuntu 1 6 .04 以上的版本和CentOS 7 以上的版本。
hostname命令适用于大多数传统的Linux发行版。
而nmcli只适用于配置了NetworkManager的系统。

另外,直接修改/etc/hostname文件后,如果不重启,更改可能只是临时的,部分系统可能会通过/etc/hosts文件同步更新。
最后,修改主机名后,最好检查一下/etc/hosts文件,看看有没有包含新主机名的映射,比如1 2 7 .0.1 .1 新主机名,这样可以避免服务解析问题。

操作建议是,如果想快速临时修改,就用hostnamectl set-hostname或者hostname。
如果想彻底永久修改,那就结合命令行工具和文件编辑,确保重启后还是那个名字。
如果是自动化场景,那在脚本中使用nmcli或者hostnamectl会更好,这样就不需要依赖文件操作了。
反正你看着办,这些方法都很实用。
我还在想,下次得找个机会自己试试看。

教你怎么在linux上修改主机名

说实话,在Linux上改主机名这事儿,我当年帮朋友弄过几次,确实挺简单的,但每次总有点小疏忽。
这操作分两种,临时改和永久改,听着简单,但细节里藏着坑。

先说临时改。
这玩意儿就像你临时起个外号,重启就忘了。
比如你用hostname binnhost这么一敲,立马变成binnhost了,但一重启又变回老名。
我以前调试网络问题,经常这么干,hostname mytestnet敲了,过半小时忘了改回来,再敲hostname一看,哎呀又变回生产环境的主机名了,当时还挺懵。
所以临时改完,最好再敲一次hostname确认下,或者赶紧用ssh连自己一下,看看远程命令行是不是也变了。

永久改这就麻烦点,需要改两个地方。
第一个是/etc/hosts,这个文件说白了就是IP和主机名的映射表。
你用vim /etc/hosts打开,进去之后按i或者a开始编辑。
重点看这一行1 2 7 .0.0.1 localhost,这行后面最好加上空格再加你新起的主机名,比如1 2 7 .0.0.1 localhost binnhost。
为啥要加?我上次忘了加空格,结果1 2 7 .0.0.1 就强行连到localhostbinnhost这个地址去了,当时排查问题好几天,就是这行搞的鬼。
改完之后按Esc,然后:wq保存退出。
这步很关键,不保存等于白干。

第二个是/etc/sysconfig/network,这个文件里有个HOSTNAME=这一行,直接把你想要的主机名填进去就行,比如HOSTNAME=binnhost。
我有个朋友弄了半天为啥重启后没变,后来发现是他填成了HOSTNAME= binnhost,前面多了个空格,系统当然不认。
所以改完也按Esc,:wq保存。

最关键的一步来了——重启。
你用reboot重启系统,不是systemctl reboot,有些老系统可能不支持后者。
重启过程中,你会看到屏幕上滚动着binnhost,这时候心里得美滋滋的,知道马上就能用新名字了。
重启完再敲hostname,如果显示binnhost,那就恭喜你成功了。

但要注意几个事儿。
第一,永久改必须重启,重启网络服务(比如/etc/init.d/network restart)没用,我试过,纯属浪费时间。
第二,改配置前最好备份,cp /etc/hosts hosts.bak,万一改坏了还能恢复。
第三,起名别瞎来,别用空格,别用特殊符号,就搞点字母数字连字符,像binnhost-v2 这样,不然很多地方会出问题。

我有个客户就因为主机名带空格,导致他的自动化脚本直接崩了,那叫一个惨。
所以啊,虽然改主机名听起来简单,但细节里藏着大学问。

Linux hostname修改后如何生效

结论:Linux改主机名后重启或重新登录生效。

大白话:改完主机名,要么重启网络服务,要么重新登录,名字才改得彻底。

具体项目:Ubuntu1 6 .04 、CentOS7 及以上。

数字:重启命令sudosystemctl restart networking。

经验:重启网络服务最直接。

你自己掂量。

LINUX怎么修改主机名_LINUX永久修改主机名方法

嗯...Linux...永久改主机名啊...有几种方法...我给你说...
第一...用 hostnamectl...这个命令...系统是 systemd 的都能用...你看现在啥主机名...执行这个命令...hostnamectl status...就看到了...然后想改成啥...比如...叫 "my-new-server" 咯...就用 sudo...sudo hostnamectl set-hostname my-new-server...把 my-new-server 换成你想要的名字...然后...还得改个 /etc/hosts 文件...用 sudo nano /etc/hosts...找到那个...比如 1 2 7 .0.1 .1 old-hostname 的行...给它改成 1 2 7 .0.1 .1 my-new-server...保存...这样...你就完了...重新登录下...或者敲个 hostname...看看是不是变了...
第二...就是手动编辑文件...这个方法...啥系统都能用...就是麻烦点...先改 /etc/hostname...用 sudo nano /etc/hostname...把里头的旧名字删了...写上新名字...保存...然后...还得改 /etc/hosts 文件...确保有 1 2 7 .0.0.1 新名字 这条...保存...然后...得重启下...或者执行个 sudo systemctl restart systemd-hostnamed...这样...就好了...你看...2 02 2 年的时候...我试过...用这个方法...改完之后...确实能用了...
第三...就是用 sysctl...这个方法...一般用在旧系统...不是 systemd 的...临时改...用 sudo sysctl kernel.hostname=新名字...立马就变了...但重启就没了...永久改...就把这行配置...echo 'kernel.hostname=新名字' | sudo tee -a /etc/sysctl.conf...保存...然后改 /etc/hosts...加上 1 2 7 .0.0.1 新名字...保存...然后...再敲个 sudo sysctl -p...就生效了...你看...2 02 2 年...某个公司...他们那个老系统...就用这个方法...搞定了...
然后...有几点要注意...第一...所有操作...都得用 sudo...或者 root...第二...改之前...把 /etc/hostname 和 /etc/hosts 备份下...万一搞砸了...好恢复...第三...你如果有多个网卡...那 /etc/hosts 里头...所有 IP 对应的都得分改...不能漏...第四...有些服务...像数据库啊...或者 Web 服务器啊...可能就认这个主机名...你改了...它可能得重新配置下...第五...改完之后...用 hostname 命令看看...ping 下新名字试试...看本地解析对不对...你看...我给你说这么多...你就按这个试试...行了...