知用堂
第二套高阶模板 · 更大气的阅读体验

系统代理和全局代理有什么区别?一文说清楚(进阶教程)

发布时间:2025-12-10 00:32:38 阅读:84 次

在公司用网络,经常要设置代理。尤其是做开发、测试或者数据分析的同事,绕不开“代理”这个词。但很多人搞不清系统代理和全局代理到底有啥不一样,有时候设错了,连不上外网,还以为是网络出了问题。

系统代理:操作系统级别的设置

系统代理是操作系统自带的网络代理配置,比如在 Windows 的“设置-网络和 Internet-代理”里,或者 macOS 的“系统设置-网络-高级-代理”中进行设置。它只影响那些遵循系统设置的应用程序。

举个例子:你在 Windows 上设置了系统代理为 127.0.0.1:8888,浏览器(如 Edge 或 Chrome)会自动走这个代理,因为它们默认读取系统代理设置。但某些软件,比如微信、钉钉、甚至是部分游戏或独立运行的工具,可能完全忽略这个设置,直接连外网。

也就是说,系统代理不是“强制”的,而是“建议”性质的。谁听谁不听,看应用自己决定。

全局代理:所有流量都得过我这关

全局代理就不一样了。它通常由第三方工具实现,比如 Clash、Shadowsocks 客户端等。这类工具会修改系统的网络路由表,把所有网络请求都重定向到代理服务器,不管你是用什么软件发的请求。

比如你开了 Clash 并启用“TUN 模式”或“全局模式”,这时候哪怕你用命令行 ping 一个外网地址,或者用微信传文件,流量都会被拉进代理通道。这就是真正的“全局”控制。

你可以理解为:系统代理是“通知大家走这条路”,而全局代理是“把大门锁上,只留一条路,谁都得走这儿”。

实际场景对比

你在公司调试接口,需要用 Charles 抓包。你设置了系统代理,浏览器的请求都能捕获到,但小程序里的请求却抓不到——因为小程序客户端压根没理系统代理。

这时候你就得换全局代理工具,用 TUN/TAP 模式把整个设备的流量都接管过来,才能完整抓到所有通信。

反过来,如果你只是想让浏览器走代理查资料,其他软件保持直连,那用系统代理更安全、更省事,也不会影响内部办公系统访问。

技术层面的小补充

系统代理一般通过环境变量或注册表/配置文件告诉应用程序如何连接,比如:

http_proxy=http://127.0.0.1:8888
https_proxy=http://127.0.0.1:8888

而全局代理往往依赖虚拟网卡(如 TUN 设备)或 Hook 网络调用,实现底层流量劫持。技术门槛高一点,但也更彻底。

所以选哪种,关键看你要控制的范围有多大。日常办公查资料,系统代理够用了;要全面管理流量,比如远程办公、跨地区协作,就得上全局代理。