全屋 VPN 路由器,带网络级断网开关 - 使用 OpenWrt、WireGuard 和 AmneziaWG 保护你网络中的每个设备。无需安装应用。
🤖 使用 AI 编程代理? 请让它访问整个仓库,并阅读 AGENTS.md 获取部署指导。支持 Claude、GPT、Gemini 及其他前沿模型。
将 Raspberry Pi 或迷你 PC 变成 VPN 网关,保护你的整个家庭网络:
兼容: 任何兼容 WireGuard 的 VPN 提供商(Mullvad、IVPN、AirVPN 等)
AmneziaWG 混淆: 可与任何标准 WireGuard 服务器配合使用(客户端混淆)
2025 年是在线隐私的转折点:
这对你意味着什么:
这套方案能解决以上所有问题 - 你网络中的每个设备都通过加密隧道传输。ISP 看不到浏览历史。无需逐站点验证身份。无需安装应用,也无需记得开启它们。
当你在手机或笔记本电脑上安装 Mullvad、NordVPN 或 ProtonVPN 等 VPN 应用时,你只能保护那一台设备。这会造成漏洞:
| 设备 | VPN 应用支持 | 风险 |
|---|---|---|
| 智能电视 | ❌ 无 | ISP 能看到所有流媒体内容 |
| 游戏机 | ❌ 无 | IP 暴露给游戏服务器 |
| 物联网设备 | ❌ 无 | 智能家居流量可见 |
| 访客设备 | ❌ 无法控制 | 无保护 |
| 工作笔记本 | ⚠️ 可能冲突 | 公司策略阻止 VPN |
| 儿童设备 | ⚠️ 可被禁用 | 保护被绕过 |
VPN 应用还有以下问题:
这款隐私路由器位于你的调制解调器和现有路由器之间。网络中的每个设备都会自动通过 VPN 路由 - 无需应用、无需配置、没有例外。``` ┌─────────────────────────────────────────────────────────────────────┐ │ YOUR HOME NETWORK │ │ │ │ ┌──────────┐ ┌─────────────────┐ ┌──────────────────────┐ │ │ │ MODEM │───▶│ PRIVACY ROUTER │───▶│ YOUR EXISTING ROUTER│ │ │ │ (ISP) │ │ (This Stack) │ │ (WiFi/Switch) │ │ │ └──────────┘ └─────────────────┘ └──────────────────────┘ │ │ │ │ │ │ ┌─────┴─────┐ ┌──────┴──────┐ │ │ │ ENCRYPTED │ │ ALL DEVICES │ │ │ │ TUNNEL │ │ PROTECTED │ │ │ └───────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────────────────────┘
**每台设备都受到保护:** 手机、平板、笔记本电脑、智能电视、游戏主机、物联网设备、访客——统统在内。单个设备在需要时可以被[绕过](https://github.com/yoloshii/privacy-first-network/blob/main/docs/CONFIGURATION.md#vpn-bypass-routing)以获得直接 WAN 访问。
---
## 为什么不全用 Mullvad QUIC 或 WireGuard 应用?
好问题。Mullvad 的 QUIC 隧道和 WireGuard 应用在单设备保护方面表现出色。以下是各自适用的场景:
### 使用 VPN 应用更合适的情况:
- 你只需要保护 1-2 台设备
- 你经常出差并使用不同的网络
- 你想要按应用分流
- 你身处不受自己控制的网络
### 网络级 VPN 更合适的情况:
- 你拥有许多设备(尤其是那些无法运行 VPN 应用的设备)
- 你想要为整个家庭提供“一劳永逸”的保护
- 你需要保护智能家居/物联网设备
- 你想要一个**真正有效的 kill switch**(下面会详述)
- 你所在的地区存在 VPN 封锁/深度包检测(DPI)
### Kill Switch 的问题
大多数人都没有意识到这一点:**VPN 应用的 kill switch 常常会失效**。
当 VPN 应用崩溃、失去连接,或在连接断开到重新连接的间隙,你的流量可能会泄漏给 ISP。基于应用的 kill switch 试图阻止这种情况,但它们运行在应用层——如果应用本身崩溃,kill switch 也会随之失效。
**这套方案实现了一个基于防火墙的 kill switch:**```
Normal Operation:
Device → Privacy Router → VPN Tunnel → Internet ✓
VPN Down (App-based kill switch):
Device → [App crashed] → ISP sees traffic ✗
VPN Down (This stack):
Device → Privacy Router → [No route exists] → Traffic blocked ✓
Kill Switch 是在防火墙和路由表中实现的,而不是在软件中实现。如果 VPN 隧道断开,流量实际上没有任何路由可走——它不是被一条可能失效的规则阻断,而是根本没有去处。
安装与配置请参阅 OPTIONAL_ADDONS.md。
Kill Switch 是最重要的安全功能。下面详细说明其工作原理:
┌─────────────────────────────────────────────────────────┐ │ FIREWALL ZONES │ ├─────────────────────────────────────────────────────────┤ │ │ │ ┌─────┐ ┌─────┐ ┌─────┐ │ │ │ LAN │───✓────▶│ VPN │ │ WAN │ │ │ └─────┘ └─────┘ └─────┘ │ │ │ ▲ │ │ │ │ │ │ └───────────✗───────────────────┘ │ │ (NO FORWARDING ALLOWED) │ │ │ └─────────────────────────────────────────────────────────┘
来自 LAN 的流量**只能**进入 VPN 区域。不存在从 LAN 到 WAN 的转发规则。这不是可以被绕过的“阻止”规则——路由根本不存在。
### 路由表```bash
# When VPN is UP:
default dev awg0 # All traffic → VPN tunnel
1.2.3.4 via 192.168.1.1 # VPN server → WAN (exception)
# When VPN is DOWN:
# No default route exists
# Traffic has nowhere to go = blocked
即使莫名存在一条转发规则,路由表也会提供第二层防线:由于没有指向 WAN 的默认路由,数据包无论如何都会被丢弃。
部分 ISP 和国家使用**深度包检测(DPI)**来识别并封锁 VPN 流量。标准 WireGuard 具有可识别的数据包特征。
AmneziaWG 是 WireGuard 的一个混淆分支,新增了客户端混淆能力:
| 参数 | 用途 |
|---|---|
| Jc, Jmin, Jmax | 握手前发送的垃圾数据包 |
| H1-H4 | 报头混淆值 |
| S1-S4 | 数据包填充大小 |
| I1-I5 | 协议伪装数据块(QUIC、DNS 等) |
这些参数可伪装 WireGuard 流量。I1-I5 参数尤其强大——它们会在 WireGuard 握手开始之前注入看似其他协议(QUIC/HTTP3、DNS 查询)的数据包。
重要提示:混淆仅在客户端生效。 垃圾数据包和协议伪装都在本地完成——VPN 服务器只会看到随后到来的合法 WireGuard 握手。这意味着:
什么时候需要它?
如果你的 VPN 使用常规 WireGuard 即可正常工作,那么你也可以直接使用标准 WireGuard——该架构对两者均兼容。
所有选项都提供相同的核心防护:AmneziaWG 混淆、AdGuard DNS 过滤、kill switch 和看门狗恢复。区别在于你希望如何部署,而不是功能上的差异。
| 选项 | 部署内容 | 你现有的路由器 |
|---|---|---|
| A:专用硬件 | 完整路由器 OS(OpenWrt),运行于 Pi/迷你主机 | 仅作为 WiFi 接入点 |
| B:虚拟机 | 完整路由器 OS(OpenWrt),运行于 Proxmox/ESXi | 仅作为 WiFi 接入点 |
| C:Docker 容器 | 仅 VPN 网关(Alpine 容器) | 保留其全部现有功能 |
选项 A 和 B(OpenWrt——完整路由器替换方案): 你部署的是一个完整的路由器操作系统。OpenWrt 负责一切:路由、DHCP、DNS、防火墙、VPN。你现有的路由器降级为仅提供 WiFi 的接入点。这是一个专用隐私路由器设备。