macOS 系统代理怎么设:全局模式、绕过大陆与不改变系统代理的区别

对照 v2rayN 的系统代理三档与路由预设,讲清全局、绕过大陆等模式各自影响哪些流量,以及在 Mac 上日常办公、开发调试时如何选择。

本文速览

系统代理决定应用是否把请求交给 v2rayN,路由模式决定交进来的请求走直连还是代理节点。日常浏览通常从「自动配置系统代理」配合绕过大陆规则开始;开发工具可以单独指定本地代理。本文按这两层设置说明三档系统代理的差别,并给出 macOS 检查路径、终端验证命令和退出后的恢复步骤。

系统代理与全局路由:先分清两层设置

v2rayN 是管理订阅、节点和内核配置的桌面客户端。导入订阅并选中节点,只是准备好了代理出口,不代表每个应用都会使用这个出口。浏览器要先把请求交给本地监听端口,内核才有机会应用路由规则。

macOS 系统代理属于入口设置:它把代理主机和端口写入网络服务的代理配置。遵循系统设置的应用据此连接本地代理;使用独立网络栈、独立代理设置或明确直连的程序,未必采用这些配置。「全局」属于另一层:通常指已经进入代理内核的请求,按全局路由交给选定节点,而不是自动接管整台 Mac。

设置层解决的问题不能据此推断的结果
系统代理遵循系统设置的应用向哪里发送请求不能保证所有进程、UDP 流量都被接管
全局路由进入内核的常规请求统一走代理出口不能让未接入代理的应用自动改道
绕过大陆路由按域名、IP 等规则选择直连或代理不能保证所有境内服务都被准确识别
TUN 模式通过虚拟网络接口接入更多 IP 流量不能替代 DNS、路由排除和权限配置

v2rayN 系统代理三档:自动配置、清除与不改变

在 v2rayN 主界面底部状态栏或托盘菜单的系统代理选项中查看当前档位。不同桌面构建的入口位置和措辞可能略有差异,常见选项为「自动配置系统代理」「清除系统代理」「不改变系统代理」。三者操作的是系统配置,而不是订阅内容。

自动配置系统代理

推荐

让客户端把本地代理地址写入系统设置。前提是内核已启动,监听地址和端口有效。开启后仍需选择合适的路由预设,才能区分直连与代理请求。

适合:日常浏览、遵循系统代理的桌面应用

清除系统代理

撤销客户端管理的系统代理设置。它不等于停止本地内核,也不保证手动填写代理地址的工具停止使用代理;开启中的 TUN 也需要另行处理。

适合:恢复普通网络、排查退出后的连接异常

不改变系统代理

保持系统代理现状,不主动执行开启或清除。若此前已经留下代理地址,切到这一档不会自动擦除。它也不是「直连模式」。

适合:已有受管理的网络配置、只给开发工具单独设代理

判断方法:要关闭系统代理,选清除,不选不改变

从自动配置切换到不改变后,如果系统仍指向本地端口,应用就可能继续使用代理。需要恢复直连时,先执行清除,再到 macOS 网络设置核对实际状态。

公司网络可能已经配置自动代理脚本或固定代理。改动前先记录原来的地址、端口与启用状态;清除客户端配置不等于恢复公司要求的配置。受管理设备应按组织的网络要求处理,避免直接覆盖。

全局与绕过大陆:看规则,不看开关名称

绕过大陆预设通常把本地网络、部分境内域名和境内 IP 交给直连出站,其他请求交给代理出站。具体行为以预设中的规则、顺序和数据库为准。Xray 的路由规则通常按顺序寻找匹配项,靠前的明确规则可能覆盖后面的通用规则。

对于 geosite:cn 和 geoip:cn,前者表达域名集合,后者表达 IP 地址集合;geoip:private 常用于私有地址范围。它们不是可以随意填入任何界面的通用文字:图形路由编辑器与内核原生 JSON 的字段写法不同,应按当前编辑器要求填写。

两种工作场景的设置组合

日常办公与网页浏览
  • 开启自动配置系统代理。
  • 选绕过大陆路由,检查本地网络是否直连。
  • 用工作站点和需要代理的站点分别验证。
  • 内网站点异常时优先检查域名规则与公司 DNS。
开发调试与单个命令
  • 先清除已有系统代理,再选择不改变。
  • 在命令参数或工具设置中指定本地代理。
  • 对同一 URL 比较直连和代理结果。
  • 不把包含订阅凭据的终端输出贴到公开渠道。

先确定哪些应用需要接入,再确定这些请求的出口;这比同时切换系统代理、路由和 TUN 更容易定位问题。

