macOS系统

2026-08-17 04:07:07

这是因为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,这样配置会被保存并在重启后依然有效。