OpenWrt之主机系统(/etc/hosts)
主机系统概念
在主流的操作系统上,均有一个hosts配置文件,这个文件主要作用是定义IP地址和主机名的映射关系,这个配置可以使用文本编辑器打开并进行编辑。(在windows中为
C:\Windows\System32\Drivers\etc\hosts
)当用户在浏览器中输入所想访问的网址时,系统首先从这个hosts文件中查找域名的IP地址,如果找到就打开IP地址的网页,如果没有找到就向DNS服务器进行查询。现在主流的操作系统中,主机表已经很少使用,已经被域名查找机制DNS取代。
/etc/hosts
文件
在linux系统中,主机配置文件为/etc/hosts
,这是主机的静态查找表。是一个简单的文本文件,用于保存主机名称和IP之间的对应关系。其格式为一个IP地址占用一行,每一个主机关联一个人IP地址(各个域名之间用空格或制表符分开)。
#cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
作用
现在的主流操作系统中,主机系统表被DNS取代已经很少使用,但它仍广泛的使用在以下的5个场景中。
本地网络主机信息表
大多数系统都包含名称和地址为本地网络上的主机信息表。这是非常有用的,因为在系统启动时 DNS 解析库还没有装载到内存中
127.0.0.1 localhost 192.168.1.1 bjbook.net server 192.168.1.100 openwrt.bjbook.net openwrt
DNS输入
网络信息服务站点是用主机表作为DNS服务主机数据库的输入,或者使用主机表作为备用设置。
加快域名解析,节省网络流量。
hosts文件在主机配置具有加快域名解析的作用,对于经常访问的网站和主机,我们可已在hosts文件中配置域名和IP对应的关系,由于有了映射关系,当我们访问域名时,可以直接从hosts文件中解析得出,而不用访问网络上的域名服务器,不用消耗流量。
屏蔽网站(域名重定向)
屏蔽广告网站,有很多网站带有广告,但广告和网站本身域名不同,因此能屏蔽一些众所周知的广告网站域名,这样我们利用hosts把这些广告的网站域名映射到本机IP或者非法目的IP。这样就不会看到这些广告图片了,也不会浪费网络流量。
如:
127.0.0.1 abc.com
防止DNS污染和DNS劫持。
DNS劫持就是攻破了DNS服务器防护,从而获得域名解析记录的控制权,进而修改域名解析的结果。这样导致对原始域名的访问转到另外的IP地址。
DNS污染是因为DNS查询没有任何认证机制,而且DNS查询通常采用的UDP是无连接不可靠的协议,因此DNS的查询非常容易被篡改:通过对UDP端口53上的DNS查询报文进行分析,一旦发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器给查询者返回虚假结果。
如果我们已知服务器的IP地址,就可以在hosts文件中设置正确的IP地址,从而避免DNS劫持和污染。