Open source · GPLv3Self hosted VPN

你的 VPN,应该跑在自己的服务器上

开源、抗审查、全平台。填好 IP、SSH 登录名和密码,Amnezia 会在你自己的服务器上自动部署 VPN 容器并完成连接,不经任何第三方中转,也无需手写配置文件。

5
官方支持平台
7+
经典与伪装协议
GPLv3
开源许可证
00 / 宣言
Self Hosted Manifesto

把 VPN 装回你自己的服务器上,容器部署、抗审查协议与按需分流全程由你掌控,不经任何第三方中转。

SSH → DOCKER01

输入 IP 与 SSH 凭据,客户端自动拉起隔离的协议容器

DPI RESISTANT02

内置 AmneziaWG、XRay、Cloak 与 Shadowsocks 流量伪装

SPLIT TUNNEL03

支持按网站域名与应用程序维度精准分流

01 / 能力
Features

自托管,但不折腾

Amnezia 把「在服务器上装 VPN」这件事压缩成三个输入框。剩下的协议、容器、证书和路由,它自己处理。

01

极易自动部署

输入你的 IP 地址、SSH 登录名和密码,Amnezia 就会自动在你的服务器上安装 VPN Docker 容器并连接到 VPN,无需手写配置文件。

SSH :22 · Auto Docker Provisioning
02

专属自托管服务器

VPN 服务端完全运行在你自己的机器上,不经过第三方中转。密钥、流量和容器控制权都留在你手里。

Self Hosted · Zero Third Party Relay
03

流量伪装与混淆

内置基于 Cloak 插件的 OpenVPN、Shadowsocks(OpenVPN over Shadowsocks)、AmneziaWG 以及 XRay,应对深度包检测。

AmneziaWG · XRay · Cloak · Shadowsocks
04

按网站与应用分流

支持 Split tunneling,可将任意网站加入客户端列表,仅对这些网站启用 VPN;也可按应用分流(支持 Android 和桌面端)。

Domain & Application Split Tunneling
05

五大平台全覆盖

官方提供 Windows、macOS、Linux、Android、iOS 客户端版本,跨设备保持一致的自托管连接体验。

Desktop & Mobile · Qt 6 Native UI
06

路由器固件支持

支持在 Keenetic 测试版固件上配置 AmneziaWG 协议,将整网设备流量直接纳入加密隧道。

查看 Keenetic 固件文档
Keenetic OS · AmneziaWG Tunnel
02 / 协议
Protocols

经典协议,还有能过审查的几种

同一份客户端里,既有标准 VPN 协议,也有专门为对抗深度包检测设计的伪装方案。

经典 VPN 协议

Classic

标准、成熟、兼容性好,适合网络环境宽松的场景。

  • 01OpenVPNTCP / UDP · TLS
  • 02WireGuardUDP · Kernel / Userspace
  • 03IKEv2IPSec · Mobile Ready

流量伪装 / 混淆

Obfuscation

让流量看起来不像 VPN,用于网络受限或存在主动探测的环境。

伪装协议的目标是降低被识别的概率,不是保证不被封锁。网络环境变化时,协议效果也会变化, 建议同时准备多条线路。详见 故障排查文档。
04 / 构建
Build from source

从源码构建

检出仓库后先拉取子模块,然后按平台准备依赖。deploy 目录下的脚本会在默认安装路径下自动找到依赖。

01

检出源代码

检出仓库后,请务必递归拉取所有 Git 子模块。

shell · git submodule
git submodule update --init --recursive
02

准备构建依赖

核心依赖与各平台编译工具要求如下,打包工具为可选项。

CMake01

跨平台构建系统入口,用于配置与生成各平台工程文件

编译器与底层构建系统02

Linux 使用 make 或 gcc;Apple 使用 Xcode 或命令行工具;Windows 使用 VS 2022;Android 使用 Android SDK 与 Ninja

Qt 6.10+03

需包含目标平台 Core 模块(桌面端 / Android / iOS)、Qt 5 兼容模块及 Qt Remote Objects

