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地址,相关代码如下
在/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地址不相同。
相关文章推荐
- 关于linux的进程中的各个线程cpu占用情况的分析和查看
- linux硬链接与软链接
- Linux自动化运维部署+运维
- Centos6.5安装RVM
- linux在线升级yum命令的使用
- linux--文件夹下批量改动IP
- [linux]ubutnu12.04 下安装jdk1.7
- 在Linux服务器上安装配置socks5代理的教程
- Linux如何kill杀掉进程
- linux使用velocity出现的一个奇葩问题-Unable to find resource
- Linux_自制系统服务启动脚本
- 安装MATLAB R2013a for Linux
- Linux下which、whereis、locate、find 命令的区别
- Linux 虚拟内存和物理内存的理解
- Linux命令学习总结:hexdump
- ARM-LINUX-GCC 4.4.3安装(ubuntu下)
- CentOS下PHP的SSH2扩展安装方法
- Linux系统档案与文件系统的压缩与打包
- Linux/CentOS关闭图形界面(X-window)和启用图形界面命令
- CentOS安装glibc-2.14