深入探讨下Linux下修改hostname的五个问题(四)

经过了前面几天的得探讨,相信大家对于如何在Linux下修改hostname已经有了很深的认识了,那么我们今天接着来聊第四个问题。

问题4: hostname跟/etc/hosts 下配置有关系吗?

如果从我上面的实验来看,其实hostname跟/etc/hosts下的配置是没有关系的。hostname的修改、变更完全不依赖hosts文件。 其实hosts文件的作用相当如DNS,提供IP地址到hostname的对应。早期的互联网计算机数量少,单机hosts文件里足够存放所有联网计算机。不过随着互联网的发展,这就远远不够了。于是就出现了分布式的DNS系统。由DNS服务器来提供类似的IP地址到域名的对应。具体可以man hosts查看相关信息。

Linux系统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件,如果里面有相应的记录,就会使用hosts里面的记录。/etc/hosts文件通常里面包含这一条记录

127.0.0.1 localhost.localdomain localhost

hosts文件格式是一行一条记录,分别是IP地址 、hostname、 aliases,三者用空白字符分隔,aliases可选。

127.0.0.1到localhost这一条建议不要修改,因为很多应用程序会用到这个,比如sendmail,修改之后这些程序可能就无法正常运行。

但是呢,其实hostname也不是说跟/etc/hosts一点关系都没有。在/etc/rc.d/rc.sysinit中,有如下逻辑判断,当hostname为localhost后localhost.localdomain时,将会使用接口IP地址对应的hostname来重新设置系统的hostname。

1234567891011121314151617181920212223 # In theory there should be no more than one network interface active      # this early in the boot process -- the one we‘re booting from.      # Use the network address to set the hostname of the client. This      # must be done even if we have local storage.      ipaddr=      if [ "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "localhost.localdomain" ]; then              ipaddr=$(ip addr show to 0/0 scope global | awk ‘/[[:space:]]inet / { print gensub("/.*","","g",$2) }‘)              if [ -n "$ipaddr" ]; then                      eval $(ipcalc -h $ipaddr 2>/dev/null)                      hostname ${HOSTNAME}              fi      fi

我们来实验一下吧,修改hosts、network文件,修改后的值如下所示:

12345678910 [[email protected] localhost~]# more /etc/hosts# Do not remove the following line, or various programs# that require network functionality will fail.::1 localhost.localdomain localhost127.0.0.1 localhost.localdomain localhost192.168.244.128 DB-Server.localdomain DB-Server[[email protected] localhost  ~]# more /etc/sysconfig/networkNETWORKING=yesNETWORKING_IPV6=yesHOSTNAME=localhost.localdomain

重启系统后,我们再截图看看情况:

所以这也是有时候人们以为hostname的值跟hosts文件有关系的缘故。

如果想深入体验LINUX系统的新手,也可以先下载一个方德Linux软件中心试用一下。
免费下载地址:http://www.nfs-cloud.cn:81/appCenter/open/softcenter

时间: 2024-10-05 04:45:15

深入探讨下Linux下修改hostname的五个问题(四)的相关文章

深入探讨下Linux修改hostname的五个问题(三)

好,我们接着之前的继续来探讨第三个问题.问题3: 修改hostname有几种方式? 1: hostname DB-Server –运行后立即生效(新会话生效),但是在系统重启后会丢失所做的修改 2: echo DB-Server > /proc/sys/kernel/hostname –运行后立即生效(新会话生效),但是在系统重启后会丢失所做的修改 3: sysctl kernel.hostname=DB-Server –运行后立即生效(新会话生效),但是在系统重启后会丢失所做的修改 4: 修改

深入探讨下Linux下修改hostname的五个问题(一)

当我觉得对Linux系统下修改hostname已经非常熟悉的时候,碰到了几个个问题,这几个问题给我好好上了一课,很多知识点,当你觉得你已经掌握的时候,其实你了解的还只是皮毛.技术活,切勿浅尝则止! 实验环境:Red Hat Enterprise Linux Server release 5.7 (Tikanga) ,其它版本Linux可能有所不同.请以实际环境为准. 其实我多次修改过hostname,一般只需要修改 /etc/hosts 和 /etc/sysconfig/network 两个文件

深入探讨下Linux下修改hostname的五个问题(二)

问题2: 修改了hostname后,如何使其立即生效而不用重启操作系统. 方法1:修改了/etc/sysconfig/network下的HOSTNAME后,然后使用echo servername > /proc/sys/kernel/hostname. [[email protected] ~]# echo Test >/proc/sys/kernel/hostname 注意当前会话还是不会变化,但是后续新建会话则会生效. 方法2:修改了/etc/sysconfig/network下的HOST

linux 下 Linux 下char转换为wchar_t

LInux下使用mbstowcs函数可以将char转化为wchar_t函数含义:convert a multibyte string to a wide char string说明:       The behaviour of mbstowcs depends on the LC_CTYPE category of the current locale返回值:   The  mbstowcs() function returns the number of wide characters th

深入探讨下Linux下修改hostname的五个问题(五)

好,终于到了本系列话题的最后一个了,让我们今天来探讨最后一个问题.问题5: 如何查看hostname的值,以哪个为准? 1 [[email protected] ~]2 # hostname3 DB-Server4 [[email protected] ~]5 # more /proc/sys/kernel/hostname6 DB-Server7 [[email protected] ~]8 # more /etc/sysconfig/networkNETWORKING=yesNETWORKI

Linux下搭建jenkins+svn+http+maven自动化部署

服务器设置: 卸载redhat的yum,安装centos的yum,配置第三方yum 1.删除redhat原有的rpm -qa |grep yum |xargs rpm -e yum --nodeps 2.下载yum安装文件,如果下载时找不到文件,http://mirrors.163.com/centos/6/os/x86_64/ wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.27-14.el6.centos.noa

Linux下MySQL的几种安装方式

闲来有空,整理下Linux下Mysql的几种安装方式,分别使用yum/rpm.常规方式编译安装.cmake方式编译安装以及使用二进制方式免编译安装MySQL Linux系统环境: CentOS release 6.5 (Final) x86_64 MySQL版本:5.5.45 安装前关闭了iptables.selinux为disabled 预安装以下包: yum groupinstall "debugging Tools" "Dial-up Networking Suppor

linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结

linux下tar gz bz2 tgz z等众多压缩文件的压缩与解压方法,需要的朋友可以参考下 Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的.生成tar包后,就可以用其它的程序来进 行压缩了,所以首先就来讲讲tar命令的基本用法:  tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面 来举例说明一下:  # tar -cf all.tar *.jpg  这条命令是将所有.jpg的

linux下nginx+php-fpm运行用户以及资源目录的权限

最近研究了下linux下nginx+php-fpm等web服务的运行用户,和web目录的权限 之前以为,nginx php-fpm 等服务,是用户登入的linux服务器上后, 然后运行对应的服务, 该服务就是以那个用户身份在跑的,后面发现是错的, 普通用户登入,没有权限启动服务. google,下,找同事了解到, 猜发现, 服务的运行身份都是在配置文件中配置的, 如nginx服务, 在nginx.conf的开头有user [用户名]  这就表示以填写的用户运行该模式了. 对应的web资源,必须对