Mac 上实际怎么设:监听端口与系统设置核对

先从下载页按芯片选择 v2rayN 安装包,再按使用文档导入订阅并更新分组。以下端口只用于说明核对方法,不代表所有版本的默认值;请以当前客户端显示的监听配置为准。

127.0.0.1
本机回环地址示例
10808
下文假设的本地 HTTP 代理端口
443
HTTPS 常用目标端口,不是本地监听端口
  1. 确认节点与内核。选中有效节点,检查日志中是否出现配置错误或端口占用。节点的远端端口与本地入站端口是两回事,不能把节点的 443 直接填进系统代理。
  2. 确认本地监听。在「设置」→「参数设置」中查看本地监听端口及协议类型;界面分组以当前构建为准。下文假设 127.0.0.1:10808 接受 HTTP 代理请求,若实际为其他端口或仅支持 SOCKS,应相应调整。
  3. 打开系统代理。选择自动配置系统代理,再选择绕过大陆路由。首次验证期间先不叠加 TUN,减少干扰项。
  4. 核对 macOS。打开「系统设置」→「网络」→当前连接的网络服务→「详细信息」→「代理」。查看网页代理、安全网页代理或 SOCKS 代理的启用状态、服务器和端口,不要仅观察客户端图标。
  5. 分别验证。打开一个境内工作站点、一个需要代理的站点和一个局域网地址,同时查看内核日志中的出站选择。切换 Wi-Fi 与有线网络后重新核对,因为代理设置与网络服务有关。

终端验证:区分系统设置、代理连通与目标访问

终端程序不一定自动读取 macOS 系统代理。浏览器能打开网页而 curl 失败,并不能直接说明节点有问题。下面三组命令分别查看系统状态、绕过代理访问、明确指定代理访问,不会修改系统网络配置。

# 查看当前系统代理配置
scutil --proxy

# 忽略代理环境变量,对同一地址发起直连请求
curl --noproxy '*' --connect-timeout 10 -I https://example.com

# 假设 10808 是支持 HTTP 的本地代理端口
curl --noproxy "" --proxy http://127.0.0.1:10808 --connect-timeout 10 -I https://example.com

# 如果该监听端口支持 SOCKS,可单独测试 SOCKS 路径
curl --noproxy "" --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 -I https://example.com

example.com 是用于演示语法的示例域名。实际排查时,两条访问命令应换成同一个待检查地址。这里的 10 是连接超时秒数,不是测速成绩;出现 HTTP 错误状态仍可能说明连接已经建立,需继续判断响应来自目标服务还是代理。

socks5h 表示把目标域名交给 SOCKS 代理端处理;它与在终端本地先解析域名的路径不同。这可以帮助缩小 DNS 排查范围,但不能单靠一次成功就断言所有应用采用相同解析方式。

常见问题:退出残留、开发工具与 TUN

退出 v2rayN 后,为什么网页全部打不开?

先检查系统代理是否仍指向已经关闭的本地端口。能重新打开客户端时,执行清除系统代理再退出;打不开时,到「系统设置」→「网络」→当前服务→「详细信息」→「代理」中核对并关闭客户端留下的项目。原有公司代理应按记录恢复。

选了不改变系统代理,怎么还在走节点?

这个选项只是不改现状。先清除系统代理,再检查应用自己的代理地址、终端代理环境变量和 TUN 状态。已建立的连接也可能继续使用原路径,必要时重启被测试的应用后再观察。

浏览器能用,但开发工具不走代理怎么办?

在工具的网络设置中填写实际本地代理地址,或先用上文的显式 curl 参数测试。不要默认所有命令行工具都会读取系统设置,也不要默认每个工具都支持相同的代理环境变量。

是不是开启 TUN 就不用管系统代理了?

TUN 能覆盖更多不遵循系统代理的流量,但仍受接口路由、权限、DNS 与排除规则影响。首次排查先只保留一种接入方式;需要接管额外应用时再开启 TUN,并检查局域网访问与节点服务器的路由是否正常。

绕过大陆后,某个境内服务反而变慢怎么查?

记录完整域名和发生时间,在日志中确认它走直连还是代理,再临时对比全局结果。若服务属于公司内网,优先核对公司 DNS 与明确的内网直连规则;应根据 DNS 解析结果与实际连接 IP 核验其地址归属。

稳定使用后,保留一个可复现的检查顺序:本地监听正常、系统配置正确、应用确实接入、路由出口符合预期。订阅更新解决的是节点资料变化,系统代理解决的是应用入口,路由分流解决的是出口选择;三者各有职责,按层检查比反复重装更有效。

下载v2rayN按平台选择客户端