Conan 包管理器04

macOS 可通过 homebrew 或项目根目录 .venv 安装,其他系统需加入 PATH 环境变量

Qt Installer Framework05

可选依赖,用于构建 Windows 与 Linux 平台安装程序

WIX 工具集06

可选依赖,用于构建 Windows 平台 MSI 安装包

03

运行构建脚本

依赖不在默认路径时,用环境变量指定位置,例如 QT_INSTALL_DIR、QIF_ROOT_PATH、ANDROID_HOME。

bash · deploy/build.sh
# 为主机平台构建可执行文件
deploy/build.sh

# 构建可执行文件及安装包
deploy/build.sh --installer all

# 构建 Android APK 和 AAB
deploy/build.sh -t android --aab

# 查看帮助
deploy/build.sh -h

环境变量

脚本在依赖不在默认安装路径时,通过以下变量定位:

QT_INSTALL_DIRQt 根安装目录
QT_ROOT_PATHQt 框架根目录
QIF_ROOT_PATHQt Installer Framework 根路径
ANDROID_HOMEAndroid SDK 根目录

在 IDE 中开发

任何能正确处理 CMake 和 Qt kits 的 IDE 都可以。

例如 Qt Creator、装了 Qt Extension Pack 的 VS Code。用 Xcode 需先用 cmake 配置(最简单是先用 Qt Creator 配置一次),再打开构建目录里的 AmneziaVPN.xcodeproj。改动实际发生在构建目录中,注意手动复制。

Android Studio 同理:配置后打开构建目录下的客户端 Android 工程目录。

05 / Contribution

参与界面翻译

打开 GitHub Actions 标签页,点第一行成功构建,滚动到 Artifacts 下载 AmneziaVPN_translations。解压后每个 *.ts 文件对应一种语言,翻译或修正后提交回仓库的 client/translations 目录即可。

下载翻译包 01编辑对应语言的 *.ts 02提交回 client/translations 03
07 / 问答
FAQ

常见问题解答

关于自托管部署、抗审查协议、分流配置与源码构建的核心问题。

01

Amnezia VPN 如何完成自托管部署?

你只需要准备一台自己的服务器,在客户端中输入服务器 IP 地址、SSH 登录名和密码,Amnezia 就会自动通过 SSH 在服务器上安装对应的 VPN Docker 容器并完成连接配置。

02

支持哪些抗审查与流量伪装协议?

除 OpenVPN、WireGuard 和 IKEv2 经典协议外,客户端内置了基于 Cloak 插件的 OpenVPN、Shadowsocks(OpenVPN over Shadowsocks)、AmneziaWG 以及 XRay 协议。

03

分流(Split tunneling)支持哪些粒度?

你可以将指定网站加入客户端列表,仅让这些网站走 VPN 隧道;在 Android 与桌面端版本中,还可以按应用程序维度配置分流规则。

04

如果所在地区无法打开官网或文档怎么办?

可以直接访问托管在 Google Cloud Storage 上的备用官网镜像与文档镜像,也可以前往 GitHub Releases 页面直接下载全平台安装包。

05

如何在 Xcode 或 Android Studio 中调试源码?

先使用 CMake 或 Qt Creator 完成一次项目配置,随后在 Xcode 中打开构建目录下的 AmneziaVPN.xcodeproj,或在 Android Studio 中打开客户端构建目录下的 android 构建文件夹。注意修改保存在构建目录中,需手动同步回源码树。

06

项目采用什么开源许可?如何参与翻译?

本项目基于 GNU GPLv3 许可证发布。如需协助翻译,可在 GitHub Actions 最新成功构建的 Artifacts 中下载 AmneziaVPN_translations,编辑对应语言的 .ts 文件后提交至 client/translations 目录。

09 / Support

准备部署你的专属 VPN?

立即下载全平台客户端;如遇连接或服务器配置问题,可先查阅故障排查文档,或前往 Telegram 与 Reddit 社区交流。

Open Source · GPLv3 · Self Hosted VPN