您的位置:首页 > 运维架构 > Linux

linux hostname 和hostname -i问题

2015-12-26 13:08 996 查看
今天在使用tcpdump的时候,遇到了需要主机名的时候,然后我就hostname了一下,查出来了我的主机名bogon,我想着有个自己独有的主机名haiming,

在/etc/hosts文件内进行了修改,修改完成后,主机名仍然没有被改掉。试了好几次,都不行,google了一下之后,突然发现还有/etc/sysconfig/network 这个文件,

在修改了这个文件之后,我试了一下,主机名还是没有改掉,后来又查了好一会,才弄明白,和这个有牵扯的文件一共有四个,

/etc/hosts

/etc/sysconfig/network

/etc/rc.d/rc.sysinit

/proc/sys/kernel/hostname

首先先解释一下第一个文件,/etc/hosts文件是存放ip地址和主机名一一对应关系的文件,就如同DNS服务一样。

第二个文件真正是用来存放主机的hostname的。但是这个hostname只有在启动的时候才会被读到第四个文件中,所以当修改第二个问件之后,必须重新启动才能

实现重置hostname的效果

第三个文件是开机的时候会运行的一个脚本文件。这个文件就是将/etc/sysconfig/network的hostname内容读到/proc/sys/kernel/hostname中

第四个文件就是平时大家在命令行输入hostname后,就会读取该文件,然后显示结果。

修改hostname的方法总结如下。

hostname xxx 运行后立即生效(新回话生效) 只能修改/proc/sys/kernel/hostname文件,下次启动就又要读取/etc/sysconfig/network文件,则设置的会丢失

echo xxx >/proc/sys/kernel/hostname 和上面一样

sysctl kernel.hostname=xxx 和上面一样

修改/etc/sysconfig/network的hostname值,那么重启后生效,并永久生效

下面再来说说hostname -i

在命令行上输入hostname -i 你会看到一个ip地址,这个地址往往和ifconfig显示的ip地址不相同。

下面是关于hostname -i 的解释

Display the IP address(es) of the host. Note that this works only if the host name can be resolved. Avoid using this option; use hostname --all-ip-addresses instead.

这个ip地址是在开机的时候被设置的,开机的时候往往网络连接还没有搭建好,需要一个ip地址来启动网络,则/etc/rc.d/rc.sysinit文件就会生成 一个IP地址,相关代码如下
337     # In theory there should be no more than one network interface active
338     # this early in the boot process -- the one we're booting from.
339     # Use the network address to set the hostname of the client.  This
340     # must be done even if we have local storage.
341     ipaddr=
342     if [ "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "localhost.localdomain" ]; then
343         ipaddr=$(ip addr show to 0.0.0.0/0 scope global | awk '/[[:space:]]inet / { print gensub("/.*","","g",$2) }')
344         for ip in $ipaddr ; do
345             HOSTNAME=
346             eval $(ipcalc -h $ip 2>/dev/null)
347             [ -n "$HOSTNAME" ] && { hostname ${HOSTNAME} ; break; }
348         done
349     fi
350
所以此ip地址和ifconfig出来的IP地址不相同。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: