很厉害很有用的Hosts,其实很简单!

0.327字数 1255阅读 11802

如果自己搭建过网站, 倒腾过服务器,那么一定会听说过hosts这个概念,如:单服务器搭建多个网站,需要修改hosts;本地环境搭建,可以访问localhosts等等。

那么hosts到底是什么东西?怎样修改hosts?hosts的系统路径在哪?改完hosts又能起到什么作用?本文作为一篇关于hosts的小科普文,可以让小白大概了解它。

hosts的概念

一般来说,当用户在电脑浏览器里输网址后,系统需要通过查询网络上的DNS服务器,才能将域名解析成对应的IP地址,浏览器通过IP地址才能找到该网站所在的服务器进行访问。

网址访问过程

而操作系统中的hosts文件则是有着类似“本地DNS服务器”的作用,而且比网络上的DNS具有更高的优先级。如果你在hosts里面配置了某个域名和IP的对应关系,比如127.0.0.1 -> localhost,那么当你在本机访问localhost时,系统首先会从hosts里面解析出127.0.0.1这个IP,而不会再去查询网络上的DNS服务器。

划重点:hosts文件仅对本机生效,对其他电脑和网站本身不会造成任何影响。

修改hosts有什么作用?

根据上述的特点,hosts文件可以应用在很多场景,比如:

  • 强制制定域名的IP,加快域名解析(省略了联网查询DNS的步骤),也能熬过DNS污染与劫持;
  • 为局域网某些IP的机器配置一个“网址别名”,方便自己记忆和访问。比如配置 gongsi.com 访问公司网站;配置mail.com 访问自己常用的邮箱等。当然前提是要知道目标网站服务器的IP地址。
  • 将域名指向到不可访问的IP地址,达到屏蔽不健康网站、屏蔽垃圾广告网址的效果;同理也能禁止系统、软件、网站访问某些指定的网址;
  • 开发或测试应用时,利用Hosts将域名临时指向到测试服务器IP,可以方便自己测试,同时又不影响他人和线上的应用。

hosts还有很多不同的用途,但比较常见的主要是用来屏蔽指定网址,以及程序员在开发、测试阶段用于配置服务器IP。

怎样修改 hosts?

不同的操作系统修改 hosts 文件的方法不一样,它所在的路径也不一样。常见操作系统的 hosts 文件的位置路径为:

  • Windows 系统 Hosts 文件路径:C:\Windows\System32\drivers\etc\hosts;
  • Mac 系统 hosts 文件路径:/etc/hosts;
  • Linux 系统的 hosts 文件一般也是在:/etc/hosts;
  • Android 系统的 hosts 文件路径:/system/etc/hosts (需要Root权限修改);

由于hosts属于系统文件,因此需要管理员权限才能对内容进行修改。

找到了hosts文件,一般使用任意文本编辑器都能打开它进行修改内容,一行一个IP地址和域名的对应关系,格式是: IP地址 + 空格 + 域名,这里的域名不一定要求 XXX.com,也可以是一个单词比如 localhost 或者其他自定义的一串字符。可以根据自己的需要增加或修改hosts的内容。

hosts文件

修改 hosts 后不生效怎么解决?

无论是手工修改hosts还是使用自动化软件修改,偶尔会遇到修改后不生效的情况,这一般是由于DNS缓存的原因。

因为系统为了加快用户打开网站的速度,在时候首次访问网站成功之后,会把DNS解析的结果暂时性地保存在本地缓存(称为DNS缓存)里一小段时间,如果浏览器在“这段时间里”再次打开同一个网址,则会自动从DNS缓存里取出结果,而不会请求远程的DNS服务器,也不会查询hosts文件,从而节省时间提高打开速度。

因此当修改hosts文件后不生效,一般只需清空系统的DNS缓存即可。

至于DNS缓存怎么清?自己去查咯~~哈哈

总结

hosts 并不神秘,简单理解它就是个电脑本机的“IP地址 <-> 域名”的对应表,系统或任何软件都会优先检查hosts里面有没有对应的配置,之后才会去查询网络上的DNS服务器。慢慢琢磨,相信你也可以用hosts做很多有趣、有用的事情。

背景:B2B SaaS产品 创业公司;
人设:产品转岗的运营人;
目标:完善B2B SaaS产品运营体系,完成全年引流1000+Leads的目标;
地点:浙江 · 杭州;
时间:2018年4月3日;

推荐阅读更多精彩内容