在从事运维工作长达八年的时间里, 我与DNS以及域名解析相关的各种情况建立了大量的接触和处理经验。
在最近的阶段, 同事们经常会向我提出关于翻墙hosts这个方面的询问问题, 所谓翻墙hosts的说法, 其实就是指利用本地计算机系统中的hosts文件来执行从域名到IP地址的强制绑定操作, 以此来避开常规情况下所需要的DNS查询这一整套流程机制。
翻墙hosts怎么用
在 Windows 系统中, 你需要找到 C:\Windows\System32\drivers\etc\hosts 这个路径, 而在 Linux 系统下, 对应的路径则是 /etc/hosts。请确保你用管理员身份把这个文件打开。然后, 在里面单独加一行内容为 IP 后面跟域名的文本。
添加完成之后, 保存好这个修改。改完之后, 别忘了运行一下 ipconfig /flushdns 这条命令来刷新缓存。除此之外, 浏览器本身可能也会缓存旧的解析结果。如果遇到这种情况的话, 建议你尝试强制刷新页面, 或者干脆打开一个隐身窗口去试一试。
在真实的操作过程中是存在一个隐患的, 如果你去绑定的话, 选的是那个CDN节点的IP地址, 那么这个IP地址是可能会每隔几个小时就变得不一样的, 你把它写在那个映射关系里的话, 等到第二天的时候就会发现这个映射是彻底作废了, 所以需要你去反复地更新。
翻墙hosts可靠吗
这一点不太靠谱。因为hosts记录是静态配置的, 一旦目标IP发生了改变, 所有的设定就会立刻失效。
更为棘手的情况出现在TLS环节, 当浏览器直接通过IP地址进行连接时, 由于证书是针对域名签署的, 系统会直接报出校验不匹配的错误, 导致网页无法正常打开。因此, 仅仅依靠修改hosts文件的方法无法解决绝大多数采用加密传输的网站问题。
还有一层安全方面的顾虑, 也就是hosts文件如果被人恶意修改了, 那么对应的域名就会指向攻击者一方的IP地址, 这时候你所输入的那些账号和密码就会完全暴露给外人, 所以建议大家平时要经常用nslookup这个工具去检查一下解析出来的结果究竟是不是正确的。
hosts这个工具是一个用来应急的手段, 虽然能够使用,但不需要指望它具有万能的效力。真正想要弄清楚网络访问的底层逻辑的话, 应该把DNS、TLS以及路由这几层内容串联起来进行观察, 仅仅靠拧一个螺丝是无法达到紧密的效果的。