很多人以为“开了代理就一定能上网”,结果其实只是浏览器能打开,微信、Git、游戏或系统更新还是报超时,甚至出现“已连接但无法访问互联网”。还有一种常见情况是:切换到 TUN 模式后,原本正常的局域网打印机、NAS、公司内网突然访问不了,或者系统代理一开,部分应用直接不走代理、网页却能打开。
这通常不是“网络坏了”,而是你选错了代理接管方式:系统代理和 TUN 模式处理流量的范围不同,适用场景也不同。
先分清是哪种情况
1. 只有浏览器能用,其他软件不走代理
这是最常见的系统代理问题。系统代理主要影响遵守系统代理设置的应用,例如部分浏览器、下载器、办公软件;但很多程序会忽略系统代理,直接连网络,所以会出现“网页能开,客户端不行”。
2. 需要所有流量都经过代理
如果你要让游戏、命令行工具、更新程序、部分 App 全部走同一出口,系统代理通常不够,需要 TUN 模式。TUN 会把设备上的网络流量按虚拟网卡方式接管,更接近“全局代理”。
3. 局域网、打印机、NAS 访问异常
开了 TUN 模式后,所有流量可能都被转发,若没有排除内网地址,就会把 192.168.x.x、10.x.x.x 这类本地流量也送进代理,导致访问内网设备变慢或失败。
4. DNS 异常导致“能连上但打不开”
有时不是代理没生效,而是 DNS 解析被干扰。系统代理只管部分应用的代理配置,TUN 模式如果 DNS 没配好,也可能出现域名解析失败、网站打不开但 IP 能通的情况。
分步解决
1. 先判断你现在该用系统代理还是 TUN 模式
如果你的目标只是让浏览器、部分桌面应用按代理访问,优先用系统代理,配置简单、兼容性好。
如果你的目标是“所有应用尽量都走代理”,或者某些软件明显不读取系统代理,就改用 TUN 模式。
简单判断方法:打开一个终端或命令提示符,执行 curl -I https://www.google.com 或 curl -I https://example.com。如果浏览器能开、这里超时,往往说明命令行没走系统代理;如果开启 TUN 后命令也能通,说明 TUN 已接管成功。
2. Windows:开启系统代理
进入 设置 → 网络和 Internet → 代理。
在“手动设置代理”里打开“使用代理服务器”。
如果你的代理客户端给了本地端口,比如 127.0.0.1:7890,就把地址填 127.0.0.1,端口填 7890。
保存后,打开浏览器访问一个原本打不开的网站,或在命令行执行 netsh winhttp show proxy 看系统层面的 WinHTTP 代理状态;注意很多软件只认 WinINET 代理,也就是这里的系统代理设置。
3. macOS:开启系统代理
进入 系统设置 → 网络 → 选中当前网络(Wi‑Fi 或以太网)→ 详细信息 → 代理。
按需勾选 Web 代理(HTTP)和安全 Web 代理(HTTPS),或者使用客户端提供的自动代理配置。
如果你看到本地地址和端口,例如 127.0.0.1:7890,就填写对应值并保存。
可在终端执行 scutil --proxy 查看当前系统代理是否已生效。
4. Android:优先用 TUN 或 VPN 类接管
Android 的系统代理只对当前 Wi‑Fi 有效,且很多 App 不会完全遵守。进入 Wi‑Fi → 长按当前网络 → 修改网络 → 代理,通常只能设置“手动”代理地址和端口。
如果你需要全局生效,通常应使用支持 TUN/VPN 模式的方式,而不是只靠 Wi‑Fi 代理。
5. iOS:系统代理只管当前 Wi‑Fi
进入 设置 → Wi‑Fi → 点击当前网络右侧的 i 图标 → 配置代理。
选择“手动”,填入服务器、端口;如果有 PAC 地址则选“自动”并填写 URL。
注意:iOS 的这个设置只对当前 Wi‑Fi 生效,切到蜂窝数据后不生效;如果你需要更完整的接管,通常要依赖支持 TUN 的 VPN/代理方案。
6. 开启 TUN 模式,解决“只有部分应用走代理”
如果你的客户端支持 TUN 模式,先在设置里找到“核心模式”“TUN”“虚拟网卡”“接管流量”之类选项并开启。
然后重点检查三项:
第一,是否要求管理员权限或 VPN 权限;Windows 上可能需要以管理员身份运行,macOS 和 Android/iOS 需要系统弹窗授权。
第二,是否开启“绕过局域网”或“排除本地地址”。如果有这个选项,建议打开,避免内网设备失联。
第三,是否启用了 DNS 接管。若有“劫持 DNS”“使用代理 DNS”“远程 DNS”之类选项,先按客户端默认推荐开启,再测试域名解析。
7. 处理局域网访问异常
如果开启 TUN 后访问路由器、打印机、NAS 出问题,先检查是否把 192.168.0.0/16、10.0.0.0/8、172.16.0.0/12 这类地址排除了。
有的客户端会提供“绕过局域网和本地地址”“直连 LAN”开关;打开它。
如果没有这个选项,至少把内网设备地址手动加入直连规则,避免被全局代理接管。
8. 处理 DNS 问题
如果“能连代理但网页打不开”,先别急着换节点,先看 DNS。
在 Windows 上可以运行 nslookup example.com,观察是否返回正常 IP。
在 macOS 上可运行 dig example.com 或 nslookup example.com。
如果解析超时,说明 DNS 可能没走通。此时在客户端里优先选择“通过代理解析 DNS”或“远程 DNS”,并清理系统 DNS 缓存:Windows 执行 ipconfig /flushdns;macOS 执行 sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder。
验证是否修好
先做三类测试,不要只测一个网页。
第一,测试浏览器:打开之前访问失败的网站,看是否能正常加载。
第二,测试非浏览器应用:例如命令行执行 curl -I https://example.com,或者用原来失败的客户端登录一次。
第三,测试内网:如果你需要访问打印机或 NAS,确认 192.168.x.x 地址是否还能打开管理页或共享目录。
如果你开启的是系统代理,浏览器正常但命令行仍失败,说明它没有走系统代理,这是预期现象,不一定是故障。
如果你开启的是 TUN 模式,浏览器、命令行、部分客户端都正常,同时局域网也没有断,才算配置比较稳。
还是不行怎么办
先回到最小化排查:关闭所有额外规则,只保留一个代理模式,确认是系统代理问题还是 TUN 问题。
然后检查这几项:
1. 代理端口是否填错,是否和客户端显示的一致。
2. 本地防火墙或安全软件是否拦截了虚拟网卡或本地代理端口。
3. 是否同时开了多个代理软件,导致端口冲突或规则互相覆盖。
4. 是否使用了需要认证的网络,公共 Wi‑Fi 可能先要在浏览器完成门户登录。
5. 是否只是目标站点本身不可用,换一个完全正常的网站测试。
如果你的问题本质上是网络被封锁、被墙,或者某些地址必须经由代理才能访问,那么可以考虑换成稳定的接管方式继续测试;这类场景下,像 Roxi 这类免费、全平台、不限流量的工具也可以作为一种可选方案。
如果以上都不成立,建议把客户端日志打开,记录失败时间、目标地址、代理模式、DNS 设置和报错内容,再逐项对照排查。