hosts文件目录位于 C:\Windows\System32\drivers\etc,默认没有权限修改,需要手动修改权限后才能保存生效。步骤如下:
1. 选中hosts文件,右键选择点击【属性】,
2. 默认勾选了【只读】,取消勾选;
3. 切换到【安全】选项卡,点击【编辑】;
4. 在hosts 的权限窗口选中正在使用的组或用户名,勾选允许【修改】和【写入】,点击【应用】;
5. 以记事本格式打开hosts文件,输入ip 地址和域名(之间加一个空格)保存即可。
6. 打开浏览器设置,清空浏览器缓存,即可访问。
默认在 /etc/hosts,可通过打开terminal终端命令行输入
vim /etc/hosts
进行修改,保存后生效。
在测试不同环境时常常需要变更系统的hosts IP,手动修改hosts文件次数多了比较麻烦,这时就可以使用SwitchHosts工具管理hosts。SwitchHosts 是一个免费开源软件, 支持Windows和MAC跨平台安装。
下载安装
https://github.com/oldj/SwitchHosts/releases/tag/v4.1.2
使用参考
https://github.com/oldj/SwitchHosts/blob/master/README_cn.md
无论是手工修改 hosts 还是使用软件来修改,可能都会遇到修改 hosts 后不生效的情况,一般是由于 DNS 缓存的原因导致的。
因为系统为了加快用户打开网站的速度,在首次访问网站成功之后,会把 DNS 解析的结果暂时性地保存在本地缓存 (称为 DNS 缓存) 里一小段时间,如果浏览器在“这段时间里”再次打开同一个网址,则会自动从 DNS 缓存里取出结果,而不会请求远程的 DNS 服务器,也不会查询 hosts 文件,从而节省时间提高打开速度。
因此用户会遇到有时修改了 hosts 文件但并不生效的情况,一般这时候我们想办法清空 (刷新) 一下系统的 DNS 缓存即可。
在 Windows 下命令行执行:
ipconfig /flushdns
在 macOS 下执行命令:
sudo killall -HUP mDNSResponder
使用 Chrome 浏览器,可以访问:chrome://net-internals/#dns,然后点击【Clear host cache】按钮来清空浏览器里的 DNS 缓存。
如果还不生效,再试试重启电脑。