原文出处:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2152436
1、 什么是主机名; 无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。但IP地址不 方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在(以实验为目的的局域网域网实验性除外),每个域名都对应一个IP地址,但一个IP 地址可有对应多个域名。域名类型 linuxsir.org 这样的; 主机名是用于什么的呢?在一个局域网中,每台机器都有一个主机名,用于主机与主机之间的便于区分,就可以为每台机器设置主机名,以便于以容易记忆的方法来相互访问。比如我们在局域网中可以为根据每台机器的功用来为其命名。 主机名相关的配置文件:/etc/hosts; 2. 主机名配置文件; 主机名的配置文件大多是/etc/hosts ; hosts - The static table lookup for host name(主机名查询静态表); 由于 Linux 发行版本众多,与主机名相关的配置文件有时也有所不同。现在我们说说常见版本的主机名配置文件; 2.1 主机名配置文件 /etc/hosts解说; Fedora/Redhat 或以Fedora/Redhat为基础打包的发行版,主机名配置文件是 /etc/hosts Debian或以Debian为基础打包的发行版,主机名配置文件是 /etc/hostname 和/etc/hosts Slackware的主机名配置文件是 /etc/hosts 那我们来读读 /etc/hosts的内容,看这个文件是用来做什么的。hosts 配置文件是用来把主机名字映射到IP地址的方法,这种方法比较简单。但这种映射只是本地机的映射,也就是说每台机器都是独立的,所有的计算机都不能相互通过hostname来访问。 注:在debian 中还有一个/etc/hostname的文件,这个文件就是直接把本地主机名写进去就行了,但要和 /etc/hosts中的本地主机名保持一致。 /etc/hosts 的内容一般有如下类似内容: 127.0.0.1 localhost.localdomain localhost 192.168.1.195 debian.localdomain debian 注: 一般情况下hosts的内容关于主机名(hostname)的定义,每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不被系统解释。 第一部份:网络IP地址; 第二部份:主机名.域名,注意主机名和域名之间有个半角的点,比如 localhost.localdomain 第二部份:主机名(主机名别名) ,其实就是主机名; 当然每行也可以是两部份,就是主机IP地址和主机名;比如 192.168.1.195 debian 127.0.0.1 是回环地址,比如我们不想让局域网的其它机器看到我们测试的网络程序,就可以用回环地址来测试。 为什么需要定义域名呢?其实理解也简单,比如我们有三台主机,每台做不同的事,一台做MAIL服务器,一台做FTP服务器,一台做SMB服务器,所以我们就可以这样来设计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内容中,这样这三台局域网的机器就可以通过hostname来访问了。 2.2 主机名(hostname)和域名(Domain)的区别; 主机名就机器本身的名字,域名是用来解析到IP的。但值得一说的是在局域网中,主机名也是可以解析到IP上的;比如我们前面所说举的例子; 2.3 局域网的机器,不能通过主机名互访的原因; 有的弟兄可能会说,我的hostname彼此不能互访,其实这也问题也简单,我们前面已经提到了一个简单的解决办法。就是要让局域网中的所有主机都有一个通用的,并且包含所有主机的/etc/hosts文件; 另一个是做解决办法是做局域网DNS服务器,如果您的主机特别少,就用前面所说的简单方法就行;如何做DNS服务器,我将在以后的文档中专题介绍; 不过我值得一提的是做任何服务器都是以效率优先的原则为基础。比如我们在局域网中两台机器,我们还有必要做DNS服务器吗?无论怎么解决,最终的都是用最 有效率的办法解决问题;我们不能说明DNS多高级。如果DNS是为外网服务的,那就另说了,不做也得做。对不对? 3、主机名修改工具 hostname; 其实主机名的修改也有专用工具,就是hostname ;我认为如果用这个工具来修改主机名,不如直接修改 /etc/hosts 来的方便;您可以查看 hosname --help或 man hostname的帮助 。在这里我们只说简单的用法; hostname 工具是用来显示和设置系统主机名,看下面的洋文; hostname - show or set the system’s host name 举例解说: * 显示主机名: [root@linuxsir01 ~]# hostname linuxsir01 此主机的主机名是linuxsir01,不加参数是用来显示当前操作的主机的主机名; * 临时设置主机名: 我们可以用 hostname 后接主机名,这样就可以设置当前操作的主机的主机名,比如我们想把主机名设置为linuxsir02; [root@linuxsir01 ~]# hostname linuxsir02 [root@linuxsir01 ~]# hostname 注:显示主机名 linuxsir02 通过hostname 工具来设置主机名只是临时的,下次重启系统时,此主机名将不会存在;所以您想修改主机名,想一直有效的,还是用前面所说修改主机名配置文件 /etc/hosts; * 显示主机IP: 显示当前主机名的IP,可以用-i参数; [root@linuxsir01 ~]# hostname -i 192.168.1.3 4、本文未尽事宜; 有时我们在登入桌面时,会提示找不到hostname ,这时您要做的是修改/etc/hosts,为您的机器添加一个主机名;先用 ifconfig -a 来查看主机的IP地址,然后把你主机的IP地址,指定主机名; 5、关于本文; 好多天没有写文档了,不是因为我没有时间,而是测试了一些我没有用过的硬件。想写几篇硬件文档,但由于条件限制,硬件文档没写出来,还把本来计划好 的网络基础系统文件给耽隔下来。这些天一直在想我这样做是不是失误了?事情已经过去,虽然努力未能成功,但并不能说我没有努力,只是结果没有得到我所需要 的。看来做任何事都不是一帆风顺的。只要支持下来,就可能出要我们所想所要的。 今天又开始写网络文档了,先写一篇小一点的练练手,本来计划了一篇比较大的网络基础文档,一个自己的规划就感觉无从下手,内容太多,大家也读着累, 所以把大的文档拆分成小的文档,这样写起来不累,而且读着更不累。如果想知道更详细的,我会把这些小文档再组合起来,这样就能成为一个系列文档了。 看来写文档规划很重要,请大家给点建议或意见吧,谢谢; 本文是关于主机名的文档,写的有点简单, 有些地方写的太含乎,还请高手多多指点,谢谢; —— 北南南北 at LinuxSir.Org 6、更新日志; 2006-07-02 v0.1b 正文初稿完成 ; 7、参考文档; 8、相关文档; By 北南南北 at 2006/07/02 - 12:53 | 网络基础 | Linux | 基础知识 | 参与评论 | 7220 阅读 修改一下原文的错误吧,北南兄别见怪,呵呵 以我所用的ubuntu系统为例。 首先说一下hosts文件,这个文件每行分3个域: IP 主机名 别名 原文提到别名是主机名,实际是不对的,别名只是为了方便使用,对它的修改是不会影响到之际名的。真正影响主机名的是hostname(在Debian系统是这样的)。这里特别提醒大家注意的是,如果在hostname中修改了主机名,一定要在hosts里加入这样的行: 127.0.0.1 localhost 你修改的主机名 或者这样 127.0.0.1 你修改的主机名 因为在linux里很多命令都会用到gethostbyname()这个函数,如果你改了主机名而又没有在hosts里更新,那么这个命令是无法执行的。 ps:在FC系统中,配置文件与Debian不一样,它的hostname设置是在/etc/sysconfig/network里 By Anonymous at 周一, 2006/08/21 - 21:07 | 回复 谢谢 兄弟客气了。哈哈。我写网络的时候,本来就是让大家批着看的。 兄弟如果有时间最好能修订一下全文,先谢谢 。。。 修改完成后,请发到我的信箱。 北南 呈上 By Anonymous at 周三, 2006/08/23 - 10:05 | 回复 修改主机名三部曲 1. 变更当前主机名 两种方法: echo new-hostname > /proc/sys/kernel/hostname 或者: hostname new-hostname 2. 修改配置文件,使得下次重启的时候,使用新的主机名 编辑文件: /etc/sysconfig/network 修改: HOSTNAME=new-hostname.domainname 3. 配置本机的域名解析文件,使得本机的应用程序能够解析新的主机名 编辑文件: /etc/hosts 修改: xxx.xxx.xxx.xxx new-hostname.domainname new-hostname (这里的xxx代表本机的网络地址,也可以是环回地址127.0.0.1) By ahumdk at 周五, 2006/08/11 - 11:49 | 回复 错了 在host 里面改是不行了,那个文件只是用来做dns解析用的,系统启动的时候不会读取里面的东西,要在/etc/sysconfig/network里面设置.下 面的有反映说启动不了了,其实等等就启动了,只是里面一个服务遇到了问题,postfix遇到问题了,说找不到localhost了.在host改后启动 后系统的名字是没有便的,只有在上面的那个路径下面文件该后才会正确显示,在windows底下ping 自己的名字是能ping通的,而linux底下不知道为什么不行,所以还要在host底下加一条新的名字解析. By Anonymous at 周日, 2006/08/06 - 23:48 | 回复 个人觉得/etc/hosts并不是设置主机名的 我个人觉得/etc/hosts并不是设置主机名的,而是相当于DNS的作用的,这个东西和主机名应该是不同的 主机名是用来标志某一台主机的,但是未必是给别人机器使用的,而是给这台机器自身用的,比如在登录的时候的提示,在Shell的提示符上,都可以显示出来,这样的话,使用者可以知道自己用的是哪台机器。而这台机器也未必需要在网络上 而/etc/hosts却是设定IP和对应的名称的关系,这种关系甚至是随意的,比如主机名可以叫A(如果设置好了的话,登录和Shell的提示符 上会显示),但是在/etc/hosts中我可以给它设定对应于C,或者www.sohu.com,在我的机器上,就可以用C,或者是 www.sohu.com这样的名称来访问它,甚至两个同时设置,但是主机名仍然应该是一个 可以这样考虑: 我是在B主机上,并且在B主机上的/etc/hosts中设定C对应A主机的IP,在A机上开了sshd,那么我可以在B上用类似ssh C这样的命令来访问A机,但是在A的登录的提示上出现的应该还是A login:这样的提示,而不是C login,在Shell的提示符中显示的,应该是[user@A ~]$这样的提示(如果设置的是显示主机名的话),我觉得主机名的作用应该是在这个地方,确定所登录的机器,免得误操作或者用错用户名登录(也许使用者在 两台不同的机器上拥有两个不同的账号) 还有另一个方法可以说明这个问题,比如你的/etc/hosts里面设置的是A对应A的IP,那么用hostname修改了主机名,比如叫 test,之后再ping的时候,ping test是不起作用的,还是只能ping A,这说明ping的地方用的名称或者其它网络访问时用的名称(也就是由/etc/hosts设定的名称)和主机名是不同的 所以我觉得,主机名和/etc/hosts没什么关系,只不过如果/etc/hosts中的IP和主机名不对应的话,就不能用主机名来访问这台主机了,但是自己的机器的网络操作并不是很多,所以也没什么大关系 所以手工设置主机名,应该改的是另外的一个配置文件(比如说是/etc/sysconfig/network,或者是其它的什么),修改了之后“最好”把/etc/hosts也对应修改一下 By laneast at 周日, 2006/07/30 - 14:06 | 回复 有些道理 在本机上面设置了DNS后呢,一般访问一个"名字"的时候,流程大致是这样的, command->Local host name->hosts files->dns server->wins->lmhost.windows地下这样解析的顺序,linux底下也一页,既然第二步是解析Local host name,而第三步才是到hosts.想必俩个不是同类在一起的.windows里面,hostname可以是多样的,而host里面的对应 的,一般只有一个地址,那就是:127.0.0.1 localhost.host在以前的网络中就是现在的dns作用一样,后来随着网络的发展,它的缺 点不适应了.所以现在host作用仍然是dns作用的.也不知道linux是不是把hostname归结到host里面了,不太清楚.呵呵.因为偶不知道 在哪儿该hostname.不过我们假设先.假设hostname和host文件是俩马事儿,看能不能解析,改变host文件后,我们测试新的的名字,肯 定是能用的,因为计算机会到host找对照表一旦发现名称对应了.那肯定是能够访问了.呵呵,所以还待有人帮我回答.到底是怎么说才对 By Anonymous at 周日, 2006/08/06 - 23:07 | 回复 hosts在windows里面只是为了解析域名用的 hosts在windows里面只是为了解析域名用的,不知道在linux底下是不是有所归在一起了?就是在系统启动的时候加载host里面的名字使得它成为计算机的名字呢? By Anonymous (没有被验证) at 周日, 2006/08/06 - 23:28 | 回复 修改hostname出现的问题 昨天修改了一下hostname,结果导致今天不能登陆网络。我使用的是DHCP + FC5。通过网络配置工具,我已经正确建立了以太网连接和相应的硬件,但是却不能激活。使用service network restart会出现如下的信息: 正在关闭接口 eth0: [确定] 关闭环回借口: [确定] 禁用 Ipv4 包传送 [确定] 弹出环回接口: [确定] 弹出界面 eth0: [确定] 正在决定 eth0 的IP信息 ... 完成 RTNETLINK answers: No such device //问题所在呀 但是我通过lsmod命令确实看到了我的网络驱动模块b44.ko被加载了。而且通过lspci命令也可以看到检测出来的网卡。 不知道怎么处理,如知请回呀!!! By Anonymous at 周二, 2006/08/01 - 21:46 | 回复 两个第二部分? 第二部份:主机名.域名,注意主机名和域名之间有个半角的点,比如 localhost.localdomain 第二部份:主机名(主机名别名) ,其实就是主机名; 两个第二部分?笔误吧? By Anonymous at 周三, 2006/07/19 - 08:18 | 回复 辛苦了 但是中文是不是应该好好改改,读得云里雾里!!! By Anonymous at 周一, 2006/07/17 - 08:36 | 回复 还是我 只是一个小建议,没时间就算了,不管怎样,非常感谢您的辛勤劳动!!! By Anonymous at 周一, 2006/07/17 - 09:20 | 回复 比如INTERNET网上的主机 比如INTERNET网上的主机,也就是公网上的主机。有时域名就是主机名。 北南兄,我觉得这句也不是太对,就算公网上的主机,域名也不就是主机名,我觉得应该是主机名和域名的总和才是网络上的真是主机名! By Anonymous (没有被验证) at 周一, 2006/07/10 - 22:36 | 回复 修改主机名不是修改 修改主机名不是修改/etc/hosts文件就可以的了!我测试过,修改/etc/hosts文件根本就不起作用的,应该修改/etc/sysconfig/network By Anonymous (没有被验证) at 周一, 2006/07/10 - 22:31 | 回复 修改主机名不是修改 主机名见/etc/HOSTNAME文件 用hostname修改的是临时的主机名 By Anonymous at 周五, 2006/09/15 - 22:45 | 回复 如果只修改/etc/hosts内的主机名 在很多时候,如果只修改/etc/hosts内的主机名,会导致下次启动时出现不能找到主机名的问题,我认为除了修改/etc/hosts还应该修改/etc/sysconfig/network,北南,你觉得呢? By Anonymous (没有被验证) at 周三, 2006/07/05 - 09:32 | 回复 兄弟说的有理,有时是必要的。 我测试过,有时不需要这样做。兄弟所说的是RH/FC的系统; 比如主机的IP地址是 192.168.1.55 ,回环地址那行几乎所有的机器都是那样的。可改一改,也可以不改。 192.168.1.55 mailserver.localdomain mailserver 加上这行,主机名就变成了 mailserver 。我不敢完全确定。我测试过一回,是可以的。 如果 192.168.1.56 这台机器 ,比如他的主机名是 ftpserver。要让 192.168.1.55能通过主机名来访问。如果不做DNS的话,就可以修改 /etc/hosts,加入 192.168.1.56这台的主机名。当然也得修改 192.168.1.56这台机器的/etc/hosts; 127.0.0.1 localhost.localdomain localhost 192.168.1.55 mailserver.localdomain mailserver 192.168.1.56 ftpserver.localdomain ftpserver 其实我在本文中少了一个比较重要的东西。比如一台机器是多个IP地址,每个IP地址,就应该认定为是一台主机。主机名可以绑定到IP上。修改了 /etc/hosts之外,也可以在 /etc/sysconfig/network-scripts/ifcfg-ethX 中加入HOSTNAME的项。 By 北南南北 at 周三, 2006/07/05 - 13:53 | 回复 安装过程中指定hostname 怎 样修改才能达到像在图形化方式安装过程中指定hostname的效果????如设hostname为A,,在登录界面的右下方显示由默认的 localhost.localdomain变为A,,登录后的shell中,由@localhost ~变为@A ~,,在ping A时的效果与ping localhost的效果相同,,我试过各位的方法,,都没有成功,请指教。谢谢!! By lmickie at 周四, 2006/08/10 - 13:25 | 回复 /etc/hosts /etc/hosts 就不是个存主机名的地方~~ 你们认为呢? 在这个文件里面甚至可以什么也不写。 一般只有回环接口。 这只是一个查寻名字到地址的一个文件,完全可以用dns来取代之。 机器的名字是什么,和这个文件我觉得没关系。 大家认为呢? By Anonymous at 周三, 2006/07/05 - 11:15 | 回复 我认为DNS有DNS的好处。hosts有hosts的好处; 如果只是有很少的机器,不妨直接修改hosts。这是极为简单的。 当然DNS是方便,这是肯定的。我感觉也不能忽略了hosts的用处。对吧? By 北南南北 at 周三, 2006/07/05 - 13:59 | 回复 讨论一下 "主机名就机器本身的名字,域名是用来解析到IP的。" 这句话说的很不确切,域名指的是什么,作用是什么? By Anonymous at 周二, 2006/07/04 - 11:13 | 回复 谢谢,请大家说说吧。 我正在思考中,网络基础我只能查看洋文的DOC。能理解的就写了,不理解的也写了一点。向大家请教了。。。 感觉HOSTNAME和DOMAINNAME的没有说的太清楚。 不过有一点我是搞的清楚了。比如INTERNET网上的主机,也就是公网上的主机。有时域名就是主机名。 By 北南南北 at 周三, 2006/07/05 - 14:02 | 回复 有个错字 第一句: 每台主动都有一个IP地址 应该为 :每台主机都有一个IP地址 By Anonymous at 周日, 2006/07/02 - 22:46 | 回复 不通 但IP地址忘记不方便 应为: 但IP地址不方便记忆. 谢谢你的文章. By Anonymous at 周一, 2006/07/03 - 11:59 | 回复 已经修正,谢谢。 谢谢楼上的弟兄,极为真诚的。 北南 呈上 By 北南南北 at 周一, 2006/07/03 - 12:49 | 回复 早期internet网使用的是hosts 早期internet网使用的是hosts。由于internet的发展,主机数不断增加,造成hosts不断增加,解析困难,维护也不方便,于是出现了DNS来解决这一问题。 By Anonymous (没有被验证) at 周六, 2006/07/22 - 11:18 | 回复 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/25785/showart_202640.html |
相关推荐
在Linux系统中,当程序试图获取本地主机名时(例如通过调用`InetAddress.getLocalHost()`),它会首先尝试通过DNS解析当前主机名。如果DNS查询失败,则会检查`/etc/hosts`文件中的条目。在这个例子中,显然这两种...
在Linux操作系统中,主机名是标识系统在网络中的唯一名称,对于SUSE Linux Enterprise Server (SLES) 11来说,修改主机名是一个重要的系统管理任务。这个过程涉及到多个步骤,通常包括配置网络接口、更新系统文件...
`cd`切换目录,`mkdir`和`rmdir`创建和删除目录,`tree`展示目录结构,`chmod`和`chown`修改文件或目录的权限和所有者,`stat`提供文件详细信息,`whoami`显示当前用户,`hostname`显示主机名,`uname`显示系统信息...
在Linux服务器管理中,了解和掌握主机名的配置至关重要,因为主机名是系统标识和通信的基础。在RHEL7及更高版本中,主机名被分为三种类型:静态主机名、瞬态主机名和灵活主机名。 1. **静态主机名(内核主机名)**...
* hostname 命令:用于显示主机名。 * reboot 命令:用于重启系统。 * shutdown 命令:用于关闭系统。可以使用 -r 选项重启系统。 其他命令 * tar 命令:用于压缩和解压缩文件。 * clear 命令:用于清屏。 * cat ...
"虚拟机下Linux操作系统的网络配置研究" 在虚拟机下,Linux操作系统的网络配置是一件非常重要的事情。Linux操作系统具有很强的网络安全和网络管理功能,系统可靠性和稳定性都比Windows操作系统要强。然而,在虚拟机...
在Linux操作系统中,掌握基本的命令行操作是至关重要的,特别是对于系统管理和维护人员来说。本文将详细解析标题和描述中提及的“主机名”及其相关的Linux命令。 主机名是计算机在网络上的标识,用于区分不同的网络...
Linux 操作系统的远程控制方法 Linux 操作系统的远程控制方法可以分为四类:r 系列命令、telnet、ssh 和远程 X。 1. r 系列命令 r 系列命令包括 rlogin 和 rsh 等,都是 Linux 操作系统的远程控制方法。这些命令...
`hostname`和`hostnamectl`命令分别用于显示和设置当前系统的主机名。`date`命令显示当前系统的时间和日期,而`cal`命令则用于显示当前月的日历。`clear`命令则用来清除屏幕上的内容,类似于Windows中的`cls`命令。 ...
在Linux操作系统中,主机名是标识服务器的重要标识符,它在很多网络服务中都有应用,包括Oracle数据库的监听服务和企业管理器(Enterprise Manager, EM)。当我们需要更改Linux主机名时,这可能会对运行在该系统上的...
- **操作系统配置文件**:主要涉及到`/etc/hosts`和`/etc/sysconfig/network`,这两个文件在Linux系统中存储了主机名和IP地址的映射。 2. **检查初始配置** 查看WebSphere中的管理节点、受管节点以及它们对应的...
Linux操作系统网络参数配置是系统管理员日常维护工作的重要组成部分。它涉及到网络连接的稳定性和性能,包括主机名、IP地址、子网掩码、网关、DNS服务器等关键参数的设定。这些参数通常通过修改配置文件或者使用...
以上是Linux操作系统上机考试涉及的主要知识点,包括系统配置、用户和权限管理、文件操作、压缩与解压缩、权限修改、进程调度、网络信息查询以及磁盘管理等内容。考生需要熟悉这些命令和操作,以在规定时间内完成...
- `hostname`:显示主机名。 - `uname`:显示系统信息。 - `dmesg`:显示系统启动信息。 - `top`:显示当前系统中资源消耗最多的进程。 - `du`:显示指定的文件(目录)已使用的磁盘空间总量。 - `df`:显示...
总的来说,主机名显示功能是操作系统中一个实用且直观的特性,它方便了设备管理和网络通信。无论是查看、修改还是自定义主机名的显示,都需要对操作系统的基本操作有一定的理解。对于IT专业人士而言,熟练掌握这些...
* hostname: 显示主机名。 * uname: 显示系统信息。 * top: 动态显示当前耗费资源最多进程信息。 * ps: 显示瞬间进程状态。 4. 网络管理命令: * ifconfig: 查看网络情况。 * ping: 测试网络连通。 * netstat...
`hostnamectl`是CentOS 7中用于管理系统主机名的命令行工具。以下是使用`hostnamectl`修改主机名的步骤: 1. **查看当前主机名**: ``` hostnamectl ``` 2. **修改主机名**: ``` sudo hostnamectl set-...
Linux 操作系统基本命令和操作实践 Linux 作为最流行的开源操作系统之一,掌握其基本命令和操作是每个 IT 专业人员必备的技能。本文档总结了 Linux 操作系统的基本命令和操作实践,涵盖用户管理、网络配置、文件...
Linux操作系统是基于Unix的一款开源操作系统,它以其稳定性和灵活性被广泛应用于服务器、嵌入式设备以及个人电脑。学习Linux的基本命令对于系统管理、开发和运维人员来说至关重要。下面将详细介绍标题和描述中提到的...