linux hostname修改 Linux如何修改主机名
linux的hostname主机名修改详解
Linux操作系统的hostname是一个kernel变量,可以通过hostname命令来查看本机的hostname。也可以直接cat/proc/sys/kernel/hostname查看。
#hostname
#cat/proc/sys/kernel/hostname
上面两种输出结果相同。
修改运行时Linux系统的hostname,即不需要重启系统
hostname命令可以设置系统的hostname
#hostname newname
newname即要设置的新的hostname,运行后立即生效,但是在系统重启后会丢失所做的修改,如果要永久更改系统的hostname,就要修改相关的设置文件。
永久更改Linux的hostname
man hostname里有这么一句话,”The host name is usually set once at system startup in/etc/rc.d/rc.inet1 or/etc/init.d/boot(normally by reading the contents of a file which contains the host name, e.g./etc/hostname).” RedHat里没有这个文件,而是由/etc/rc.d/rc.sysinit这个脚本负责设置系统的hostname,它读取/etc/sysconfig/network这个文本文件,RedHat的hostname就是在这个文件里设置。
所以,如果要永久修改RedHat的hostname,就修改/etc/sysconfig/network文件,将里面的HOSTNAME这一行修改成HOSTNAME=NEWNAME,其中NEWNAME就是你要设置的hostname。
Debian发行版的hostname的配置文件是/etc/hostname。
修该配置文件后,重启系统就会读取配置文件设置新的hostname。
hostname与/etc/hosts的关系
很过人一提到更改hostname首先就想到修改/etc/hosts文件,认为hostname的配置文件就是/etc/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后,如果想要在本机上用newhostname来访问,就必须在/etc/hosts文件里添加一条newhostname的记录。比如我的eth0的IP是192.168.1.61,我将hosts文件修改如下:
#hostname blog.infernor.net
# cat/etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.61 blog.infernor.net blog
这样,我就可以通过blog或者blog.infernor.net来访问本机。
从上面这些来看,/etc/hosts于设置hostname是没直接关系的,仅仅当你要在本机上用新的hostname来访问自己的时候才会用到/etc/hosts文件。两者没有必然的联系。
RHEL还有个问题。
我开始在测试的时候,只修改/etc/hosts,里面添加 192.168.1.61 blog.infernor.net blog,而/etc/sysconfig/network维持原状,也就是里面的HOSTNAME=localhost.localdomain。我重启系统后居然发现hostname给修改成了blog.infernor.net。这样看的话,倒真觉得/etc/hosts是hostname的配置文件。后来终于在/etc/rc.d/rc.sysinit这个启动脚本里发现了问题的所在。
rc.sysinit文件里一开始就设置了hostname
if [-f/etc/sysconfig/network ]; then
./etc/sysconfig/network
fi
if [-z"$HOSTNAME"-o"$HOSTNAME"="(none)" ]; then
HOSTNAME=localhost
fi
确实使用了/etc/sysconfig/network里的hostname值。不过后面还有一段关于设置hostname的
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
脚本判断hostname是否为localhost或者localhost.localdomain,如果是的话,将会使用接口IP地址对应的 hostname来重新设置系统的hostname。问题就出在这里,我的/etc/sysconfig/network默认的hostname是 localhost.localdomain,eth0的IP是192.168.1.61,而/etc/hosts里有192.168.1.61的记录。于是就用192.168.1.61这条记录来替换了hostname。
估计这也是很多人将/etc/hosts误以为是hostname的配置文件的原因。
hostname带选项查询
hostname的-s-f-i等等选项都用到了/etc/hosts或者DNS系统,跟我们讨论的hostname有点远了,也容易产生误会。具体可以man hostname查看。
Linux中使用hostname命令修改主机名称非常简单
在Linux中修改主机名其实是一件非常容易的事情,但网上有些帖子在这一块都说得很复杂,诸如修改什么配置文件之类的等等,用hostname这个命令我们就可以很轻易地修改了。
我们直接运行hostname可以查看目前的主机名称,要查看hostname的其它命令参数,运行hostname-h如下:
复制代码代码如下:
Usage: hostname [-v]{hostname|-F file} set hostname(from file)
domainname [-v]{nisdomain|-F file} set NIS domainname(from file)
hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name
hostname [-v] display hostname
hostname-V|–version|-h|–help print info and exit
dnsdomainname=hostname-d,{yp,nis,}domainname=hostname-y
-s,–short short host name
-a,–alias alias names
-i,–ip-address addresses for the hostname
-f,–fqdn,–long long host name(FQDN)
-d,–domain DNS domain name
-y,–yp,–nis NIS/YP domainname
-F,–file read hostname or NIS domainname from given file
This command can read or set the hostname or the NIS domainname. You can
also read the DNS domain or the FQDN(fully qualified domain name).
Unless you are using bind or NIS for host lookups you can change the
FQDN(Fully Qualified Domain Name) and the DNS domain name(which is
part of the FQDN) in the/etc/hosts file.
看到-v的用法了吗?修改主机名命令如下:
复制代码代码如下:
hostname-v新的主机名
这样就可以了,是不是非常地简单?
linux修改主机名命令hostnamectllinux修改主机名命令
在虚拟机上安装的linux如何修改linux的主机名?
1以根用户登录,或者登录后切换到根用户,然后在提示符下输入hostname命令,可以看出当前系统的主机名为logon
2更改/etc/sysconfig下的network文件,在提示符下输入vi/etc/sysconfig/network,然后将HOSTNAME后面的值改为localhost
3更改/etc下的hosts文件,在提示符下输入vi/etc/hosts,然后将logon改为localhost
在提示符下输入reboot命令,重新启动服务器。
4重启完成后用hostname命令查询系统主机名,可以看出系统主机名已经变更为localhost
怎么查看linux系统的主机名?
查看主机名
1、可以使用hostnamctl命令。
2、hostnamectl。扩展资料:更改Linux系统的主机名(hostname)通过修改配置文件来实现。主机名保存在/etc/hostname文件里,所以我们可以打开这个文件,手动编辑主机名。把旧的主机名删除,替换为新的主机名,保存文件就行了。要注意大小写。如果不更新/etc/hosts文件,那么有的程序,如sudo,不知道如何解析新的主机名。如果在更改Linux服务器的主机名,那么新的主机名应该要解析为Linux服务器的公网IP。如果更改个人电脑的主机名,那么新的主机名应该解析为127.0.0.1,或者127.0.1.1。127.0.1.1是Debian系Linux发行版解析本地主机的IP。Debian系统在安装时,如果计算机的IP是动态的,那么Debian安装程序会在/etc/hosts文件中创建127.0.1.1这一条目。127.0.1.1地址使用loopback网卡,实际上127.0.0.0/8(127.0.0.0~127.255.255.255)都使用loopback网卡。
linux主机名hostname设置?
设置主机名
hosts文件【/etc/hosts】
修改或增加hostname即主机名对应的IP地址。