知识百科
系统代理是什么:操作系统代理设置的原理、哪些程序读它、与 TUN 的边界
解释系统代理:操作系统保存的一项「代理服务器地址」设置,客户端开启系统代理就是把这项设置改为自己的本地端口。说明浏览器等程序如何读取它、终端与部分软件为什么不读、PAC 与手动代理的区别,以及常见异常。
系统代理是新手最先接触的开关,也是最容易误解的:开了它不等于「所有流量都走代理」。
定义
操作系统保存一项设置:「HTTP/HTTPS/SOCKS 代理服务器的地址与端口」。
- Windows:设置 → 网络和 Internet → 代理
- macOS:系统设置 → 网络 → 详细信息 → 代理
客户端开启「系统代理」时,把这项设置改为 127.0.0.1:7897(端口以客户端为准)。关闭时改回。
谁会读这项设置
| 程序类型 | 读取 | 说明 |
|---|---|---|
| 浏览器 | 是 | Chrome、Edge、Safari 跟随系统;Firefox 可选 |
| 多数图形软件 | 是 | 聊天软件、办公软件等 |
| 终端程序 | 否 | 读 HTTP_PROXY / HTTPS_PROXY 环境变量 |
| IDE 与编辑器 | 部分 | VS Code、Cursor 有独立设置 |
| 游戏 | 否 | 直接用 socket |
| 有自有代理设置的软件 | 否 | 以自身设置为准 |
「客户端已连接但某程序没走代理」几乎都是该程序不读系统代理。
PAC 与手动代理
- 手动代理: 固定地址与端口,所有请求都发过去。
- PAC 脚本: 一段脚本按目标域名决定用代理还是直连。
客户端一般用手动代理,分流由客户端内部的规则完成。两者同时设置会冲突。
边界之外的程序怎么办
- 环境变量: 终端执行
export HTTPS_PROXY=http://127.0.0.1:7897。 - 程序内设置: Cursor、VS Code 等在设置中填代理地址。
- TUN 模式: 不依赖程序配合,接管全部流量。见 TUN 是什么。
开发者用 AI 工具的场景见 AI 开发工具网络环境。
常见异常
- 关闭客户端后没网: 设置残留,手动关闭。
- 代理被反复重置: 其他软件在争抢。
- 端口不一致: 客户端换了端口但系统设置未更新。
处理见 系统代理异常。
与代理的关系
系统代理只是「告诉程序把流量发到哪」。流量到了客户端之后,由规则决定直连还是通过节点。代理本身的概念见 代理是什么。
常见问题
- 系统代理是什么意思?
- 操作系统中的代理服务器设置。客户端开启后把它指向自己的本地端口,读取该设置的程序流量就会经过客户端。
- 哪些程序不走系统代理?
- 终端程序(Claude Code、curl、git、npm)、部分 IDE、多数游戏、设置了自有代理的软件。这些需要环境变量、程序内设置或 TUN。
- 关闭客户端后没网了?
- 系统代理仍指向已停止的端口。手动在系统设置中关闭代理,见系统代理异常。