Unix/Linux编程:/etc/hosts、/etc/services文件详解

etc/hosts文件详解

host文件

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

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

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

hosts格式配置

hosts文件可以配置主机ip与对应的主机名。在局域网或者是万维网上,每台主机都有一个ip地址,它区分开每台主机,并可以根据ip进行通讯。但是Ip地址不符合人脑的记忆规律,因此出现了域名,例如www.baidu.com.在一个局域网中,每台机器都有一个主机名,用于区分主机,便于相互访问。

hosts文件格式

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

主机名和域名的区别在于:

  • 主机名通常在局域网中使用,通过hosts文件,主机名就被解析到对应的IP
  • 域名通常在internet上使用,但是优先级低于hosts文件中内容,因此如果你不想使用internet上的域名解析,可以更改自己的hosts文件,加入自己的域名解析。
$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

hosts文件作用

一个主要的作用是:线下环境模拟,通信双方在同一个局域网内想通过internet上的域名相互访问,则只需要修改自己的/etc/hosts文件内容即可。

/etc/services

Internet守护进程ineted是linux世界中最重要的服务,它借助/etc/services文件处理所有的网络服务。/etc/services文件包含物理服务和它们映射端口的列表。inetd或者xinetd会查看这些细节,以便在数据包到达各自的端口或者服务有需求时,它会调用特定的程序。

作为普通用户,你可以查看此文件,因为文件一般都是可读的。要编辑此文件,你需要有 root 权限。

/etc/services 文件格式

service-name    port/protocol   [aliases..]  [#comment]

最后两个字段是可选的,因此用 [ ] 表示。

其中:

  • service-name 是网络服务的名称。例如 telnet、ftp 等。
  • port/protocol 是网络服务使用的端口(一个数值)和服务通信使用的协议(TCP/UDP)。
  • alias 是服务的别名。
  • comment 是你可以添加到服务的注释或说明。以 # 标记开头。

/etc/services 文件示例

# 每行描述一个服务,形式如下:
#
# service-name  port/protocol  [aliases ...]   [# comment]

tcpmux          1/tcp                           # TCP port service multiplexer
rje             5/tcp                           # Remote Job Entry
echo            7/udp
discard         9/udp           sink null

/etc/resolv.conf

/etc/resolv.conf是DNS客户机的配置文件,用于设置DNS服务器的IP地址和域名,还包含了主机的域名搜索顺序。该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。

文件格式

它的格式比较简单,每行以一个关键字开头,后接一个或多个由空格隔开的参数。

resolv.conf的关键字主要有4个,分别为:

  • nameserver:定义DNS服务器的IP地址
  • domain:定义本地域名
  • search:定义域名的搜索列表
  • sortlist:对返回的域名进行排序

注意:这里最主要的就是nameserver关键字,如果没有指定nameserver就找不到DNS服务,其它关键字是可选的。

[root@markpain ~]# cat /etc/resolv.conf  //查看该文件中的内容
# Generated by NetworkManager
nameserver 8.8.8.8      //google服务器
nameserver 8.8.4.4      //google备用服务器
domain  51osos.com
search  www.51osos.com  51osos.com
nameserver 202.102.192.68
nameserver 202.102.192.69
  • nameserver表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的,且只有当第一个nameserver没有反应时才查询下面的nameserver,一般不要指定超过3个服务器。
  • domain声明主机的域名 很多程序用到它,如邮件系统;当为没有域名的主机进行DNS查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点( .)前面的内容。
  • search它的多个参数指明域名查询顺序 当要查询没有域名的主机,主机将在由search声明的域中分别查找。
  • domain和search不能共存;如果同时存在,后面出现的将会被使用。
  • sortlist允许将得到域名结果进行特定的排序 它的参数为网络/掩码对,允许任意的排列顺序。
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值