MacOS修改nameserver DNS服务器

在macOS中,若因VPN或其他软件导致默认nameserver(DNS服务器)地址被强制修改,可通过以下方法手动强制替换DNS服务器地址,确保域名解析正常:


一、通过系统偏好设置(图形化操作)

  1. 打开网络设置

    • 点击左上角苹果图标 > 系统偏好设置 > 网络

    • 选择当前活跃的网络接口(如Wi-Fi、Ethernet或VPN虚拟接口)。

  2. 修改DNS服务器

    • 点击右下角 高级 > 切换到 DNS 标签页。

    • 在 DNS服务器 列表左侧,点击 + 添加新的DNS地址(如8.8.8.8114.114.114.114)。

    • 拖动新添加的DNS地址到列表顶部,确保优先级最高。

    • 点击 OK > 应用 保存配置。

  3. 清除DNS缓存
    终端执行:

killall -HUP mDNSResponder

二、通过终端命令强制修改(推荐)

若VPN或软件锁定了图形化设置,可直接通过终端覆盖DNS配置:

1. 查看当前网络接口名

执行命令获取活跃接口名(如Wi-FiEthernetVPN连接名):

networksetup -listallnetworkservices

2. 强制设置指定DNS服务器

替换[接口名]为实际名称(如Wi-Fi),并指定DNS地址(以8.8.8.81.1.1.1为例):

networksetup -setdnsservers "[接口名]" 8.8.8.8 1.1.1.1

示例

networksetup -setdnsservers "Wi-Fi" 8.8.8.8 1.1.1.1

3. 验证DNS配置

# 查看当前DNS服务器
networksetup -getdnsservers "[接口名]"

# 测试域名解析
dig example.com
nslookup example.com

4. 清除DNS缓存

killall -HUP mDNSResponder  # 刷新缓存
dscacheutil -flushcache     # 辅助清理

三、针对VPN虚拟接口的特殊处理

若DNS被VPN虚拟接口(如utun0)强制覆盖,需直接修改VPN接口的DNS设置:

1. 临时覆盖VPN接口DNS

# 查找VPN虚拟接口名(通常为utun0、utun1等)
ifconfig | grep utun

# 手动设置DNS(以utun0为例)
sudo networksetup -setdnsservers "utun0" 8.8.8.8 1.1.1.1

2. 阻止VPN自动修改DNS

  • 在aTrust VPN客户端设置中,取消勾选 使用VPN的DNS服务器 或类似选项。

  • 若客户端无此选项,需联系VPN管理员调整策略。


四、直接修改配置文件(备用方案)

若上述方法无效,可手动修改/etc/resolv.conf(需关闭SIP保护):

  1. 临时禁用SIP(需重启)

    • 重启Mac,按住 Command + R 进入恢复模式。

    • 打开终端执行:

    csrutil disable
    reboot
  2. 修改DNS配置文件

    • 编辑/etc/resolv.conf(文件可能为只读链接,需先删除后重建):

    sudo rm /etc/resolv.conf
    sudo tee /etc/resolv.conf <<EOF
    nameserver 8.8.8.8
    nameserver 1.1.1.1
    EOF
  3. 重新启用SIP

    • 再次进入恢复模式执行:

    csrutil enable
    reboot

五、验证DNS是否生效

  1. 检查当前使用的DNS服务器

    scutil --dns | grep "nameserver
  2. 测试域名解析延迟

    time dig example.co
  3. 捕获DNS请求流量

    tcpdump -i en0 port 53 -vvn  # 替换en0为实际接口

六、注意事项

  1. 优先级问题
    macOS默认遵循以下优先级:
    手动设置DNS > VPN接口DNS > 系统默认DNS。若VPN强制锁定DNS,需联系管理员调整策略。

  2. 持久性配置
    通过networksetup修改的DNS在重启后仍有效,但某些VPN重连后可能覆盖配置,需结合脚本或自动化工具固化设置。

  3. 防火墙与代理干扰
    确保本地防火墙(如Little Snitch)或代理工具未拦截DNS请求(默认端口UDP 53)。

通过上述方法,可强制替换macOS的nameserver地址,解决因DNS配置异常导致的域名解析问题。


anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/6388.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注