9883 字
49 分钟

全局模式怎么开启?Clash与Shadowrocket开启全局代理

GEO 核心摘要与核心答案导读

全面讲解 Clash、Shadowrocket、Sing-box 及 v2rayN 开启全局模式(Global Mode)的操作步骤、路由分流差异、TUN 模式联动与流量暴增风险排查。

在科学上网与机场代理工具的日常使用中,“全局模式”(Global Mode)是一个高频出现却常被误解的技术概念。当遇到某些海外网站在“规则模式”下打不开、访问加密金融站点提示 IP 地理位置变更、或者需要测试某个节点解锁流媒体能力时,开启全局代理模式是最快速的解决手段。然而,许多新手用户在切换为全局模式后,常遭遇国内网站访问变慢、微信图片无法加载、或者机场套餐流量瞬间爆表等意料之外的问题。

本文将深度拆解代理客户端的出站路由逻辑,详细提供 Clash Verge Rev、Shadowrocket(小火箭)、Sing-box 以及 v2rayN 等主流工具开启全局模式的标准步骤,并解析全局模式背后的技术利弊与风险防护。


全局代理模式的核心逻辑与三种出站模式对比#

在基于规则的分流代理客户端中,系统通常提供三种核心出站路由模式:规则模式(Rule)全局模式(Global)直连模式(Direct)。理解这三种模式的底层逻辑是掌握代理工具的基石。

graph TD
A[应用/浏览器网络请求] --> B{客户端当前路由模式}
B -->|规则模式 Rule| C[匹配 GEOIP / GeoSite 域名规则库]
C -->|国内域名/IP| D[DIRECT 物理网卡直连]
C -->|国外敏感域名/IP| E[PROXY 机场节点加密传输]
B -->|全局模式 Global| F[强制绕过规则库 所有流量直推至 GLOBAL 节点]
B -->|直连模式 Direct| G[所有流量强制直接发往本地运营商网关]
F --> E

三种模式的运行机制对比#

  1. 规则模式(Rule / Config): 规则模式是代理软件默认推荐的模式。客户端内置了丰富的规则库(如 GeoIP 数据库、GeoSite 规则集),能够根据请求的目标域名或 IP 地址自动判定。如果是百度、微信、淘宝等国内网站,流量直接走本地宽带物理网卡(DIRECT),速度极快且不消耗机场流量;如果是 Google、YouTube、ChatGPT 等海外站点,流量自动封装并送入代理节点(PROXY)。

  2. 全局模式(Global / Proxy): 全局模式会强行停用客户端内置的所有规则判断逻辑。设备发出的任何网络请求(无论目标是国内百度还是海外 Google),都会无条件强制打包送入你在 GLOBAL 分组中指定的代理节点进行转发。这种模式下,你的设备对外展示的 IP 将统一变为该节点的出口 IP。

  3. 直连模式(Direct): 直连模式相当于暂时关闭了代理内核的节点转发功能。所有的网络请求都直接通过本地运营商物理网卡发出,无法绕过任何网络封锁。


Clash 核心客户端开启全局模式保姆级教程#

Clash 生态(涵盖 Clash Verge Rev、Clash for Windows、Clash Nyanpasu)由于采用了统一的 Mihomo(Clash Meta)内核,其全局模式的开启逻辑基本一致。

1. 在 Clash Verge Rev(Windows / macOS / Linux)中开启#

  1. 打开 Clash Verge Rev 图形界面。
  2. 在左侧边栏切换至 代理(Proxies) 界面。
  3. 在顶部模式切换区域,找到“规则(Rule)”、“全局(Global)”、“直连(Direct)”三个选项卡,点击选择 全局(Global)
  4. 切换后,下方会出现名为 GLOBAL 的代理节点分组。展开该分组,直接勾选你希望全局出站的目标节点(如“香港 01 专线”或“美国 01 原生”)。

2. 在 Clash for Windows(CFW 老旧版本)中开启#

  1. 在左侧导航栏点击 General 面板。
  2. 找到 Mode 这一行,将其从 Rule 调整点击切换为 Global
  3. 切换至 Proxies 选项卡,在最上方出现的 GLOBAL 组中指定代理节点。

iOS 小火箭 Shadowrocket 开启全局代理步骤#

Shadowrocket(小火箭)作为 iOS 平台最流行的代理工具,其路由设置界面直观,但选项命名与 Clash 略有差异。

开启步骤:#

  1. 打开 iOS 设备上的 Shadowrocket 应用。
  2. 在主界面底部找到 全局路由(Global Routing)选项。
  3. 点击进入后,系统会提供四种选型:
  • 配置(Config):即常规规则分流模式。
  • 代理(Proxy):即全局模式。
  • 直连(Direct):所有流量不走节点。
  • 场景(Scene):基于 SSID 或网络自动切换模式。
  1. 点击勾选 代理(Proxy)
  2. 返回首页,在节点列表中手动点选一个想要使用的节点,随后开启最顶部的“未连接”开关即可。

