linux环境下etchosts文件详解

linux环境下etchosts文件详解,第1张

hosts文件是linux系统中负责ip地址与域名快速解析的文件,以ASCII格式保存在/etc目录下,文件名为hosts,不同的linux版本,文件也可能不同,比如Debian的对应文件是/etc/hostname。hosts文件包含了ip地址和主机名之间的映射,包括主机名的别名,在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用DNS服务程序来解决。通常可以将常用的域名和ip地址映射加入到hosts文件中,实现快速方便的访问

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

hosts:the static table lookup for host name(主机名查询静态表)

hosts文件可以配置主机ip与对应的主机名,在局域网或者internet上,每台主机都有自己的ip地址,它区分开每台主机,并且可以通过ip地址进行通讯。但是ip地址不方便记忆,所以出现了域名(比如 www.baidu.com )。在一个局域网中,每台机器都有一个主机名,用于区分主机,便于相互访问

查看linux中的hosts文件

通过这个文件可以看到哪些域名对应哪些ip,哪些主机名对应哪些ip,通常情况下这个文件首先记录了本机的ip和主机名

一般情况下hosts文件的每行为一个主机,每行由三部分组成,每个部分由空格隔开,格式如下

第一部分:网络ip地址

第二部分:主机名或域名

第三部分:主机别名

当然每行也可以是两部分,即网络ip地址和主机名。主机名(hostname)和域名(Domain)的区别在于,主机名通常在局域网内使用,通过hosts文件,主机名就被解析到对应ip。域名通常在internet上使用,但如果本机不想使用internet上的域名解析,这时就可以更改hosts文件,加入自己的域名解析。

参考1: Linux *** 作系统下/etc/hosts文件配置方法

参考2: Linux修改/etc/hosts

  linux  /etc目录下有五个host开头的文件  :host.conf hostname hosts hosts.allow hosts.deny。 1、host.conf 文件指定如何解析主机名,笔者的centos7的/etc/host.conf里面是 multi on,即指定的主机可以有多个IP地址。 2、hosts.allow与hosts.deny这两个配置文件控制外部IP对本机服务的访问,hosts.allow控制可以访问本机的IP地址,hosts.deny控制禁止访问本机的IP。配置完成之后是实时生效的。 3、hostname是主机名,当你在命令行输入hostname时返回的主机名,也是环境变量中命令行 prompt 显示的主机名。 4、 hosts负责IP地址与域名快速解析的文件,包含了IP地址和主机名之间的映射,还包括主机名的别名。详情参考笔者的文章-linux中/etc/hosts文件配置。     先来测试一下hosts.allow与hosts.deny这两个配置文件设置ssh的连接。     hosts.deny中添加设置 sshd : ALL,再次使用ssh连接,会出现:ssh_exchange_identification: read: Connection reset 的错误,但是已经连接上的ssh是不会中断的,说明 hosts.deny时在连接时查询的配置文件。     然后在hosts.allow中添加设置sshd : 192.168.56.1,再次使用ssh可以成功连接。     在设置屏蔽所有ssh后,在单独允许192.168.56.1这个ip地址,ssh是允许的,那么就存在优先级问题。优先级为先检查hosts.deny,再检查hosts.allow。      两个配置文件的格式如下: 服务进程名:主机列表:当规则匹配时可选的命令 *** 作。    为了安全可以在hosts.deny文件中配置拒绝所有的访问ALL:ALL,然后在hosts.allow文件中逐个开放访问许可,增强安全性。     sshd可以换成其他服务进程名,比如httpd、telnetd等等。

    hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,包含了IP地址和主机名之间的映射,还包括主机名的别名。文件目录位于 /etc/hosts ,作用相当于DNS 。 这个与 /etc/hostname 文件不一样,这个文件只包含hostname这一个名字(命令行hostname返回就是这个文件的内容),  hosts文件存放的是域名与ip的对应关系。修改主机名时,这两个文件都需要修改。

    在没有域名服务器的情况下,系统上的所有网络程序都通过查询/etc/hosts文件来解析对应于某个主机名的IP地址,实现快速访问。

    在支持 mDNS(multicast DNS) 多播DNS的局域网中,使用主机名加上”.local”即可直接访问主机名对应的设备。这个就不需要配置/etc/hosts文件来完成P地址与域名解析,笔者的小米路由器支持这个功能。但是笔者觉得配置/etc/hosts文件更加方便,也可以设置别名。

    下图是笔者配置的,填入局域网内所有linux服务器的IP和域名,而且每个服务器都需要设置一样。当主机互连时,每台主机都需要设置自己的ip与域名,同时在对方的hosts文件里加入自己的ip和主机名。笔者遇到的linux服务器上,都配置了这个文件,方便通过域名或别名来访问。

    下图是笔者实验的两个树莓派配置信息。

hosts文件的格式如下:

第一部份:网络IP地址,比如192.168.31.76。

第二部份:主机名或域名,比如host1。

第三部份:主机名别名,比如host_maria。

   在marai服务器上测试域名和别名, ping host2或者ping host_LAMP都可以实现,笔者在这里就不把测试结果贴出来了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7265091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存