← 返回学习中心 · 账号与使用安全OiOi Academy
账号与安全 · 03

DNS 泄漏:代理开了,运营商却全都知道

整理自"无人知晓的 Luke"的 YouTube 视频文字稿:DNS 泄漏原理 + macOS / iOS / Windows / Android / 软路由五大平台修复。

原作者 无人知晓的Luke 来源 YouTube 发布 2026-05-11
🧭

开篇:代驾类比——你还没上车就暴露了

你以为开了代理软件翻墙就安全了?原作者 Luke 说:运营商其实一直都知道你在翻墙,也知道你访问了哪些境外网站——不是猜的,是可以非常确切地知道。

原理很简单:你访问每个网站前,系统要先把网址翻译成 IP 地址,这个翻译过程靠 DNS(域名系统) 完成。如果 DNS 请求没走代理、而是直接发给了运营商,就会造成泄漏。

高中生类比
想象你叫了代驾想悄悄去某个地方,正常只有司机知道你去哪。但 DNS 泄漏就像你还没上车,就站在路边大声问别人"Google 怎么走、YouTube 在哪里"——别人看不到车里做了什么,但已经知道你下一步要去哪。(来自 Luke 原话)

更麻烦的是泄漏原因非常多:系统层面、浏览器层面、IPv6,以及有些代理软件本身。这期视频覆盖 macOS、iPhone、Windows、Android、软路由(OpenWrt / PassWall)五大平台,适合 Shadowrocket 小火箭、V2RayN、V2RayNG、PassWall 用户。

合规说明:以下内容整理自原作者的视频文字稿经验分享,仅作信息学习参考;文中作者推荐的代理、指纹浏览器等服务链接为推广内容(AFF),本课仅中性转述,不构成推荐。

记住:一句话结论:开了代理不等于匿名——DNS 请求必须也走代理、走加密,否则运营商看得一清二楚。
🔍

动手前:先检测,用多个网站交叉验证

以下来自 Luke。修复前先打开下面检测网站看现状,修复完再刷新验证:

  • https://ipleak.net/
  • https://browserleaks.com/dns
  • https://dnsleaktest.com/
  • https://ippure.com/

判断标准:代理保持开启,等检测完成——如果结果里出现了中国的图标/中国本土 DNS 服务商,就说明发生了 DNS 泄漏。

避坑
很多教程没提的关键细节:不同的检测网站在你的代理规则里可能命中不同的分流策略(有的走直连、有的走代理),检测方法也不完全相同。只依赖某一个网站不全面,最稳妥是用多个网站交叉验证。
高中生类比
只用一个网站检测,就像只量一次体温就下结论;多测几个、交叉对比,结论才靠谱。
🍎

macOS 修复:小火箭 + Chrome 两处

以下来自 Luke,以小火箭(Shadowrocket)为例。

代理软件层(小火箭配置):

  1. 打开小火箭 → 配置 → 选中当前配置文件(如 default.conf)→ 右侧圆圈进入配置设置 → 通用
  2. 如果启用了 IPv6,请关掉(减少 IPv6 解析导致的泄漏)
  3. 找到「DNS 复写」:把默认的 system 删掉(system = 用手机系统默认 DNS = 运营商分配的,会泄漏)
  4. 填入两条 Cloudflare 加密 DNS(DoH,DNS over HTTPS):
https://cloudflare-dns.com/dns-query#proxy
https://security.cloudflare-dns.com/dns-query#proxy
  1. 把「备用 DNS」里的内容全部删掉,只留上面两条(防止主 DNS 不可用时退回系统 DNS)
  2. 拉到底部找到「劫持 DNS」,填入 8.8.8.8:53——相当于在网络出口装一道检查站,拦截那些不走系统设置、用传统 53 端口偷发 DNS 请求的应用,统一接管
  3. 点右上角确认,等小火箭自动更新应用新 DNS 设置