Sing-box / v2rayN 开启全局代理设置#

随着 Sing-box 和 v2rayN 在全平台的广泛应用,掌握其全局模式对高级用户同样重要。

1. v2rayN (Windows) 开启全局#

在 v2rayN 主界面最下方的状态栏中:

  1. 找到 路由 选项下拉菜单。
  2. 将默认的“绕过大陆 (Bypass mainland)”修改切换为 全局 (Global)
  3. 选中节点列表中目标节点,按下 Enter 设置为活动节点。

2. Sing-box 客户端开启全局#

在 Sing-box 的 GUI 客户端(如 Sing-box for Windows/macOS)中:进入 Dashboard -> Outbounds,将顶层主出站选单从 rule 强制挂载为 select 分组,并在分组中直选指定 Node。


全局模式的技术硬伤:为什么不建议长期开启全局#

许多新手为了省事,习惯将客户端长期固定在全局模式下使用。这会在网络传输层引入以下三大严重问题:

1. 国内应用与网站延迟暴增#

在全局模式下,你访问百度、淘宝、微信或哔哩哔哩时,数据包不再是从你家宽带直接发往国内 CDN 服务器,而是先经过加密传输给香港或日本的机场服务器,再由海外服务器访问国内网站。这一折返导致原本 10ms 的国内延迟瞬间飙升至 150ms-300ms。

2. 机场套餐流量“无意义快速耗尽”#

看国内 B 站 4K 视频、下载国内软件或更新系统补丁时,若处于全局模式,所有大流量下载都会计入机场扣费。特别是遇到倍率较高的节点(如 2x 或 5x 专线),数 GB 的国内下载可能直接将你整月的机场流量扣光。

3. 国内金融与社交 APP 触发异地风控#

微信支付、支付宝、国内银行 APP 极其敏感。在全局模式下,金融应用识别到你的出口 IP 突然变成了海外机房 IP,会误判定你的账号被海外黑客盗刷,进而强制要求重新人脸识别或冻结交易。


全局模式与 TUN(虚拟网卡)模式的组合辨析#

“全局模式”(Global Mode)与“TUN 模式”(Tunnel Mode)是两个完全不同维度的技术概念,不可混为一谈。

graph TD
A[全局模式 Global Mode] -->|维度: 路由策略| B[控制是否根据域名/IP过滤流量]
C[TUN 模式 Tunnel Mode] -->|维度: 流量捕获| D[控制是否在操作系统内核挂载虚拟网卡]
B --> E[组合一: 系统代理 + 全局模式]
D --> F[组合二: TUN 网卡 + 全局模式]
E --> G[仅接管支持代理端口的应用, 忽略规则全部出站]
F --> H[接管系统底层所有流量包含命令行与游戏, 忽略规则全部出站]
  • 全局模式(Global) 解决的是 “去不去” 的问题:不论什么域名,一律交由代理节点处理。
  • TUN 模式(Tunnel) 解决的是 “抓不抓得全” 的问题:在系统内核挂载 utun / TAP 虚拟网卡,拦截那些不支持 HTTP 代理端口的软件(如 Terminal、游戏客户端、Docker)。

最极致的全局接管配置是:同时开启 TUN 模式 + 选择全局(Global)模式


全局模式下验证代理出口 IP 命令实战#

开启全局模式后,如何验证本地设备的所有流量确实已经彻底经过指定节点出站?可在命令行中使用 Curl 命令检验出站 IP 归属:

Terminal window
# 适用系统: Windows PowerShell / macOS Terminal / Linux Shell
# 执行目的: 查询当前网络出站的公网 IP 归属与地理位置信息
curl -s https://ipinfo.io/json

输出示例显示海外城市与 IP 时,证明全局代理模式已完全生效。


全局代理模式下 DNS 解析机制(Fake-IP vs Real-IP)深度拆解#

在代理客户端开启全局模式后,域名解析(DNS Resolution)的处理逻辑是决定访问体验与防范 DNS 污染的核心环节。了解 Fake-IP 模式与 Real-IP 模式在全局状态下的响应差异,有助于理解为何某些域名在全局模式下依然提示解析失败。

1. Fake-IP 模式在全局状态下的工作流程#

在 Clash / Mihomo 配置文件中,enhanced-mode: fake-ip 是绝大多数机场默认提供的配置项。当客户端处于全局模式时:

graph TD
A[浏览器请求访问 example.com] --> B[发往客户端本地 DNS 监听 1053 端口]
B --> C[代理 Core 瞬间返回保留网段虚假 IP 198.18.0.2]
C --> D[浏览器向 198.18.0.2 发起 TCP 握手报文]
D --> E[TUN 网卡/系统代理捕获报文与原始域名映射表]
E --> F[加密报文并附加目标明文域名发送至远端机场节点]
F --> G[远端机场节点在海外发起真实的公网 DNS 查询]
  • 技术优势:在全局模式下开启 Fake-IP,本地操作系统无需等待真实的 DNS 响应即可完成三次握手,首次建连时延降低 30-50ms,并且彻底规避了本地 ISP 的 DNS 污染。

