Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
ericgui
V2EX  ›  Linux

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

  •  
  •   ericgui · Oct 20, 2016 · 7570 views
    This topic created in 3673 days ago, the information mentioned may be changed or developed.
    我的 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 ,这个咋办?

    求高人帮助,谢谢!
    20 replies  •  2016-10-21 20:09:46 +08:00
    ppwangs
    ppwangs
    Oct 20, 2016
    1
    /etc/hostname
    ppwangs
    ppwangs
    Oct 20, 2016
    2
    $ 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 <[email protected]>.
    morven
    morven
    Oct 20, 2016 via iPhone
    3
    直接改$PS1 ?
    holyzhou
    holyzhou
    Oct 20, 2016
    4
    我就一句话
    你先重启下试试
    然后要了解到临时生效与永久生效的区别
    再接着 你要多啃啃鸟哥,基础打打牢
    lxf1992521
    lxf1992521
    Oct 20, 2016
    5
    sudo sysctl -w kernel.hostname="test"

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

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

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

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

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

    一般用来看跑什么虚拟化比较有用。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   916 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 21:02 · PVG 05:02 · LAX 13:02 · JFK 16:02
    ♥ Do have faith in what you're doing.