hadoop安装和维护09--深入理解Linux修改hostname
2016-12-25 18:30
573 查看
本文是由于Ambari安装HDP时, 选择FDQN, 一致出现问题,需要深入了解hostname, FDQN.
http://blog.chinaunix.net/uid-561779-id-3154203.html
http://www.cnblogs.com/kerrycode/p/3595724.html
一、与hostname 有关的文件,一般修改hostname, 就是修改
1、
2、
二、修改
修改后
再来查看hostname:hostname并没有该为localhost.localdomain
重启系统: hostname 改变了, 那么 是修改
Google了一些英文文档资料才知道,hostname是Linux系统下的一个内核参数,它保存在
而
三、修改
重启系统后:
Linux系统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件,如果里面有相应的记录,就会使用hosts里面的记录。/etc/hosts文件通常里面包含这一条记录:
hosts文件格式是一行一条记录,分别是IP地址 、hostname、 aliases,三者用空白字符分隔,aliases可选。
127.0.0.1到localhost这一条建议不要修改,因为很多应用程序会用到这个,比如sendmail,修改之后这些程序可能就无法正常运行。
但是呢,其实hostname也不是说跟/etc/hosts一点关系都没有。在
重启后:
将
注意当前会话还是不会变化,但是后续新建会话则会生效。
5.2、方法2:修改了/etc/sysconfig/network下的HOSTNAME后,然后使用sysctl kernel.hostname命令使其立即生效:
注意当前会话还是不会变化,但是后续新建
5.3、方法3:修改了/etc/sysconfig/network下的HOSTNAME后,然后使用hostname命令使其生效
注意当前会话还是不会变化,但是后续新建会话会生效。
其实,这几种方式只是结合永久性修改和临时性修改hostname,使其不必重启Linux服务器,
修改hostname有几种方式?
如何查看hostname值, 以那个为准?
more /proc/sys/kernel/hostname
http://blog.chinaunix.net/uid-561779-id-3154203.html
http://www.cnblogs.com/kerrycode/p/3595724.html
一、与hostname 有关的文件,一般修改hostname, 就是修改/etc/hosts
和/etc/sysconfig/network
这两个文件
1、/etc/hosts:
[root@rhel2 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.105 rhel2.localdomain rhel2 192.168.1.103 rhel1.chb.hdp rhel1
2、
/etc/sysconfig/network:
[root@rhel2 ~]# cat /etc/sysconfig/network NETWORKINT=yes HOSTNAME=rhel2
二、修改/etc/sysconfig/network
中的hostname:
修改后/etc/sysconfig/network:
#/etc/hosts中内容 [root@rhel2 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 #/etc/sysconfig/network内容: [root@rhel2 ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=localhost.localdomain #由rhel2改为新值 [root@rhel2 ~]#
再来查看hostname:hostname并没有该为localhost.localdomain
[root@rhel2 ~]# hostname rhel2.chb.hdp [root@rhel2 ~]#
重启系统: hostname 改变了, 那么 是修改
/etc/sysconfig/network中的hostname, 需要重启系统,才可生效?
[root@localhost ~]# hostname localhost.localdomain
Google了一些英文文档资料才知道,hostname是Linux系统下的一个内核参数,它保存在
/proc/sys/kernel/hostname下,但是它的值是Linux启动时从rc.sysinit读取的。
而
/etc/rc.d/rc.sysinit中HOSTNAME的取值来自
/etc/sysconfig/network下的HOSTNAME,代码如下所示:
HOSTNAME=`/bin/hostname` HOSTTYPE=`uname -m` unamer=`uname -r` set -m if [ -f /etc/sysconfig/network ]; then . /etc/sysconfig/network fi if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then HOSTNAME=localhost fi
hostname is a kernel parameter which stores hostname of the system. Its location is"/proc/sys/kernel/hostname" The value for this parameter is loaded to kernel by rc.sysinit file during the boot process.
三、修改/proc/sys/kernael/hostname
重启系统后:
四、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。
# 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
重启后:
将
/etc/sysconfig/network中的hostname由localhost.localdomain改为rhel, 重启系统后:hostname 和
/etc/sysconfig/network中一致
五、修改了hostname后,如何使其立即生效而不用重启操作系统。
5.1、方法1:修改了/etc/sysconfig/network下的HOSTNAME后,然后使用
echo servername > /proc/sys/kernel/hostname。
修改了`/etc/sysconfig/network`下的HOSTNAME后 [root@rhel ~]# echo Test >/proc/sys/kernel/hostname
注意当前会话还是不会变化,但是后续新建会话则会生效。
5.2、方法2:修改了/etc/sysconfig/network下的HOSTNAME后,然后使用sysctl kernel.hostname命令使其立即生效:
修改了/etc/sysconfig/network下的HOSTNAME后 [root@DB-Server ~]# echo Test >/proc/sys/kernel/hostname
注意当前会话还是不会变化,但是后续新建
5.3、方法3:修改了/etc/sysconfig/network下的HOSTNAME后,然后使用hostname命令使其生效
修改了/etc/sysconfig/network下的HOSTNAME后 [root@Test ~]# hostname DB-Server
注意当前会话还是不会变化,但是后续新建会话会生效。
其实,这几种方式只是结合永久性修改和临时性修改hostname,使其不必重启Linux服务器,
修改hostname有几种方式?
1: hostname DB-Server --运行后立即生效(新会话生效),但是在系统重启后会丢失所做的修改 2: echo DB-Server > /proc/sys/kernel/hostname --运行后立即生效(新会话生效),但是在系统重启后会丢失所做的修改 3: sysctl kernel.hostname=DB-Server --运行后立即生效(新会话生效),但是在系统重启后会丢失所做的修改 4: 修改/etc/sysconfig/network下的HOSTNAME变量 --需要重启生效,永久性修改。
如何查看hostname值, 以那个为准?
more /proc/sys/kernel/hostname
[root@DB-Server ~]# hostname DB-Server [root@DB-Server ~]# more /proc/sys/kernel/hostname DB-Server [root@DB-Server ~]# more /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=yes HOSTNAME=localhost.localdomain
六、总结
1、 修改主机名
vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=NEWHOSTNAME #修改该值作为主机名,如:NEWPC
2、修改hosts
vi /etc/hosts 127.0.0.1 localhost.localdomain localhost #该行强烈建议保留 192.168.0.1 rhel.lpwr.net rhel #必须有三个字段:IP、FQDN、HOSTNAME
3、修改ip
vi /etc/sysconfig/network-scripts/eth0 #编辑指定网络接口配置文件 DEVICE=eth0 #指定接口名称 ONBOOT=yes #系统启动时加载 BOOTPROTO=static #IP地址静态配置,若该值为“dhcp”则为动态获得 IPADDR=192.168.0.1 #设置IP地址 NETMASK=255.255.255.0 #设置子网掩码 GATEWAY=192.168.0.254 #设置默认网关
4.修改网关(可选)
vim /etc/sysconfig/network 增加一条网关信息 GATEWAY=192.168.1.1
5,修改DNS
vi /etc/resolv.conf #指定当前主机的DNS服务器,最多可指定三个 search lpwr.net #设置当前主机的默认查找域 nameserver 192.168.0.100 #指定首选DNS服务器 nameserver 172.16.254.2
6.重新加载网络配置
/etc/init.d/network restart Service network restart
相关文章推荐
- 深入理解Linux修改hostname
- 深入理解Linux修改hostname
- 深入理解Linux修改hostname
- 转: 深入理解Linux修改hostname
- 【Linux】深入理解Linux修改hostname
- 深入理解Linux修改hostname
- 深入理解Linux修改hostname
- 深入理解Linux修改hostname
- 深入理解Linux修改hostname
- 深入理解Linux修改hostname(推荐)
- 深入理解Linux修改hostname
- [转载] 深入理解Linux修改hostname
- 深入理解Linux修改hostname
- 深入理解Linux修改hostname(原文作者:潇湘隐者)
- 深入理解Linux修改hostname
- 深入理解Linux修改hostname
- 深入理解Linux修改hostname
- 深入理解Linux修改hostname(转)
- 深入理解Linux修改hostname
- 深入理解Linux修改hostname