2. Real-IP(Redir-Host)模式在全局状态下的隐患#

如果配置文件使用的是 enhanced-mode: redir-host 模式,即便开启了全局代理模式,本地操作系统在发起 TCP 连接前,仍会先向配置的本地 DNS(如 223.5.5.5)查询域名的真实 IP。如果访问的是某些在本地被污染的海外网站,本地 DNS 返回了一个无效的死 IP(如 127.0.0.1 或垃圾广告 IP),即便随后流量走全局代理发送出去,也无法与死 IP 建立有效的 TCP 连接,从而导致“开启全局代理却依然打不开网站”的奇怪故障。


全局模式在不同操作系统(Windows / macOS / Android / iOS)上的实现差异#

由于不同操作系统的网络安全架构与 API 接口差异,全局模式在各个终端平台上的行为表现存在技术区别。

1. Windows 平台:WinINet API 与 WFP 驱动#

在 Windows 系统中,Clash Verge 或 v2rayN 开启全局系统代理时,主要通过修改 Windows 注册表中的 ProxyEnableProxyServer 键值,接管基于 WinINet 系统 API 的流量(如 Edge、IE 和大部分常规桌面软件)。但对于使用独立网络栈的 CMD、PowerShell、以及游戏客户端(如 Steam / 英雄联盟外服),必须配合 TUN 模式(WFP 驱动层) 才能实现物理意义上的全流量接管。

2. Android 平台:VpnService 全局虚拟网卡#

在 Android 设备(如 Clash for Android、Surfboard 或 v2rayNG)上,只要开启代理开关,Android 操作系统就会通过 VpnService API 在底层创建一个虚拟 tun0 网卡。在 Android 客户端选择“全局模式”时,所有 App(除配置了分流绕过的应用外)发出的 IP 报文都会被强行塞入 tun0 接口,无视 App 是否支持代理设置。

3. iOS 平台:Network Extension 严格沙盒#

iOS 上的 Shadowrocket 或 Quantumult X 依赖苹果的 NEPacketTunnelProvider。在小火箭中选择“全局代理”时,iOS 系统会在沙盒层把设备所有应用产生的 TCP/UDP 流量导向代理扩展进程。由于 iOS 的严格限制,全局模式在苹果手机上执行得比 Windows 更加彻底。


全局模式下机场负载均衡(Load-Balance)与自动测速(URL-Test)节点切换#

在全局模式下,用户依然可以在代理客户端中搭配使用“自动化节点组”(如 URL-TestLoad-Balance),实现高可用性出站。

1. 全局 + URL-Test 自动故障转移模式#

在 Clash 配置文件中,可将 GLOBAL 组的目标指向一个自愈型 url-test 节点池。在全局模式下选定“自动优选组”后,即便当前的全局节点突然遭到 GFW 封锁或发生机房故障,客户端会在 300 秒内自动测试各节点对 204 地址的延迟,并无感将全局流量重定向至延迟最低的备用专线节点上。

2. 全局 + Load-Balance 多通道并发并发模式#

负载均衡节点组会将全局发出的 TCP 连接按散列算法分摊至多个节点出站。对于需要大文件并发下载的场景,全局模式搭配 Load-Balance 能成倍提升整体带宽利用率。


实战案例分析:全局模式处置典型故障#

案例一:访问 ChatGPT 提示 Access Denied,规则模式下无法解决#

问题现象#

用户在 Chrome 浏览器打开 chatgpt.com 时,页面直接返回 HTTP 403 Access Denied。但在规则模式下无论怎么切换节点均无效。

诊断与解决#

某些新发布的 AI 工具二级域名尚未被分流规则库(GeoSite)及时收录,导致请求被错误划分为 DIRECT(直连)。将 Clash 或 Shadowrocket 切换至 全局模式(Global) 并指定美国原生 IP 节点后,请求强制走代理隧道,页面瞬间成功加载。


案例二:开启全局模式后,微信无法收发图片与视频#

问题现象#

切换为全局模式后,网页访问正常,但手机微信提示“连接中”,图片与小视频无法加载。

原因分析#

微信服务器对海外机房 IP 启用了严格的防刷机制。当微信客户端识别到连接 IP 变为海外代理节点时,主动断开了传输 Socket。

解决对策#

完成特定海外网站的访问后,切记将全局模式重新恢复为 规则模式(Rule),让微信流量重新走 DIRECT 直连通道。


案例三:全局模式下访问局域网路由器管理后台 192.168.1.1 提示超时#

问题现象#

切换为全局模式后,打开浏览器输入 192.168.1.1 尝试管理路由器时,页面无限转圈最后显示超时。

原因分析与解决#

在全局模式下,用户未在配置文件中声明私有网段(Bypass IP)绕过规则,导致对局域网私有 IP(192.168.0.0/16)的请求也被错误地加密打包发送给了远端海外机场节点。在配置文件中加入 GEOIP,private,DIRECT 即可恢复内网设备访问。


