1、名词解析

主机名:

  无论是在局域网还是在INTERNET上,每台主机都有一个IP地址,用来区分当前是那一台机器(其实底层是使用机器的物理地址),也就是说IP地址就是一个主机的门牌号,唯一的标示这一台机子。

公网:

  IP地址不方便记忆,所以又有了域名。域名只是在公网(INTERNET)中存在,每个域名对应着一个IP地址,但一个IP地址可以对应多个域名

局域网:

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

  用途:例如我们可以通过主机名,通过ssh命令远程得登录别人的电脑。

2、关于/etc/host,主机名和IP配置文件

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

用途

  hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,

存储

  以ASCII格式保存在“/etc”目录下,文件名为“hosts”(不同的linux版本,这个配置文件也可能不同。比如Debian的对应文件是/etc/hostname)。

内容

  hosts文件包含了IP地址和主机名之间的映射,还包括主机名的别名。

作用

  在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址,否则就需要使用DNS服务程序来解决。通常可以将常用的域名和IP地址映射加入到hosts文件中,实现快速方便的访问。

3、优先级

  优先级 : dns缓存 > hosts > dns服务

4、配置hosts文件

  这个文件可以配置主机ip及对应的主机名,对于服务器类型的linux系统其作用还是不可忽略的。在局域网或是INTERNET上,每台主机都有一个IP地址,它区分开每台主机,并可以根据ip进行通讯。但IP地址不方便记忆,所以又有了域名。在一个局域网中,每台机器都有一个主机名,用于区分主机,便于相互访问。

  Linux主机名的相关配置文件就是/etc/hosts;这个文件告诉本主机哪些域名对应那些ip,那些主机名对应哪些ip:

  比如文件中有这样的定义

192.168.1.100 linumu100 test100

  假设192.168.1.100是一台网站服务器,在网页中输入http://linumu100或http://test100就会打开192.168.1.100的网页。

  通常情况下这个文件首先记录了本机的ip和主机名:

127.0.0.1 localhost.localdomain localhost 

  这就是在我们在调试web项目的时候,我们明明在浏览器的地址栏中输入的是localhost,他会知道我们是本地调试,因为他映射到了127.0.0.1(即本机)。

5、配置文件格式说明

  但这种映射只是本地机的映射,也就是说每台机器都是独立的,只有在hosts文件中进行了配置才能使用主机名来访问。

  在hosts文件中,我们会看到类似下面的内容

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

127.0.0.1   localhost.localdomain localhost

192.168.1.195  debian.localdomain debian

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

hosts文件格式:

ip地址 主机名/域名 (主机别名)

  第一部份:网络IP地址;

  第二部份:主机名或域名;

  第三部份:主机名别名;

  当然每行也可以是两部份,即主机IP地址和主机名;比如 192.168.1.100 linmu100。

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

  • 主机名通常在局域网内使用,通过hosts文件,主机名就被解析到对应ip;
  • 域名通常在internet上使用,但如果本机不想使用internet上的域名解析,这时就可以更改hosts文件,加入自己的域名解析。

6、hosts文件的用途

6.1 解决远程登录linux主机过慢问题

  有时客户端想远程登录一台linux主机,但每次登录输入密码后都会等很长一段时间才会进入,这是因为linux主机在返回信息时需要解析ip,如果在linux主机的hosts文件事先加入客户端的ip地址,这时再从客户端远程登录linux就会变很快。

  注:这里所说的远程登录不仅仅是ssh,还可能是mysql远程登录,或是文件共享的查询等。

6.2 双机互连

  当两台主机只是双机互连时,这时两台主机都需要设置自己的ip,同时在对方的hosts文件里加入自己的ip和主机名。

7、修改主机名

其实主机名的修改也有专用工具,就是hostname

hostname - show or set the system’s host name

显示主机名:

# hostname

zhengcanrui

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

临时设置主机名:

# hostname test100

# hostname 注:显示主机名

test100

通过hostname 工具来设置主机名只是临时的,下次重启系统时,此主机名将不会存在;

显示主机IP:

# hostname -i

192.168.1.100

8、遇到的一个mac上面的问题

  有时候会出现你的共享主机名被莫名修改的情况。

  现象:你的主机名变了,变成了一串莫名其妙的数字加字符,我就变成了2015-2016.gz.cvte.com这样子一个主机名,过一阵子又会变回正常你以前的主机名(坑啊啊。。。。)

  产生的影响:在AirDrop共享里面找不到你的主机名,  假如你使用了tomcat部署项目,还会报一个奇怪的错误,告诉你2015-2016.gz.cvte.com(上面被修改过的主机名)不是一个合法的主机名。(这种问题网上的解决办法是去hosts文件你面配置2015-2016.gz.cvte.com 对应的ip是172.0.0.1即可,这样子是能解决的,已经试过了)

  原因:在同个局域网中有人跟你的(共享)主机名是一样的,为了同个主机名辨别,会将你的主机变成一个唯一的不重复的主机名,当没有重名的主机的时候,又会恢复正常的主机名。。。。。。

  彻底解决办法——》改你的主机名和共享主机名

修改主机名称

