macOS系统
这是因为macOS使用系统配置缓存管理DNS,直接修改 /var/run/resolv.conf 是无效的(它会在每次网络变化或重启时被覆盖)。
正确的修改DNS方法(任选其一):
方法一:通过系统偏好设置(推荐)
打开 系统偏好设置 > 网络
选择当前使用的网络接口(如Wi-Fi或以太网)
点击 高级
切换到 DNS 标签页
点击左下角 + 添加DNS服务器
例如:8.8.8.8、1.1.1.1 等
点击 好 然后 应用
方法二:使用命令行(networksetup)
# 查看所有网络服务
networksetup -listallnetworkservices
# 设置Wi-Fi的DNS(替换为你的服务名称)
networksetup -setdnsservers Wi-Fi 8.8.8.8 1.1.1.1
# 清空DNS设置(恢复为DHCP分配)
networksetup -setdnsservers Wi-Fi "Empty"
方法三:创建配置文件(适用于高级用户)
创建 /etc/resolver/ 目录下的配置:
# 创建resolver目录
sudo mkdir -p /etc/resolver
# 为特定域名设置DNS
sudo tee /etc/resolver/google < nameserver 8.8.8.8 EOF 为什么直接修改resolv.conf无效? macOS使用 resolv.conf 是由 resolvd 动态生成的 真正的配置存储在 系统配置数据库 中 /var/run/resolv.conf 只是一个临时映射 验证DNS是否生效: # 查看当前DNS配置 scutil --dns # 查看当前使用的DNS服务器 cat /etc/resolv.conf # 测试DNS解析 nslookup example.com dscacheutil -q host -a name www.apple.com 永久生效的要点: 使用上述系统提供的方法修改,而不是直接编辑 /var/run/resolv.conf 或 /etc/resolv.conf,这样配置会被保存并在重启后依然有效。