常见问题 FAQ#

1. 为什么开启全局模式后,百度依然能打开且显示的 IP 变成了海外?#

因为全局模式下,对百度发起的 DNS 解析和 HTTP 请求也全部交给海外节点完成。海外节点帮你访问百度后将内容返回给你的浏览器,因此百度页面底部显示的“您的 IP 地址”会变成该机场节点所在的海外 IP。

2. 打游戏时开启全局模式能降低游戏延迟吗?#

通常不能,甚至会导致延迟更高。科学上网代理节点多针对 TCP 网页加密加速,而外服游戏需要专门的 UDP 优化与游戏加速器专线。全局模式下所有后台无关流量都会挤占节点通道,更容易引发游戏丢包。

3. 为什么开启了全局模式,某些终端命令行依然提示网络连不上?#

因为你仅仅开启了代理软件的“系统代理(System Proxy)”全局模式。某些终端命令行(如 cmd.exe 或默认 Shell)不主动读取系统代理端口,需要配合开启客户端的 TUN 模式 或手动设置 export http_proxy 环境变量。

4. 开启全局模式后,本地局域网打印机或 NAS 打不开了怎么办?#

主流客户端在全局模式下默认会在内网网段(如 192.168.x.x127.0.0.1*.local)保留 Bypass 局域网直连规则。如果无法访问 NAS,检查设置中的“Bypass Local Subnets”(绕过局域网)是否被误关。



Linux 系统下开启全局代理与 systemd 自动化集成#

在 Linux 服务器(如 Ubuntu / Debian / CentOS)无桌面环境中,开启全局代理通常需要将代理 Core 作为系统服务运行,并通过系统环境变量控制全局出站流量。

1. 使用环境变量设置 Linux 命令行全局代理#

在 Linux Bash / Zsh 终端中,直接运行以下导出的环境变量,可令绝大多数命令行工具(如 curlwgetapt-get)走本地 Clash/sing-box 代理:

Terminal window
# 适用系统: Linux Shell (Ubuntu/Debian/CentOS)
# 执行目的: 为当前 Linux 终端会话注入全局 HTTP/HTTPS/SOCKS5 代理环境变量
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export socks_proxy="socks5://127.0.0.1:7890"
export all_proxy="socks5://127.0.0.1:7890"

如果需要强制排除本地回环或私有网段直连,必须配置 no_proxy 环境变量:

Terminal window
# 配置无代理网段,防止全局模式下 Linux 无法访问本地或内网资源
export no_proxy="localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,*.local"

2. 使用 iptables / nftables 构建真正的 Linux 内核级全局透明代理#

在无图形界面的 Linux 网关或软路由上,单纯设置 export 无法接管 Docker 容器或后台 daemon 的网络。可以使用 iptables 结合 redheadtproxy 建立全局透明代理(Transparent Proxy):

Terminal window
# 适用系统: Linux Gateway / 软路由环境
# 执行目的: 使用 iptables 将所有出站 TCP 流量透明重定向至本地 Clash TPROXY 监听端口 7893
iptables -t nat -A PREROUTING -p tcp -j REDIRECT --to-ports 7893

开启透明代理后,Linux 系统内部发出的任何 IP 报文均会被内核直接重定向至代理 Core 处理,实现底层全物理全局接管。


移动端应用应用分流例外(App Bypass / Split Tunneling)与全局模式的互动#

在 Android(Surfboard / Clash for Android)与 iOS(Shadowrocket)设备上,应用分流例外(Split Tunneling)在全局模式开启时扮演着重要的安全隔离角色。

1. Android 端应用的全局白名单与黑名单设置#

在 Android 客户端中,即使开启了全局模式(Global Mode),软件界面通常依然提供“应用分流”开关:

  • 黑名单模式(Bypass App):选中某些特定的国内应用(如微信、支付宝、网易云音乐),即使代理处于全局模式,这些被勾选的应用也会被强制从物理网卡直连出站。这能有效预防全局模式导致的微信丢消息或支付异常。
  • 白名单模式(Proxy App):仅允许选中的特定应用走全局代理,其余应用一律直连。

2. iOS 端应用代理扩展(Network Extension)的防撤销#

在 iPhone 上,Shadowrocket 处于全局模式时,苹果的 NEPacketTunnelProvider 会接管几乎全部 APP 的流量。但由于 iOS 系统的内核保护,像 Apple Pay、iMessage 激活以及 FaceTime 视频通话等苹果底层系统组件在硬件层面硬编码直连,不会受到全局模式的干扰。


代理软件 External Controller (RESTful API) 命令行无感切换全局模式#

对于需要编写自动化脚本或进行运维测试的极客用户,Clash 和 Mihomo 内核提供了基于 HTTP 的 RESTful 控制台 API(External Controller),无需打开 UI 界面即可通过脚本在 1 毫秒内切换路由模式。

1. 检查 RESTful API 监听配置#

在 Clash 配置文件中,包含如下控制台声明:

