MacOS 修改 hosts 的方法和 hosts 不生效的常见原因及解决方法
目录
MacOS 修改 hosts 的方法和 hosts 不生效的常见原因及解决方法1. 修改 hosts 的方法1.1 终端命令行修改1.2 直接修改系统 hosts 文件1.3 使用 hosts 管理工具修改
2. 不生效的原因分析及解决方法2.1 终端 ping 域名时显示还是原ip2.2 浏览器访问域名时还是访问原ip
1. 修改 hosts 的方法
1.1 终端命令行修改
打开终端 terminal,输入以下命令sudo vim /etc/hosts
输入密码后,就可以显示 hosts 文件内容键盘按【 i 】键(插入),修改hosts文件后,按 【 esc 】 键退出,再按【 ⇧ 】+【 : 】键,再输入【 w 】和【 q 】,保存退出
详细vim操作可参考vim操作手册
1.2 直接修改系统 hosts 文件
点击 「访达」->「前往」->「前往文件夹」,或者打开finder,按组合键【 ⇧ 】+【 ⌘ 】+【 G 】调出弹窗,输入/etc/hosts,确认前往进入文件夹后,复制该文件到桌面,修改成功后保存,并替换掉原先的host文件即可
1.3 使用 hosts 管理工具修改
如:SwitchHosts/iHosts/Gas Mask 等 Hosts 管理工具
2. 不生效的原因分析及解决方法
2.1 终端 ping 域名时显示还是原ip
文件格式不对:检查文件名是否有后缀(.txt等)、文件内容是否存在特殊字符(重点检查ip和域名之间是否有不可见特殊字符)等
2.2 浏览器访问域名时还是访问原ip
服务器请求头设置了keep-alive:一般的网页都会设置 keep-alive,客户端会跟服务器保持长连接,避免多次连接产生网络消耗,只要长连接不断开,页面在请求的时候就不会重新解析域名。因此可以尝试:1. 重启浏览器;2. 打开隐私模式;3. 等待keep-alive失效浏览器存在DNS缓存:需要手动清除浏览器缓存,以chrome为例:在搜索栏输入chrome://net-internals/#dns,点击clear host cache即可系统存在DNS缓存:需要手动清除系统缓存,以MacOS为例:在终端输入以下命令即可(参考:Reset the DNS cache in OS X)sudo killall -HUP mDNSResponder