Linux hostname主机名配置文件/etc/hosts详解
1、什么是linux主机名
无论在局域网还是internet上,每台主机都有一个ip地址,是为了区分此台主机和彼台主机,也就是说ip地址就是主机的门牌号。但ip地址不方便记忆,所以又有了域名。域名只是在公网(internet)中存在(以实验为目的的局域网域网实验性除外),每个域名都对应一个ip地址,但一个ip 地址可有对应多个域名。域名类型 linux sir.org 这样的;
主机名是用于什么的呢?在一个局域网中,每台机器都有一个主机名,用于主机与主机之间的便于区分,就可以为每台机器设置主机名,以便于以容易记忆的方法来相互访问。比如我们在局域网中可以为根据每台机器的功用来为其命名。主机名相关的配置文件:/etc/hosts;
2. linux主机名配置文件
主机名的配置文件大多是/etc/hosts ;hosts - the static table lookup for linux hostname(主机名查询静态表);由于 linux发行版本众多,与主机名相关的配置文件有时也有所不同。现在我们说说常见版本的主机名配置文件;
2.1 linux主机名置文件 /etc/hosts
fedora/redhat 或以fedora/redhat为基础打包的发行版,主机名配置文件是 /etc/hosts debian或以debian为基础打包的发行版,主机名配置文件是 /etc/linux hostname 和/etc/hosts slackware的主机名配置文件是 /etc/hosts 那我们来读读 /etc/hosts的内容,看这个文件是用来做什么的。
hosts 配置文件是用来把主机名字映射到ip地址的方法,这种方法比较简单。但这种映射只是本地机的映射,也就是说每台机器都是独立的,所有的计算机都不能相互通过linux hostname来访问。注:在debian 中还有一个/etc/linux hostname的文件,这个文件就是直接把本地主机名写进去就行了,但要和 /etc/hosts中的本地主机名保持一致。
/etc/hosts 的内容一般有如下类似内容:127.0.0.1 localhost.localdomain localhost 192.168.1.195 debian.localdomain debian注:一般情况下hosts的内容关于主机名(linux hostname)的定义,每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不被系统解释。
第一部份:网络ip地址;第二部份:主机名.域名,注意主机名和域名之间有个半角的点,比如 localhost.localdomain第二部份:主机名(主机名别名) ,其实就是主机名;当然每行也可以是两部份,就是主机ip地址和主机名;比如 192.168.1.195 debian
127.0.0.1 是回环地址,比如我们不想让局域网的其它机器看到我们测试的网络程序,就可以用回环地址来测试。 为什么需要定义域名呢?其实理解也简单,比如我们有三台主机,每台做不同的事,一台做mail服务器,一台做ftp服务器,一台做smb服务器,所以我们就可以这样来设计linux hostname;
127.0.0.1 localhost.localdomain localhost
192.168.1.2 ftp.localdomain ftp
192.168.1.3 mail.localdomain mail
192.168.1.4 smb.localdomin smb
把这上面这个配置文件的内容分别写入每台机器的/etc/hosts内容中,这样这三台局域网的机器就可以通过linux hostname来访问了。
2.2 主机名(linux hostname)和域名(domain)的区别
主机名就机器本身的名字,域名是用来解析到ip的。但值得一说的是在局域网中,主机名也是可以解析到ip上的;比如我们前面所说举的例子;
2.3 局域网的机器,不能通过主机名互访的原因;
有的可能会说,我的linux hostname彼此不能互访,其实这也问题也简单,我们前面已经提到了一个简单的解决办法。就是要让局域网中的所有主机都有一个通用的,并且包含所有主机的/etc/hosts文件;
另一个是做解决办法是做局域网dns服务器,如果您的主机特别少,就用前面所说的简单方法就行;如何做dns服务器,我将在以后的文档中专题介绍;不过我值得一提的是做任何服务器都是以效率优先的原则为基础。
比如在局域网中两台机器,还有必要做dns服务器吗?
3、主机名修改工具 linux hostname;
其实主机名的修改也有专用工具,就是linux hostname ;我认为如果用这个工具来修改主机名,不如直接修改 /etc/hosts 来的方便;您可以查看 hosname --help或 man linux hostname的帮助 。在这里我们只说简单的用法;linux hostname 工具是用来显示和设置系统主机名,看下面的洋文;linux hostname - show or set the system’s host name
举例:显示主机名:[root@linuxsir01 ~]# linux hostname linuxsir01此主机的主机名是linuxsir01,不加参数是用来显示当前操作的主机的主机名;临时设置主机名:我们可以用 linux hostname 后接主机名,这样就可以设置当前操作的主机的主机名.
比如想把主机名设置为linuxsir02;[root@linuxsir01 ~]# linux hostname linuxsir02[root@linuxsir01 ~]# linux hostname 注:显示主机名linuxsir02通过linux hostname 工具来设置主机名只是临时的,下次重启系统时,此主机名将不会存在;
要永久生效的等话,还是用前面所说的修改主机名配置文件 /etc/hosts;显示主机ip:显示当前主机名的ip,可以用-i参数;[root@linuxsir01 ~]# linux hostname -i192.168.1.3
4、未尽事宜;
有时在登入桌面时,会提示找不到linux hostname ,这时修改/etc/hosts,添加一个主机名;
先用 ifconfig -a 来查看主机的ip地址,然后把你主机的ip地址,指定主机名;
如此操作之后,就没有问题了。
推荐阅读
-
linux修改hostname的配置文件(linux中修改主机名的命令)
-
linux修改hostname的配置文件(linux中修改主机名的命令)
-
详解Linux下的sudo及其配置文件/etc/sudoers的详细配置
-
Linux hostname主机名配置文件/etc/hosts详解
-
linux的hostname(主机名)修改详解
-
Linux修改hostname时/etc/hosts、/etc/sysconfig/network ,/etc/hostname
-
Linux修改hostname时/etc/hosts、/etc/sysconfig/network ,hostname,三者的区别和联系
-
Linux修改本机/etc/hosts的hostName后经常不生效
-
Linux修改hostname时/etc/hosts、/etc/sysconfig/network ,hostname,三者的区别和联系
-
详解Linux下的sudo及其配置文件/etc/sudoers的详细配置