# Clash 外部控制台 API 配置
external-controller: 127.0.0.1:9090
secret: "your_api_secret_here"

2. 使用 Curl 命令行无感切换出站模式#

在终端运行以下 Curl 指令,即可直接将当前运行中的 Clash 内核实时切换为全局模式(Global):

Terminal window
# 适用系统: Linux Shell / macOS Terminal / Windows PowerShell
# 执行目的: 通过 RESTful API 向 Clash 内核发送 PATCH 请求,将当前模式切换为 global
curl -X PATCH -H "Authorization: Bearer your_api_secret_here" -H "Content-Type: application/json" -d '{"mode":"global"}' http://127.0.0.1:9090/configs

如果需要将全局出站节点从“香港节点”实时切换为“美国节点”,可运行以下命令更新 GLOBAL 分组的选择:

Terminal window
# 适用系统: Linux Shell / macOS Terminal
# 执行目的: 通过 API 将 GLOBAL 选单的目标出站节点切换为指定节点名称
curl -X PUT -H "Authorization: Bearer your_api_secret_here" -H "Content-Type: application/json" -d '{"name":"美国 01 原生"}' http://127.0.0.1:9090/proxies/GLOBAL

这一 API 自动化能力使得编写自动化测试脚本或与 Home Assistant 智能家居联动切换全局成为可能。


全局模式下的加密协议性能消耗对比(Shadowsocks / VLESS / Trojan / Hysteria 2)#

当处于全局模式时,所有网路数据(包含国内超高清视频流与大文件下载)都会经过代理内核的加密与解密。不同的传输协议在全局高吞吐下的 CPU 与内存消耗存在显著差异。

常用代理协议在全局模式下的性能开销对比#

传输协议传输层协议加密算法全局高吞吐下 CPU 开销抗 GFW 封锁能力适合全局模式长期开启
Shadowsocks 2022TCP / UDPAEAD (2022-blake3-aes-128-gcm)极低(硬件 AES 指令集优化)中等适合,高吞吐低延迟
VLESS + REALITYTCP (TLS 1.3)TLS 伪装 + Vision 证书解密极强(模拟真实大厂 TLS 握手)极其适合,安全性最高
TrojanTCP (TLS)Standard TLS 1.3中等适合
Hysteria 2 (歇斯底里)UDP (QUIC)TLS 1.3 + BBR 拥塞控制中高(UDP 分包与丢包重传开销大)极强(擅长恶劣丢包网络)仅在网络极度恶劣时使用

在全局模式下,推荐优先选用支持硬件指令集加速的 Shadowsocks 2022VLESS-REALITY 协议,以防止在传输大流量文件时造成移动设备发热降频或耗电加快。


全局模式下的 EDNS Client Subnet (ECS) 机制与 CDN 节点选择调度#

在全局代理模式下,绝大多数访问速度问题与 CDN 节点的非最优调度息息相关。了解 EDNS Client Subnet (ECS) 在全局代理中的运行逻辑,能够解释为什么有时在全局模式下打开某些跨国网站速度变慢。

1. EDNS Client Subnet (ECS) 工作的原理#

ECS 是 DNS 扩展协议(RFC 7871)的一部分。当用户向 DNS 服务器发起域名解析请求时,带有 ECS 扩展的请求体会附带发起者客户端所在的 IP 子网前缀(例如 120.230.x.x/24)。CDN 的 DNS 权威服务器(如 Akamai、Cloudflare、AWS CloudFront)会根据这一子网前缀,精准返回距离用户地理位置最近的 CDN Edge 节点 IP。

2. 全局代理模式下 ECS 的隐患与处理#

在全局代理模式下,发生以下两种情况:

graph TD
A[浏览器在全局模式下请求 CDN 域名] --> B{客户端 DNS 配置是否包含 ECS}
B -->|无 ECS / 保留客户端域名| C[DNS 权威服务以机场节点出口 IP 为准]
C --> D[返回距离机场节点最近的海外 CDN IP 节点]
B -->|透传本地客户端 ECS 泄露| E[DNS 权威服务获取到用户国内真实 IP 段]
E --> F[错误返回国内 CDN 节点 IP]
F --> G[全局代理尝试强制将国内 CDN 流量通过海外节点折返]
G --> H[产生严重的跨国延迟叠加与网页加载极其缓慢]
  • 解决方案:在代理客户端的 DNS 配置中,将 use-hosts: trueoverride-destination: true 开启,并在 DNS 模块中禁用 ECS 客户端子网透传(use-ecs: false)。在全局模式下,强制 CDN 权威服务将请求精准调度至离机场代理节点最近的机房,从而保障整体吞吐性能。

常用开发工具(Docker / Git / SSH / Pip)在全局模式下的网络交互行为#

对于开发者而言,即使将代理软件设为“全局模式”,某些底层开发工具的流量出站行为并不遵循系统代理接口。本节梳理在全局模式下各类工具的实际出站表现。

1. Docker 容器引擎在全局模式下的网络透传#

Docker Desktop(Windows / macOS)自身拥有独立的高级 Linux VM 虚拟网络组件(hyperkit / vpnkit / wsl2)。

  • 默认行为:在桌面端开启 Clash 全局系统代理模式后,运行 docker pull 拉取镜像或在容器内部访问外网时,Docker 默认完全忽略系统代理,流量继续直接从本地物理网卡直连出站,导致拉取 Docker Hub 镜像超时崩溃。
  • 配置解决方法:必须在 Docker 配置文件 ~/.docker/config.json 中明确声明 proxies 对象:
{
"proxies": {
"default": {
"httpProxy": "http://127.0.0.1:7890",
"httpsProxy": "http://127.0.0.1:7890",
"noProxy": "localhost,127.0.0.1"
}
}
}

或者开启代理软件的 TUN 模式(WFP / utun 网卡),让虚拟网卡强制捕获 Docker 虚拟机的出口 IP 报文。

2. SSH 远程登录连接在全局模式下的路由处理#

当你在 Terminal 或 PuTTY 中运行 ssh user@remote-ip 访问远程 Linux 服务器时:

  • 普通系统代理全局模式:SSH 客户端使用标准的 TCP 二层应用协议,不读取系统的 HTTP 代理参数。因此,SSH 连接依然直接通过你本地的公网 IP 建立,不会经过机场节点。这确保了在开启全局模式时,你的 SSH 远程终端不会因代理节点波动而断开。
  • TUN 模式全局:如果同时开启了 TUN 模式并选择了全局,所有端口(包含 22 端口)的 TCP 流量均会被送入代理节点。你的 SSH 登录源 IP 将会变成机场节点的出口 IP。

全局模式出站故障排查流程图与命令指南#

当你在全局模式下遇到某些特定的应用或网页完全无法连通时,避免盲目怀疑机场节点故障。请参照以下流程进行定位:

graph TD
A[全局模式下网络访问故障] --> B{在终端测试 curl -I 百度官网}
B -->|能够连通返回 HTTP 200| C{检查目标网站是否针对海外 IP 启用了 WAF 封锁}
C -->|是 Cloudflare / Akamai WAF 阻断| D[尝试在全局代理组中切换为原生 IP 节点]
B -->|提示 Connection Refused| E{检查代理软件本地监听端口}
E -->|7890 端口未打开| F[检查代理 Core 进程是否崩溃或端口被占用]
E -->|7890 端口正常监听| G{在终端运行 nslookup 测试域名解析}
G -->|返回 127.0.0.1 或死 IP| H[修改 DNS 模式为 fake-ip 并清空本地 DNS 缓存]

清理各操作系统 DNS 缓存实战命令#

在全局模式下切换节点或修改 DNS 规则后,必须立即清空本地操作系统的 DNS 解析缓存:

Terminal window
# Windows 系统清空 DNS 缓存
ipconfig /flushdns
# macOS 系统清空 mDNSResponder 解析缓存
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Linux (Ubuntu systemd-resolved) 清空 DNS 缓存
sudo systemd-resolve --flush-caches

运行上述指令后,操作系统将迫使所有应用重新发起 DNS 请求并导入新节点的解析映射,瞬间恢复网络连接。


全局模式下 WebRTC 真实 IP 泄露防护与检测#

在浏览器中开启全局代理模式后,许多用户以为自己的网络身份已经 100% 隐藏在海外代理节点之后。然而,浏览器的 WebRTC(Web Real-Time Communication)协议具备绕过 HTTP/SOCKS5 系统代理接口直接探测本地真实网络适配器的特性。

1. WebRTC 绕过代理的底层漏洞机制#

WebRTC 设计初衷是为浏览器提供低延迟视频会议与 P2P 传输功能。当网页脚本调用 WebRTC API(如 RTCPeerConnection)时,浏览器会在底层向公网 STUN 服务器发送 UDP 探测报文。如果代理客户端仅开启了系统代理的“全局模式”,但未开启内核级的 TUN 模式网卡接管,浏览器发出的 WebRTC UDP 探测报文会绕过代理端口,直接通过本地运营商物理网卡直连出站。

  • 风险后果:测试网站(如 browserleaks.com/webrtc)可以通过返回的 STUN 报文,直接精准抓取到你本地运营商分配的真实中国大陆 IPv4 或 IPv6 地址,导致地理位置匿名防护彻底失效。

2. 彻底封堵 WebRTC 泄露的三大硬核对策#

  1. 配合开启系统级 TUN 模式: 在 Clash Verge Rev、Stash 或 v2rayN 中开启 TUN 模式。TUN 虚拟网卡会将浏览器发出的 UDP 19302 (STUN) 端口流量强制重定向发送至代理节点,从而使 WebRTC 返回的地址始终显示为机场节点的出口 IP。
  2. 在浏览器中禁用或限制 WebRTC: 对于 Chrome 浏览器,可在扩展商店安装 uBlock OriginWebRTC Control,并在高级设置中将 IP handling policy 调整为 Disable non-proxied UDP (force proxy),强制 WebRTC 流量必须走代理出站。
  3. 在代理规则中添加 STUN 拦截指令
# 在配置文件中添加 STUN 协议与 UDP 19302 端口拦截规避泄露
rules:
- AND,((DST-PORT,19302),(NETWORK,UDP)),REJECT
- DOMAIN-KEYWORD,stun,REJECT

客户端规则脚本(Script Provider)在全局模式下的物理重写#

在 Mihomo(Clash Meta)内核中,用户可以通过编写 JavaScript 或 Starlark 动态脚本来实现高度个性化的分流控制。了解脚本引擎在全局模式下的物理执行顺序,有助于防止脚本编写不当引发路由死循环。

1. 动态脚本的分流控制逻辑#

在正常的规则模式下,Clash 内核处理每个连接时,会先将请求的域名、IP、Protocol 和 ProcessName 传递给内嵌的 JavaScript 脚本引擎:

// Clash JavaScript 动态分流脚本示例
function main(params) {
// 提取请求域名
const host = params.host;
// 如果请求为特定测试域名,重定向至指定代理组
if (host.endsWith(".internal.example")) {
return "香港 01 专线";
}
return "规则模式默认组";
}

2. 切换为全局模式后脚本引擎的动作变化#

当你将客户端界面手动切换为 全局模式(Global) 后:

  • 物理切断:Clash 内核会直接绕过 JavaScript 脚本引擎的评估逻辑。任何在脚本中写的 if-else 条件判断、动态域名匹配或正则提取都会被彻底忽略。
  • 绝对优先:所有数据包直接跳过脚本求值阶段,直接打包塞入控制台预先选定的 GLOBAL 出站代理节点中。

了解这一机制后,当你在调试复杂的动态分流脚本时,如果发现脚本改动后完全不生效,第一步就是检查客户端是否错误地停留在全局模式下。


全局代理状态下的 TCP 长连接(Keep-Alive)与断连自动恢复#

在全局模式下,设备的几乎所有 TCP 连接(包含 WebSockets、长连接心跳包)都会经由远程机场节点维护。这使得网络连接对节点服务器的稳定性和 TCP 机制极为敏感。

1. 节点重启引起的 Socket 句柄失效#

当处于全局模式时,如果远端机场节点发生断网、服务器重启或线路切换,你本地操作系统中保持的所有 TCP 长连接(如 SSH 终端、网盘同步任务、即时通讯应用)都会在瞬间变为无响应的僵尸 Socket(Stale Socket)。

  • 现象特征:网页在切换节点后提示 ERR_NETWORK_CHANGED,已有下载断开且不会自动重连。

2. 在配置文件中启用 TCP Fast Open 与心跳检测#

为了在全局模式下提升长连接在节点抖动后的自我恢复能力,可在配置文件中加入以下底层 TCP 优化参数:

# 开启 TCP 快速握手与Keep-Alive 优化
tcp-concurrent: true
fast-open: true
keep-alive-interval: 15 # 每 15 秒发送一次 TCP 保活心跳

通过降低心跳检测间隔并启用并发 TCP 握手(TCP Concurrent),当你在全局模式下切换代理节点时,客户端能够瞬间丢弃失效的旧 Socket,并在新的代理节点上重建 TCP 三次握手,从而大幅提升使用稳定性。


OpenWrt 软路由与 PassWall / OpenClash 开启全局代理指南#

在家庭或企业局域网中,如果使用软路由(如工控机安装 OpenWrt)作为整个网络的核心网关,在软路由上开启全局代理能够为局域网内的所有设备(如电视盒子、游戏机、智能音箱)提供无感全局接管。

1. OpenClash 开启全局代理模式#

在 OpenWrt 的 OpenClash 插件管理界面中:

  1. 侧边栏进入 运行模式(Running Mode)界面。
  2. 将模式从“fake-ip (混合模式)”修改为 全局模式(Global)
  3. 切换至 Proxies 控制台,在最上方出现的 GLOBAL 策略组中,勾选需要作为全局出口的目标机场节点。
  4. 点击界面底部的“应用配置”,系统会自动重载 nftables / iptables 规则,将整个局域网内发往 WAN 口的所有流量统一加密送入指定的全局节点。

2. PassWall 插件全局出站配置#

在 OpenWrt PassWall 界面中:

  1. 进入 基本设置 -> 节点订阅与访问控制
  2. 在“TCP 访问控制”与“UDP 访问控制”选项中,将默认的“绕过中国大陆 IP (Bypass Mainland China)”下拉菜单修改选择为 全局 (Global)
  3. 选定主节点后保存并应用。此时,PassWall 会在 tproxy 链中挂载全局转发规则,局域网中所有设备的请求均会强行经过选中的主节点发送出站。

全局代理模式下的 HTTPS 中间人解密(MITM)与安全证书风险#

在某些高级代理工具(如 Surge、Quantumult X 或带有 MITM 功能的 Clash 衍生分支)中,用户不仅可以开启全局代理,还可以开启 HTTPS 流量解密(MITM, Man-in-the-Middle)。理解全局模式与 MITM 叠加使用时的安全边界,是保护个人隐私资产的重中之重。

