先把“进来”和“出去”分开

系统代理和 TUN 主要解决流量怎样进入客户端;规则模式或全局模式决定进入后的流量怎样选择出口。开启 TUN 并不自动等于所有应用、IPv6、DNS 都走海外节点,规则里仍可存在直连和排除。反过来,全局模式也不会自动抓到忽略系统代理的应用。

方式入口特点常见适用场景
系统代理由遵守系统设置的应用主动使用本地代理浏览器和支持系统代理的软件
应用单独配置该应用指定 HTTP/SOCKS 等入口终端或有独立代理选项的软件
TUN / VPN 接管通过虚拟网络接口与路由捕获所覆盖流量需要接管不读取系统代理的应用

覆盖范围取决于系统、路由和客户端实现。Android 的 VPN API 还允许包含或排除应用;桌面客户端也可能排除网段和网卡。因此“浏览器出口变了”只能证明该浏览器的一次请求,不能证明整机无遗漏。

按需求选最小可用方案

  1. 只有浏览器需要代理时,先使用客户端提供的系统代理,并检查扩展是否另设代理。
  2. Git、curl 或某个独立软件失败时,先看它有没有明确的代理参数或环境设置,结合站内对应教程配置。
  3. 确实需要更广泛接管时,再启用客户端支持的 TUN 服务或移动端 VPN;按官方流程授予必要权限。公司设备先确认允许的设置范围。

系统代理与 TUN 在某些客户端可以协同存在,并不是绝对不能同时开。但初次定位故障时,先逐一验证两种入口更容易找出问题。不要同时调整 DNS、规则、内核和多个 VPN 服务。

做一次不修改系统的显式请求对照

下例是 Windows PowerShell,7890 为本地 HTTP/mixed 端口示例。第一条显式走该入口,第二条不使用 curl 的显式代理;macOS/Linux 改用 curl 与 /dev/null。两条均为普通 GET,不需要管理员权限。

比较本地代理入口与无显式代理请求
curl.exe --proxy http://127.0.0.1:7890 --connect-timeout 8 --max-time 20 -o NUL -w "http=%{http_code}\n" https://example.com
curl.exe --noproxy "*" --connect-timeout 8 --max-time 20 -o NUL -w "http=%{http_code}\n" https://example.com

显式代理成功而浏览器失败,先查浏览器及系统入口;系统代理可用但某应用失败,再查应用是否遵守设置。TUN 开启后成功也不是充分证据:结合连接记录中该应用或域名、命中规则、实际出口一起判断。

TUN 出现副作用时,按现象撤回

副作用优先核对恢复动作
打印机或 NAS 不通局域网路由、排除范围与解析先关 TUN 对照,保留原规则
域名失败,部分连接正常DNS 接管、私人 DNS 和网络分域恢复刚改的 DNS 项后复测
虚拟机或企业内网异常路由重叠、网卡与严格路由回退 TUN;组织网络按管理员方案处理
停止 VPN 后移动端断网系统是否阻止无 VPN 连接按自身需求恢复原阻断策略

不要把 netsh winhttp show proxy 的结果当作所有 Windows 应用的统一状态;它查询的是 WinHTTP。TUN、浏览器代理和其他网络栈有各自的路径。也不要看到 DNS 问题就复制一整份未知配置覆盖当前订阅。

完成验证与正常退出

  1. 用日常规则测试浏览器、原来失败的应用和必要内网服务。IPv6、DNS 与隐私要求另按泄露检查教程验证。
  2. 在客户端正常关闭 TUN 并清除自己设置的系统代理,再从托盘退出;不要只结束窗口。
  3. 重新访问可直连网站,确认没有遗留代理。若还有故障,保留原配置并按 Windows 或 Mac 网络恢复教程逐项检查。