请教一个 hostname 的问题:怎样在 CentOS 6.8 里更改 hostname?

2016-10-20 16:13:31 +08:00
 ericgui
我的 shell 一直显示是 root@localhost
然后昨天我不知道做了什么,结果我的 shell 就成了 root@bogon
用命令 hostname ,显示: bogon
但用 cat /etc/sysconfig/network 看了
结果是:
NETWORKING=yes
HOSTNAME=localhost
用 cat /etc/hosts
显示:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost4.localdomain6

我查了半天, google 半天,都是说要改 HOSTNAME
这 TM 本来 HOSTNAME 就是 localhost ,这个咋办?

求高人帮助,谢谢!
5908 次点击
所在节点    Linux
20 条回复
ppwangs
2016-10-20 16:53:09 +08:00
/etc/hostname
ppwangs
2016-10-20 16:54:20 +08:00
$ hostname --help
Usage: hostname [OPTION...] [NAME]
Show or set the system's host name.

-a, --aliases alias names
-d, --domain DNS domain name
-f, --fqdn, --long DNS host name or FQDN
-F, --file=FILE set host name or NIS domain name from FILE
-i, --ip-addresses addresses for the host name
-s, --short short host name
-y, --yp, --nis NIS/YP domain name
-?, --help give this help list
--usage give a short usage message
-V, --version print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Report bugs to <bug-inetutils@gnu.org>.
morven
2016-10-20 17:00:36 +08:00
直接改$PS1 ?
holyzhou
2016-10-20 17:01:19 +08:00
我就一句话
你先重启下试试
然后要了解到临时生效与永久生效的区别
再接着 你要多啃啃鸟哥,基础打打牢
lxf1992521
2016-10-20 17:07:52 +08:00
sudo sysctl -w kernel.hostname="test"

退出 SSH 再进行登录就行了。
ericgui
2016-10-20 17:48:44 +08:00
@ppwangs 我这样 centos6 里没这文件
watara
2016-10-20 18:38:26 +08:00
/etc/sysconfig/network 里面改下,重启一下就好了吧?实在不行 在命令行里运行写“ hostname XXXX ”,不过肯定需要注销重新登录才能看到结果的
akwIX
2016-10-20 18:39:36 +08:00
salmon5
2016-10-20 20:40:33 +08:00
1 , vim /etc/sysconfig/network
2 , hostname xxx
退出重新登陆。
ericgui
2016-10-20 21:15:26 +08:00
@salmon5
@watara 两位看看我的帖子嘛,我这个文件里,本来 HOSTNAME 就是 localhost ,仍然显示 root@bogon ,所以才实在不知道怎么解决了。。。。。
chinabingyang
2016-10-20 21:59:11 +08:00
你好,来自百度的答案,不知是否正确

我 mac 电脑也曾出现过这种情况

如何解决这个问题
修改你的 DNS 为公共 DNS ,例如 114.114.114.114 或者谷歌的 8.8.8.8 。
然后修改你的主机名:
sudo hostname localhost

出现这个问题的原因
终端在初始化时,需要确定主机的名字,此时终端会向 DNS 服务器反向查询本机 IP 地址,然后把得到的名字作为自己的主机名。如果没有反向解析的结果,就会显示本机设置的主机名。

那么 bogon 是什么意思呢?一个 DNS 反向解析名为 bogon 的 IP 地址不会显示在 traceroute 中。

我猜题主可能在一个路由器组织的局域网环境中,并且你的 DNS 地址是你路由器的地址,这样终端反向查询你本机 IP 地址得到的结果是 bogon ,于是你在终端里显示的主机名就变成了 bogon 。

作者: Helvetica
salmon5
2016-10-20 22:09:42 +08:00
@ericgui /etc/sysconfig/network 这个只是开机的时候加载一次,加载一次后,就不管用了。
那么你 hostname xxx 后,主机名就是 xxx 了,和 /etc/sysconfig/network 无关了。
很简单,你重启下机器就可以啦。
1120101929
2016-10-20 23:17:41 +08:00
刚刚我也遇到这个问题了。家里使用的是小米路由器,主机名是 MiWifi****。
按照 @chinabingyang 给的方法解决了。感谢。
introom
2016-10-21 01:04:34 +08:00
补充一下,关于 hostname,有个东西叫 hostnamectl, 基础知识,基础知识啊,一言不合动不动手工修改 hostname 也成,但那不是最佳实践。
我们做事呢,讲究 best practice, best practice.
bao3
2016-10-21 03:20:41 +08:00
有几个可能, 1 是你的 shell 修改了 hostname 变量,所以不管改哪个,只要 shell 的配置写了,你也改不了。 2 ,重启后看看有没有恢复,没有的话,就是你的 文件有问题,你可以自己写一个 hostname 文件,使用 hostname 指令读一下看会发生什么。 3 ,你安装你自己不知道的东西,那个东西会随机启动,这个只能自己想一下了。
shlabc
2016-10-21 06:50:04 +08:00
CentOS5 配置主机名

#( 1 )修改 /etc/sysconfig/network ,修改 HOSTNAME

#( 2 )命令行继续修改: hostname newname ,命令执行后退出,重新登陆即刻生效(重启系统后也有效)
[root@www ~]# logout

#( 3 )注意同时修改 /etc/hosts 里的相关信息
ericgui
2016-10-21 15:27:33 +08:00
@introom hostnamectl command not found 亲,我郁闷啊
ericgui
2016-10-21 15:32:27 +08:00
@bao3 哪里可以查看 shell 的变量设置?似乎我要改的是 PS1 ,但不知道应该怎么改
okudayukiko0
2016-10-21 19:02:35 +08:00
应该是 vim /etc/hostname
PaleCheung
2016-10-21 20:09:46 +08:00
@introom 这个命令 rhel /centos 7 才有。

一般用来看跑什么虚拟化比较有用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/314170

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX