搭建一个可分流的个人VPN网关:WireGuard、sing-box与Gluetun的组合实践
在之前的文章中,我介绍过一种比较直接 的链式 VPN 方案:所有设备先连接到自己搭建的WireGuard 服务器,再由服务器把流量转 发到 Gluetun,最终通过上游 VPN 服务商的出口访问互联网。 这个方案的核心价值很明确: 所有设备只需要配置一个 WireGuard; 上游 VPN 只需要在服务器端维护; 可以把手机、电脑、平板、家用设备统一接入同一个虚拟局域网; 出口 IP 由商业 VPN、公司 VPN 或其他上游 VPN 提供,而不是直接暴露 VPS IP; 整套系统可以通过 Docker 部署,尽量不污染宿主机环境。 相比于直连VPN,该方案下VPN服务商能看到的只是你的VPN网关出口(你的VPS服务 器),而不是每个设备的真实 IP。 另外,本地的ISP等也看不到你是否是在使用主流VPN,因为他们只能知道你在连接到一个 VPN网关(你的VPS服务器),但流量最终去了哪里是未知的。 不过,随着使用场景变多,原来的结构也逐渐暴露出一些局限。最典型的问题是,对流量的 控制不够细粒度。默认情况下所有流量都必须进入上游 VPN 隧道,这对于某些服务可能会 触发风控,或者导致访问问题。而且比较难方便地进行流量工程,对不同服务采用不同的出 口策略。原先通过 iptables 和路由表的方式虽然能实现分流,但规则一多就难维护。 因此,我把原来的方案重新整理成了一个更完整的个人 VPN 网关架构。新版方案不再只是 简单的 WG-Easy + Gluetun,而是变成了: WG-Easy + sing-box + Gluetun + AdGuard Home + config.yaml 统一配置生成 对我来说,这套方案已经不只是“VPN 套 VPN”,而是一个可以长期维护、可扩展、可观察的 个人网络出口。它既可以服务日常上网,也可以服务远程办公、家庭内网访问、开发测试和 多设备统一管理。如果你只需要最简单的全局 VPN 转发,旧版思路仍然够用。但如果你希 望在隐私、可控性、分流规则和 DNS 管理之间取得更好的平衡,新版架构会更合适。 ...