linuxhostname和hostname-i问题
linuxhostname和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只有在启动的时候才会被读到第四个⽂件中,所以当修改第⼆个问件之后,必须重新启动才能etc被拉入黑名单了怎么办
实现重置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地址不相同。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。