天天看点

linux hostname

http://www.linuxsir.org/main/?q=node/222

<b>作者:</b>北南南北

<b>来自:</b>LinuxSir.Org

<b>摘要:</b>本文是关于Linux操作系统主机名(hostname)的文档,对主要配置文件/etc/hosts进行简要的说明 ;另外对基配具工具hostname也进行了举例说明; 欢迎高手斧正,谢谢;

<b>目录</b>

1、 什么是主机名;

2. 主机名配置文件;

2.1 主机名配置文件 /etc/hosts解说;

2.2 主机名(hostname)和域名(Domain)的区别;

2.3 局域网的机器,不能通过主机名互访的原因;

3、主机名修改工具 hostname;

4、本文未尽事宜;

5、关于本文;

6、更新日志;

7、参考文档;

8、相关文档;

<b></b>

++++++++++++++++++++++++++++++++++++++++

正文

无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。但IP地址不 方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在(以实验为目的的局域网域网实验性除外),每个域名都对应一个IP地址,但一个IP 地址可有对应多个域名。域名类型 linuxsir.org 这样的;

主机名是用于什么的呢?在一个局域网中,每台机器都有一个主机名,用于主机与主机之间的便于区分,就可以为每台机器设置主机名,以便于以容易记忆的 方法来相互访问。比如我们在局域网中可以为根据每台机器的功用来为其命名。

主机名相关的配置文件:/etc/hosts;

主机名的配置文件大多是/etc/hosts ;

hosts - The static table lookup for host name(主机名查询静态表);

由于 Linux 发行版本众多,与主机名相关的配置文件有时也有所不同。现在我们说说常见版本的主机名配置文件;

Fedora/Redhat 或以Fedora/Redhat为基础打包的发行版,主机名配置文件是 /etc/hosts

Debian或以Debian为基础打包的发行版,主机名配置文件是 /etc/hostname 和/etc/hosts

Slackware的主机名配置文件是 /etc/hosts

那我们来读读 /etc/hosts的内容,看这个文件是用来做什么的。hosts 配置文件是用来把主机名字映射到IP地址的方法,这种方法比较简单。但这种映射只是本地机的映射,也就是说每台机器都是独立的,所有的计算机都不能相互通 过hostname来访问。

<b>注:</b>在debian 中还有一个/etc/hostname的文件,这个文件就是直接把本地主机名写进去就行了,但要和 /etc/hosts中的本地主机名保持一致。

/etc/hosts 的内容一般有如下类似内容:

<code>127.0.0.1               localhost.localdomain  localhost 192.168.1.195              debian.localdomain   debian</code>

<b>注:</b>

一般情况下hosts的内容关于主机名(hostname)的定义,每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不 被系统解释。

第一部份:网络IP地址;

第二部份:主机名.域名,注意主机名和域名之间有个半角的点,比如 localhost.localdomain

第二部份:主机名(主机名别名) ,其实就是主机名;

当然每行也可以是两部份,就是主机IP地址和主机名;比如 192.168.1.195 debian

127.0.0.1 是回环地址,比如我们不想让局域网的其它机器看到我们测试的网络程序,就可以用回环地址来测试。

为什么需要定义域名呢?其实理解也简单,比如我们有三台主机,每台做不同的事,一台做MAIL服务器,一台做FTP服务器,一台做SMB服务器,所 以我们就可以这样来设计hostname;

<code>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</code>

把这上面这个配置文件的内容分别写入每台机器的/etc/hosts内容中,这样这三台局域网的机器就可以通过hostname来访问了。

主机名就机器本身的名字,域名是用来解析到IP的。但值得一说的是在局域网中,主机名也是可以解析到IP上的;比如我们前面所说举的例子;

有的弟兄可能会说,我的hostname彼此不能互访,其实这也问题也简单,我们前面已经提到了一个简单的解决办法。就是要让局域网中的所有主机都 有一个通用的,并且包含所有主机的/etc/hosts文件;

另一个是做解决办法是做局域网DNS服务器,如果您的主机特别少,就用前面所说的简单方法就行;如何做DNS服务器,我将在以后的文档中专题介绍; 不过我值得一提的是做任何服务器都是以效率优先的原则为基础。比如我们在局域网中两台机器,我们还有必要做DNS服务器吗?无论怎么解决,最终的都是用最 有效率的办法解决问题;我们不能说明DNS多高级。如果DNS是为外网服务的,那就另说了,不做也得做。对不对?

其实主机名的修改也有专用工具,就是hostname ;我认为如果用这个工具来修改主机名,不如直接修改 /etc/hosts 来的方便;您可以查看 hosname --help或 man hostname的帮助 。在这里我们只说简单的用法;

hostname 工具是用来显示和设置系统主机名,看下面的洋文;

hostname - show or set the system’s host name

<b>举例解说:</b>

<b>* 显示主机名:</b>

<code>[root@linuxsir01 ~]# hostname linuxsir01</code>

此主机的主机名是linuxsir01,不加参数是用来显示当前操作的主机的主机名;

<b>* 临时设置主机名:</b>

我们可以用 hostname 后接主机名,这样就可以设置当前操作的主机的主机名,比如我们想把主机名设置为linuxsir02;

<code>[root@linuxsir01 ~]# hostname linuxsir02 [root@linuxsir01 ~]# hostname  注:显示主机名 linuxsir02</code>

通过hostname 工具来设置主机名只是临时的,下次重启系统时,此主机名将不会存在;所以您想修改主机名,想一直有效的,还是用前面所说修改主机名配置文件 /etc/hosts;

<b>* 显示主机IP:</b>

显示当前主机名的IP,可以用-i参数;

<code>[root@linuxsir01 ~]# hostname -i 192.168.1.3</code>

有时我们在登入桌面时,会提示找不到hostname ,这时您要做的是修改/etc/hosts,为您的机器添加一个主机名;先用 ifconfig -a 来查看主机的IP地址,然后把你主机的IP地址,指定主机名;

好多天没有写文档了,不是因为我没有时间,而是测试了一些我没有用过的硬件。想写几篇硬件文档,但由于条件限制,硬件文档没写出来,还把本来计划好 的网络基础系统文件给耽隔下来。这些天一直在想我这样做是不是失误了?事情已经过去,虽然努力未能成功,但并不能说我没有努力,只是结果没有得到我所需要 的。看来做任何事都不是一帆风顺的。只要支持下来,就可能出要我们所想所要的。

今天又开始写网络文档了,先写一篇小一点的练练手,本来计划了一篇比较大的网络基础文档,一个自己的规划就感觉无从下手,内容太多,大家也读着累, 所以把大的文档拆分成小的文档,这样写起来不累,而且读着更不累。如果想知道更详细的,我会把这些小文档再组合起来,这样就能成为一个系列文档了。

看来写文档规划很重要,请大家给点建议或意见吧,谢谢;

本文是关于主机名的文档,写的有点简单, 有些地方写的太含乎,还请高手多多指点,谢谢;

—— 北南南北 at LinuxSir.Org

2006-07-02 v0.1b 正文初稿完成 ;

下一篇: 修改hostname

继续阅读