linux hostname 和hostname -i问题

今天在使用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地址不相同。
发布了0 篇原创文章 · 获赞 0 · 访问量 47

猜你喜欢

转载自blog.csdn.net/sdkghsrkghkrrg/article/details/105612853
今日推荐