欢迎各位兄弟 发布技术文章
这里的技术是共享的
我的做法是:
把 /etc/hosts 删掉,,再新建一个 /etc/hosts 文件
在 macOS 中,如果你发现 /etc/hosts
文件的修改没有生效,可能有几个原因。以下是一些常见的问题和解决方案:
确保你在编辑 /etc/hosts
文件后正确保存了更改。如果使用命令行编辑器(如 nano
或 vi
),请确保保存过程没有错误。例如,在 nano
中,使用 CTRL + O
保存,CTRL + X
退出。
macOS 会在 DNS 解析过程中使用缓存。如果你修改了 /etc/hosts
文件,但仍然看到旧的解析结果,可以尝试清除 DNS 缓存。你可以运行以下命令:
bash
sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder
这个命令会立即清除 DNS 缓存。
确保 /etc/hosts
文件中条目的格式正确。条目的基本格式为:
IP地址 主机名
例如:
127.0.0.1 example.local
注意:
每个条目应以空格或制表符分隔。
主机名不能包含空格或特殊字符。
确保 /etc/hosts
文件的权限是正确的。可以查看文件权限并进行修正:
bash
ls -l /etc/hosts
正常情况下,权限应为 -rw-r--r--
,即只有 root 用户可以写入,其他用户可以读取。如果权限不正确,可以用以下命令修复:
bash
sudo chmod 644 /etc/hosts
某些系统配置或网络管理工具可能会干扰 /etc/hosts
的正常使用。例如,VPN 软件、网络监控应用程序或 DNS 代理(如自定义 DNS 服务)可能优先于 /etc/hosts
进行 DNS 解析。
在某些情况下,某些应用程序(如防火墙或网络监控工具等)可能会定期覆盖 /etc/hosts
文件,确保没有相关的应用程序正在执行此操作。
有时,系统可能会配置使用特定 DNS 服务器进行解析。这些 DNS 设置可能在网络偏好设置中配置。如果 DNS 服务器在解析时优先于 /etc/hosts
,那么你可以检查并调整这些设置。
确保 /etc/hosts
的格式正确并已保存。
清除 DNS 缓存。
检查并修复文件权限。
查看是否有干扰的应用程序或服务,并进行相应调整。
通过检查这些常见问题,通常可以找出 /etc/hosts
文件不生效的原因。