浏览器层(如果你还用 Chrome):

  1. Chrome 设置 → 搜索 DNS → 安全 → 关掉"使用安全 DNS"(它本质是 DoH,但会让谷歌绕过系统 DNS 配置、独立发起 DNS 请求,不走代理隧道)
  2. 地址栏输入 chrome://flags,搜索 QUIC,把 Experimental QUIC Protocol 设为 disabled,重启(QUIC 基于 UDP,很多代理软件对 UDP 处理不完善,代理规则可能覆盖不到)
高中生类比
传统 DNS 像寄明信片,路上的人都能看内容;DoH 像把查询装进加密信封再寄,路上的人看不到里面写了什么。(来自 Luke 原话)
记住:验证:回到检测网站刷新,DNS 服务商从中国本土变成 Cloudflare,说明防护生效。
📱

iOS 修复:和小火箭 macOS 思路一样

以下来自 Luke,思路和 macOS 基本一样:

  1. 先打开检测网站测当前环境(出现中国 DNS 服务商 = 已泄漏)
  2. 打开小火箭 → 底部「配置」→ 当前配置文件 → 右侧按钮 → 第一行「通用」
  3. 「DNS 复写」填入两条 Cloudflare 加密 DNS(同 macOS),有备用 DNS 就删掉
  4. 拉到底部「劫持 DNS」填入 8.8.8.8:53(强制拦截所有绕过代理的 DNS 请求)
  5. 右上角确认,等配置生效,回浏览器刷新验证——中国 DNS 服务商消失、全变成 Cloudflare 即达标
🪟

Windows 修复:三层,最麻烦

以下来自 Luke。Windows 是步骤最多的平台,因为它有个 macOS 没有的系统级问题,要从系统层、代理软件层、浏览器层依次处理。

① 系统层:关掉"智能多宿主名称解析"

Windows 解析域名时会同时向所有网卡广播 DNS 请求,谁先回来用谁的结果——本地运营商离你最近、响应最快,几乎每次都是它先"抢答",DNS 请求根本没走代理。关闭方法:按 Win+R,输入 gpedit.msc 回车 → 计算机配置 → 管理模板 → 网络 → DNS 客户端 → 找到「关闭智能多宿主名称解析」→ 双击选「已启用」→ 确认。

② 代理软件层:开 TUN / 虚拟网卡模式

  • V2RayN(作者用 7.0 版,建议去 GitHub 2dust/v2rayN 下最新版):左下角开启 TUN 模式——在系统里虚拟出一张网卡,把所有流量(含 DNS)都路由进来统一接管;用 sing-box 内核的话也可以把 Fake IP 打开
  • Clash:在首页或设置 → 系统设置里开启虚拟网卡模式(类似 TUN),注意别和系统代理模式同时开

