SOCKS5 代理:NetGuard 与其他 VPN 应用的组合方案
为什么需要 SOCKS5 代理
Android 系统限制同一时间只能有一个应用使用 VpnService。这意味着 NetGuard(用 VpnService 做防火墙)和其他 VPN 应用(如 WireGuard、OpenVPN、Orbot/Tor)不能同时启用。
SOCKS5 代理是绕开这个限制的一种方案——不是"同时用两个 VPN",而是让 NetGuard 作为流量前置路由,把流量过滤后转发给另一个 VPN。
SOCKS5 代理原理
NetGuard(防火墙 + SOCKS5 客户端) → 通过 SOCKS5 代理接口 → 真实 VPN 应用的 SOCKS5 端口 → 加密隧道 → 互联网
流程:
- NetGuard 仍然是唯一使用 VpnService 的应用(防火墙角色)
- NetGuard 过滤后的流量通过 SOCKS5 代理接口转发
- SOCKS5 代理由另一个 VPN 应用提供(如 Orbot 的 127.0.0.1:9050)
- VPN 应用把流量加密后发送出去
设置 SOCKS5 代理
步骤一:NetGuard 里启用 SOCKS5 支持
主菜单 → 设置 → 高级选项 → Use SOCKS5 proxy → ✅ 勾选。
然后填写:
- 代理地址:通常是
127.0.0.1(本地) - 代理端口:取决于你用的 VPN 应用(Orbot 默认 9050、Tor 默认 9050)
步骤二:在网络选项里启用子网路由
SOCKS5 代理依赖子网路由。如果之前没开,现在打开:主菜单 → 设置 → 网络选项 → ✅ Subnet routing
步骤三:配置 VPN 应用
SOCKS5 代理的提供方(另一个 VPN 应用)需要正确配置:
- 启动后在本地指定端口监听 SOCKS5 连接
- 这个端口号要和 NetGuard 里填的一致
与 Tor(Orbot)的组合
这是最常见的 SOCKS5 代理使用场景——让 NetGuard 过滤后把流量送到 Tor 网络加密出口。
完整步骤
- 安装 Orbot(Android 上的 Tor 客户端)
- 启动 Orbot,等待连接成功
- 确认 Orbot 设置为启动时自动运行
- NetGuard 里:
- ✅ Subnet routing(子网路由)
- ✅ Use SOCKS5 proxy
- 代理地址:
127.0.0.1 - 代理端口:
9050(Orbot 默认)
- 确保 Orbot 在应用详情面板里没有勾选「Apply rules and conditions」——需要取消对 Orbot 的规则覆盖
验证
在浏览器打开 ipleak.net,应该能看到:
- IP 地址不是你的真实 IP
- Tor Exit Node 字段显示 Tor 出口节点信息(而不是 "Unknown")
与其他 VPN 应用的组合
理论上任何支持 SOCKS5 服务端模式的 VPN 应用都能和 NetGuard 组合,如:
- WireGuard(部分客户端支持 SOCKS5)
- OpenVPN(通过第三方 SOCKS5 wrapper)
- Shadowsocks / V2Ray(原生支持 SOCKS5)
但这些配置较为复杂,普通用户建议直接用 NetGuard 做单一防火墙 + 单独使用 VPN 应用(因为它们不能同时运行),而不是尝试组合。
SOCKS5 vs 多 VPN 应用
| 方式 | 效果 | 复杂度 |
|---|---|---|
| NetGuard + SOCKS5 + Tor | ✅ NetGuard 防火墙 + Tor 隐私 | 高 |
| 只用 NetGuard | ✅ 防火墙 + 拦截 | 低 |
| 只用其他 VPN | ✅ 加密隧道,但无应用级拦截 | 低 |
| 同时启用两个 VPN | ❌ Android 不允许 | 不可能 |
已知限制
限制一:性能
所有流量两次经过网络层(先 NetGuard 过滤,再 SOCKS5 代理),有额外延迟和 CPU 开销。
限制二:兼容性
不是所有 VPN 应用都支持 SOCKS5 服务端模式。有些只支持作为 SOCKS5 客户端(连接远程 SOCKS5 服务器),而不支持作为服务端(本地监听 SOCKS5 端口)。
限制三:无法解决入站问题
SOCKS5 代理只处理出站流量。入站流量仍然不受 NetGuard 控制。
限制四:开发者不主动支持
NetGuard FAQ 提到,开发者不亲自测试和支持 Tor + NetGuard 的组合配置——FAQ 里虽然有社区贡献的方法,但属于"as-is"提供。出现问题可能需要自己排查。
关闭 SOCKS5
如果 SOCKS5 配置出了问题导致网络完全不可用:
- 主菜单 → 设置 → 高级选项 → ❌ Use SOCKS5 proxy 关闭
- 关闭子网路由(如果不需要了)
- 重启 NetGuard 防火墙
- 关闭其他 VPN / Tor 应用
其他解决方案
如果 SOCKS5 代理配置太复杂,可以考虑:
- 分时段使用:NetGuard 做日常防火墙 → 需要用 VPN 时关掉 NetGuard、打开 VPN 应用 → 用完关掉 VPN、重新打开 NetGuard
- 路由器级代理:在路由器上配置 SOCKS5 / Tor,让所有设备流量先走路由器过滤
- VpnService 链式:极少数 VPN 应用支持 VpnService 链式(一个 VpnService 的流量转发到另一个),但这种功能不稳定且不常见