1. MITM HTTPS 解密的运行原理#

常规的 HTTPS 传输通过 TLS 协议在客户端与目标服务器之间建立端到端加密通道(End-to-End Encryption)。开启 MITM 后,代理客户端会通过在系统根证书库中注入的自签名 CA 证书,向你的浏览器假冒目标网站证书,从而在本地代理层对加密流量进行拆包解密,以读取明文 HTTP Header 并执行规则改写。

2. 全局模式叠加 MITM 的极高安全风险#

graph TD
A[应用发送包含银行卡/密码的 HTTPS 请求] --> B[本地代理客户端 MITM 模块使用自签名 CA 解密明文]
B --> C{代理客户端是否处于全局模式}
C -->|全局模式 + 全局 MITM 解密| D[所有流量包含网银/微信支付明文暴露在代理层]
D --> E[若机场节点或代理插件遭黑客入侵数据面临泄露]
C -->|规则模式 + 精准域名 MITM| F[仅解密特定测试域名 网银流量保持端到端加密]
  • 安全红线警告切勿在全局模式下开启全局 HTTPS (MITM) 解密! 如果在全局模式下将 mitm: hostname: "*" 设置为解密所有域名,你登录手机银行、支付宝、微信以及各类账号输入的明文密码与 Cookie 都将在本地代理内存中以明文呈现。若使用的是未验证安全性的第三方代理插件或配置,极易引发严重财产与隐私泄漏。

正确的安全规范:即使因为测试需求必须使用 MITM 功能,也必须在配置文件的 hostname 中严格写明仅解密特定测试二级域名(如 *.example-test.com),绝不允许通配符 * 全局解密。


全局代理模式下的 QUIC (UDP 443) 协议阻断与优雅降级#

在开启全局代理模式后,许多用户发现在访问 Google、YouTube 或 Chrome 浏览器时,经常出现页面加载前几秒卡顿的情况。这主要是由于 HTTP/3 QUIC 协议在全局代理模式下的 UDP 传输开销引起的。

1. QUIC 协议在全局代理中的传输瓶颈#

Chrome 与 Safari 浏览器默认优先尝试使用基于 UDP 的 QUIC 协议访问支持 HTTP/3 的站点。然而,许多机场中转节点的专线并没有对 UDP 443 端口提供优化,甚至在网关层限制了 UDP 带宽吞吐。当浏览器在全局模式下通过 QUIC 发起连接时,UDP 数据包容易在代理链条中被静默丢弃,迫使浏览器等待 UDP 超时(通常为 3-5 秒)后才降级使用 TCP 链接。

2. 优化方案:在全局模式下拦截 QUIC 流量#

为了让浏览器在全局模式下也能实现瞬时加载,可在代理客户端配置文件中追加 UDP 443 阻断指令,强制浏览器直接采用 TCP 协议进行连接:

# 全局代理模式下阻断 UDP 443 (QUIC) 强制降级为 TCP 极速连接
rules:
- AND,((DST-PORT,443),(NETWORK,UDP)),REJECT

拦截 QUIC 协议后,浏览器在全局模式下访问 YouTube 或 Google 时,会直接建立经过机场专线加速的 TCP 连接,消除了 UDP 超时等待,网页开启速度得到立竿见影的提升。

3. QUIC 抓包与 UDP 连通性测试指令#

在 macOS 或 Linux 终端中,可以通过以下命令行工具对全局模式下的 UDP 443 连通性与丢包率进行直接测试与验证:

Terminal window
# 适用系统: Linux Shell / macOS Terminal
# 执行目的: 使用 nc 测试全局代理模式下海外节点的 UDP 443 端口连通状态
nc -z -v -u 8.8.8.8 443

若返回 succeeded! 说明全局模式下 UDP 443 管道通畅;若无响应则建议在规则中加入阻断以提高网页响应速度。

结论与使用建议#

全局模式是代理客户端中一把强大的双刃剑。正确的处理顺序与使用原则如下:

  1. 日常优先使用规则模式:保持客户端在 RuleConfig 模式下运行,兼顾速度、省电与流量节省。
  2. 遇故障临时切换全局:当遇到特定海外网站打不开、访问 AI 工具被阻断时,临时切换为 Global 模式进行排查。
  3. 完成任务立即切回:排查完毕或完成特定操作后,第一时间切回规则模式,避免影响国内应用与微信支付。
  4. 配合 TUN 模式处理全流量:需要接管命令行与不支持代理的应用时,叠加 TUN 模式使用。

掌握全局模式的精确开启与恢复技巧,能让你在遇到复杂的网络封锁与规则遗漏时游刃有余。

全局模式怎么开启?Clash与Shadowrocket开启全局代理
https://jichangfan.com/posts/quanju-moshi-zenme-kaiqi/
作者
机场翻
发布于
2024-04-05
许可协议
CC BY-NC-SA 4.0