③ 浏览器层:Chrome 关"使用安全 DNS"、关 QUIC(chrome://flags → disabled → 重启),原理同 macOS。

记住:验证:检测页的 DNS 服务商全部显示为你的代理节点(作者实测显示日本节点,与当前代理一致),说明三层修改都生效了。
高中生类比
智能多宿主像全班同学同时抢答,离老师最近的本地运营商永远先举手;关掉它,等于规定"只许代理这一个同学回答"。
🤖

Android 修复:V2RayNG / Clash

以下来自 Luke,以 V2RayNG 为例:

  1. 打开软件 → 设置 → 第一行「启用流量探测」确认已开启(默认应该是开的)——开启后能正确识别 DNS 请求
  2. 下拉找到 VPN DNS,确认填了 8.8.8.8 或 1.1.1.1(分别是谷歌和 Cloudflare 的 DNS),没有就手动填上
  3. 回浏览器打开检测页刷新:没有国内 DNS 服务商、全是境外(含 Cloudflare)即完成

用 Clash 的话,在设置里同样开启 TUN 模式。

📡

软路由修复:PassWall,一次配好全家受益

以下来自 Luke,以 PassWall 为例。软路由是整个局域网的出口,配好之后手机电脑都不用单独配。

  1. 先打开检测网站确认泄漏(出现国内 DNS 服务商)
  2. 打开 PassWall 控制面板 → DNS 选项 → 把「默认 DNS」改为远程 DNS——所有 DNS 请求走远程解析、发到境外服务器,不经本地服务商;Fake DNS 和重定向也建议一并开启
  3. 如果点进 DNS 没看到「远程 DNS」选项:先把模式里的「中国列表」设为直连,保存应用后才会出现
  4. 保存并应用,回检测页刷新:国内 DNS 服务商全部消失、变为境外即完成
借自《Mac 纯国内网络无翻墙|Claude CLI 安装教程》原文配图:CC-Switch 本地代理接管界面——DNS 相关设置通常就在这类代理软件的配置页里
借自《Mac 纯国内网络无翻墙|Claude CLI 安装教程》原文配图:CC-Switch 本地代理接管界面——DNS 相关设置通常就在这类代理软件的配置页里
借自《Mac 纯国内网络无翻墙|Claude CLI 安装教程》原文配图:CC-Switch 配置界面(续)
借自《Mac 纯国内网络无翻墙|Claude CLI 安装教程》原文配图:CC-Switch 配置界面(续)

本课讲透的是 DNS 泄漏;另一条常见旁路是 WebRTC 泄漏(浏览器绕过代理直接暴露真实 IP 和位置),详见《05 课 · WebRTC 泄露》。评论区有人总结得很到位:"网络隐私不是一个开关,而是一整套配置。"

词

术语翻卡:点卡片看解释

DNS
DNS (Domain Name System)
域名系统:把网址(如 google.com)翻译成 IP 地址的"电话簿",上网前必经的一步。
DNS 泄漏
DNS leak
DNS 查询没走代理、直接发给运营商,导致对方知道你访问了哪些网站。
DoH
DNS over HTTPS
加密的 DNS 查询方式,把查询装进 HTTPS 加密通道,外界看不到查了什么。
劫持 DNS
DNS hijacking (in proxy)
代理软件在网络出口拦截所有传统 53 端口的 DNS 请求,统一接管,防止应用偷发。
智能多宿主名称解析
Smart multi-homed name resolution
Windows 特性:向所有网卡同时发 DNS 请求、谁快用谁,导致本地运营商总抢答。
TUN 模式
TUN mode
代理软件虚拟出一张网卡,把系统全部流量(含 DNS)接管进来统一处理。
远程 DNS
Remote DNS
软路由 PassWall 的选项:DNS 查询发到境外服务器解析,不经过本地运营商。
测

自测一下:点问题展开参考答案

DNS 负责把网址翻译成 IP;如果这一步没走代理而是直发运营商,对方就知道你访问了哪些网站。泄漏原因很多:系统层、浏览器层、IPv6、代理软件自身。

代理保持开启,打开 ipleak.net / browserleaks.com/dns / dnsleaktest.com / ippure.com 等检测站;若结果出现中国图标或中国本土 DNS 服务商即泄漏。作者强调多站交叉验证。

DNS 复写填两条 Cloudflare DoH(cloudflare-dns.com/dns-query#proxy 等);劫持 DNS 填 8.8.8.8:53 拦截绕过代理的传统请求。删备用 DNS 是防止主 DNS 不可用时退回系统 DNS。

Windows 会向所有网卡同时广播 DNS 请求、谁先回来用谁;本地运营商离得近几乎每次抢答,DNS 根本没走代理。需在组策略里关闭它,再开 V2RayN/Clash 的 TUN(虚拟网卡)模式。

Chrome 的安全 DNS 会绕过系统 DNS 配置独立发起请求,不走代理隧道;QUIC 基于 UDP,代理软件对 UDP 处理不完善、规则可能覆盖不到,都会造成泄漏。