sudo scutil --set HostName water 

修改共享名称

 sudo scutil --set ComputerName water  

  致谢:感谢您的阅读!

linux hosts文件详+mac主机名被莫名其妙修改的更多相关文章

  1. Linux学习笔记(10)linux网络管理与配置之一——主机名与IP地址,DNS解析与本地hosts解析(1-4)

    Linux学习笔记(10)linux网络管理与配置之一——主机名与IP地址,DNS解析与本地hosts解析 大纲目录 0.常用linux基础网络命令 1.配置主机名 2.配置网卡信息与IP地址 3.配 ...

  2. linux环境下/etc/hosts文件详解

    linux环境下/etc/hosts文件详解 就没一个昵称能用关注 0.0632017.09.12 17:04:28字数 623阅读 27,096 介绍 hosts文件是linux系统中负责ip地址与 ...

  3. HOSTS文件详解【win|mac】

    hosts文件是一个用于储存计算机网络中各节点信息的计算机文件.这个文件负责将主机名映射到相应的IP地址. hosts文件通常用于补充或取代网络中DNS的功能.和DNS不同的是,计算机的使用者可以直接 ...

  4. CentOS6修改主机名(hostname)及 修改/etc/hosts 文件,增加ip和hostname的映射关系(转)

    CentOS修改主机名(hostname)  需要修改两处:一处是/etc/sysconfig/network,另一处是/etc/hosts,只修改任一处会导致系统启动异常.首先切换到root用户. ...

  5. Linux 下hosts文件详解

    1.主机名: 无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号. 公网:IP地址不方便记忆,所以又有了域名.域名只是在公网( ...

  6. etc/hosts文件详解

    Linux 修改 etc/hosts文件 hosts文件 hosts —— the static table lookup for host name(主机名查询静态表). hosts文件是Linux ...

  7. linux dhcp 设置路由及主机名

    自动获取ipDHCP方式获取ip:dhclient [网络接口]释放通过DHCP获取的ip地址:dhclient -r [网络接口]查看网络接口 ifconfig -a(列出所有接口含禁用的) eth ...

  8. Linux下的变化的主机名步骤

    Linux下变化的主机名gpdb 步骤1.执行vi /etc/sysconfig/network命令 NETWORKING=yesHOSTNAME=gpdb 第二步.执行hostname gpdb令 ...

  9. 如何在Linux中显示和设置主机名

    原文链接 随着连接到网络的计算机数量越来越多,每一台计算机都需要有一个属性来区别于其它计算机.和现实世界中的人一样,计算机也有一个叫做hostname(主机名)的属性. 什么是hostname 从它的 ...

随机推荐

  1. WCF学习之旅—TcpTrace工具(二十六)

    止文(WCF学习之旅—TcpTrace工具(二十五))介绍了关于TcpTrance的一种使用方式,接下来介绍第二种使用方式. 三.通过ListenUri实现基于tcpTracer的消息路由 对于路由的 ...

  2. CodeSmith模板代码生成实战详解

    前言 公司项目是基于soa面向服务的架构思想开发的,项目分解众多子项目是必然的.然而子项目的架子结构种类也过多的话,就会对后期的开发维护产生一锅粥的感觉.为了尽可能的在结构层避免出现这种混乱的现象,我 ...

  3. HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)

    1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息.   但是c ...

  4. MVC5 网站开发之五 展示层架构

    展示层由Ninesky.Web项目实现,负责网站内容的显示,项目包含Member和Control两个区域.   目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项 ...

  5. 快速开发框架CRL3.0发布,附带最新的项目示例CRLShoppingDemo

    继上次使用CRL实现大数据分库分表方案升级到2.4,时隔不久又升级到了大版本号3.0,主要是因为结构发生了一些更改 ORM和业务封装Package分开了,增加了实例项目演示代码CRLShoppingD ...

  6. 通过Matrix进行二维图形仿射变换

    Affine Transformation是一种二维坐标到二维坐标之间的线性变换,保持二维图形的"平直性"和"平行性".仿射变换可以通过一系列的原子变换的复合来 ...

  7. python3爬取1024图片

    这两年python特别火,火到博客园现在也是隔三差五的出现一些python的文章.各种开源软件.各种爬虫算法纷纷开路,作为互联网行业的IT狗自然看的我也是心痒痒,于是趁着这个雾霾横行的周末瞅了两眼,作 ...

  8. 【NLP】Tika 文本预处理:抽取各种格式文件内容

    Tika常见格式文件抽取内容并做预处理 作者 白宁超 2016年3月30日18:57:08 摘要:本文主要针对自然语言处理(NLP)过程中,重要基础部分抽取文本内容的预处理.首先我们要意识到预处理的重 ...

  9. How do servlets work-Instantiation, sessions, shared variables and multithreading[reproduced]

    When the servletcontainer (like Apache Tomcat) starts up, it will deploy and load all webapplication ...

  10. C#开发微信门户及应用(2)--微信消息的处理和应答

    微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下.学习下微信的相关开发,也就成为计划的安排事情之一了.本系列文章希望从一个循序渐进的角度上,全面介绍微 ...