我们常常在网上听到看到很多人说修改 hosts。那么 hosts 到底是什么东西?怎样修改 hosts?hosts 的路径在哪?改 hosts 又有什么作用?之前我们已经介绍过hosts相关文章
1.hosts文件位置以及如何修改hosts文件【Windows】
这是一篇关于 hosts 的简单小科普,可以让小白们了解它。
hosts 是什么?
一般来说,当用户在电脑浏览器里输入网址(域名)后,系统需要通过查询网络上的 DNS 服务器,才能将域名 (比如huajiakeji.com) 解析成对应的 IP 地址,浏览器通过 IP 地址才能找到该网站所在的服务器并进行访问。
而操作系统的 hosts 文件则是有着“类似本地 DNS 服务器”的作用,而且比网络上的 DNS 具有更高的优先级。如果你在 hosts 里面配置了某个域名和IP的对应关系 (比如 127.0.0.1 iplaysoft.com),那么当你在「本机」访问 iplaysoft.com 时,系统首先会从 hosts 里面解析出 127.0.0.1 这个 IP,而不会再去查询网络上的 DNS 服务器。
注意:hosts 文件仅对本机生效,对其他电脑和网站本身不造成任何影响。
修改 hosts 有什么作用?
根据上述这样的特点,hosts 文件可以应用在很多场景,比如下面一些例子:
- 强制指定域名的 IP,加快域名解析 (省略了联网查询 DNS 的步骤),也能绕过 DNS 污染与劫持。
- 为局域网某些 IP 的机器配置一个“网址别名”,方便自己记忆和访问。比如配置一个 nas.com 访问局域网里的 NAS;gongsi 访问公司网站等等。
- 将域名指向到不可访问的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 属于系统文件,因此需要管理员权限才能对内容进行修改。一般使用任意文本编辑器都能打开它进行修改内容,一行一个IP地址和域名的对应关系,格式是「IP地址+空格+域名」,这里的“域名”不一定要求xx.com,也可以是一个单词比如系统预设的“localhost”或者自定义一个“nas”也行。你可以根据自己的需要增加或修改 hosts 的内容。hosts 文件内容的例子如下:
127.0.0.1 example.com
14.215.177.38 www.baidu.com
192.168.1.100 nas
# 井号开头的则是注释
你可以根据自己的需求进行修改,偶尔只改一两次的同学,手动修改即可。但对于经常需要修改 hosts 的朋友 (比如开发者),每次都要手动不停地来回修改,实在是很累,而且也很容易出错。那么你就要一键快速切换 hosts 的工具了!
怎样快速修改、应用/切换 Hosts?
Hosts 相关的小工具着实不少,大家需求最多的肯定是 hosts 切换工具了。比如Host Switch Plus:快速切换 Domain-IP和SwitchHosts。
修改 hosts 后不生效怎么解决?
无论是手工修改 hosts 还是使用软件来修改,很多人都会遇到修改 hosts 后不生效的情况。其实,这一般是由于 DNS 缓存的原因导致的。
因为系统为了加快用户打开网站的速度,在首次访问网站成功之后,会把 DNS 解析的结果暂时性地保存在本地缓存 (称为 DNS 缓存) 里一小段时间,如果浏览器在“这段时间里”再次打开同一个网址,则会自动从 DNS 缓存里取出结果,而不会请求远程的 DNS 服务器,也不会查询 hosts 文件,从而节省时间提高打开速度。因此用户会遇到有时修改了 hosts 文件但并不生效的情况,一般这时候我们想办法清空 (刷新) 一下系统的 DNS 缓存即可。
怎样清空 DNS 缓存?
- 在 Windows 下命令行执行:ipconfig /flushdns
- 在 macOS 下执行命令:sudo killall -HUP mDNSResponder
- 如果你使用 Chrome 浏览器,那么可以访问:chrome://net-internals/#dns,然后点击「Clear host cache」按钮来清空浏览器里的 DNS 缓存。
如果这样还不生效,那么只能再试试重启电脑了,一般都OK了。要这样还是不行,可能就是你的 hosts 写错了。
总结:
说了那么多,其实 hosts 并不神秘,简单理解它就是个电脑本机的「IP地址<=>域名」的对应表,系统或任何软件都会优先先检查 hosts 里面有没对应的配置,之后才会去查询网上的 DNS 服务器。因此你可以利用 hosts 做很多有趣、有用的事情。而借助 SwitchHosts! 工具,你可以方便地备份hosts,也能快速切换不同的 hosts 配置,甚至使用远程的 hosts 文件等,甚是方便!
备注说明
文字内容素材部门来自:www.iplaysoft.com,如有侵权,联系后删除。