马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、hosts 文件是干什么的
访问一个域名时,系统先查本地 hosts 文件,查不到才去问 DNS 服务器。所以往 hosts 里写一条记录,相当于在本地给这个域名强制指定了一个 IP,优先级比任何 DNS 都高。本地开发和测试里常用它来做域名指向:把域名指到 127.0.0.1 屏蔽广告、把测试域名指到内网某台机器,都是这个原理。
macOS 上的位置和 Linux 一样,都在 /etc/hosts,用 sudo 才能改。
二、第一步:打开终端
最快的方式是按 Command + 空格 调出聚焦搜索,输入 terminal 或者中文"终端",选中回车就能打开终端控制台。
三、第二步:用 sudo 打开 hosts
sudo vi /etc/hosts
回车之后要求输入密码,输入本机用户密码即可(输入过程中屏幕不会有任何显示,这是正常的,不是卡了)。输完回车就进入 vi 编辑器了。
四、第三步:改内容并保存退出
进入 vi 后默认是只读浏览状态,要先按一下 i 进入编辑模式,这时底部会出现 INSERT 提示。然后按下面这个格式加一行:
192.168.1.100 my-test.local
格式是"IP 空格 域名",一行一条。写完之后按 Esc 退出编辑模式,输入 :wq 回车保存并退出(w 是写入,q 是退出)。
如果改错了想放弃,就用 :q! 直接退出不保存。
五、第四步:让改动生效
多数情况下保存hosts 之后刷新一下浏览器就生效了。如果还是按老 IP 访问,再补两步:
- 清一次 DNS 缓存:macOS 上跑
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder。
- 确认没有代理:开了代理软件时请求会走代理,hosts 就不起作用,把代理关掉再试。
六、验证写进去了没有
cat /etc/hosts
dscacheutil -q host -a name my-test.local
第一条看文件内容,第二条问系统缓存里这个域名现在解析到哪儿,两条都对得上就说明生效了。
七、几个容易踩的坑
- 忘记 sudo:直接 vi 打开是只读的,写进去保存会报只读错误。
- 改完没退出编辑模式就执行
:wq,会被当成普通文字输入进去。
- 行尾多了空格或者用了中文标点,解析会失败,格式严格是半角空格分隔。
- 把不存在的公网域名胡乱指向一个 IP,可能导致全站偶发打不开,改完记得回退。
八、小结
在 Mac 上改 hosts 的流程就是三步:Command + 空格 打开终端、sudo vi /etc/hosts 进去加 IP 加域名、:wq 保存退出,必要时再清一次 DNS 缓存。它本质上就是一个优先级最高的本地域名解析表,用来做本地指向、屏蔽域名都很方便,唯一要小心的是改完确认一下,别把正常访问也一起挡了。
qidao123.com企服评测-应用市场 编辑提示
|