AmneziaWG 设置指南
关键词
| 关键词 | 定义 |
|---|---|
| 🛡️ AmneziaWG | WireGuard 的一个分支,通过随机化数据包头、大小和传输时间来对抗深度包检测,同时保持相同且经过验证的加密。这是一种运行在你的服务器上的协议。 |
| 🚀 AmneziaWG 2.0 | 当前的主版本,使用动态头部范围(而不是固定值),增加数据层填充(S4),并支持带有自定义协议签名的替代数据包,以实现更强的 DPI 规避。 |
| 🔍 Deep Packet Inspection (DPI) | 一种由 ISP 和政府机构使用的网络过滤技术,通过分析数据包头、大小和握手模式来识别并阻止 VPN 流量。AmneziaWG 专门为对抗它而设计。 |
| ⚡ WireGuard | 一种快速、现代的 VPN 协议,代码库小,具备内核级性能。由于其固定的数据包结构,DPI 系统很容易识别它,而这已在 AmneziaWG 中得到处理。 |
| 🏠 Self-hosted VPN | 你在自己的服务器上(通常是 VPS)部署和管理的 VPN,而不是订阅商业提供商。你控制密钥、配置和基础设施。 |
| 🐧 DKMS (Dynamic Kernel Module Support) | 一个 Linux 框架,当系统内核更新时会自动重新编译内核模块。AmneziaWG 安装程序使用 DKMS 来构建高性能内核模块。 |
| 🎭 Obfuscation | 伪装 VPN 流量,使其看起来像普通互联网流量的做法。AmneziaWG 在传输层通过随机化头部、添加填充、发送替代数据包以及生成垃圾数据包来进行混淆。 |
| 🔀 Split tunneling | 一种路由配置,只有特定流量(例如被屏蔽的网站)通过 VPN,而其他流量使用你的直连。适用于部分审查的国家。 |
| 🖥️ KVM vs LXC | KVM 是完整虚拟化,需要专用内核来加载像 AmneziaWG 这样的自定义内核模块。LXC 是容器虚拟化,使用宿主机共享内核,无法加载自定义模块。 |
| 🎪 CPS (Custom Protocol Signature) | AmneziaWG 2.0 的一项功能,在实际握手开始前发送模仿其他协议(QUIC、DNS、SIP)的替代数据包,使 DPI 系统误将流量分类为正常流量。 |
自部署 AmneziaWG VPN Server — 完整指南

AmneziaWG 是一种旨在解决特定问题的协议:当你连接的网络积极尝试阻止 WireGuard 时,如何仍然实现 WireGuard 速度?它是由 Amnezia VPN 团队创建的 WireGuard 分支,它做到了原版做不到的事——随机化传输层,使深度包检测系统无法识别它。加密保持完全相同。改变的只是网络中数据包的外观。
多年来,VPN 混淆的整体格局一直是一场军备竞赛。像 Shadowsocks、VLESS+Reality 和带有 obfs4 的 OpenVPN 这样的工具,试图以各种方式伪装流量——有些伪装成代理,有些伪装成完整隧道,有些则以较高的性能代价实现。AmneziaWG 占据了一个特定细分领域:它是一个完整的 VPN 隧道,具备 WireGuard 级别的性能和内置 DPI 保护,全部集于一体。并且由于它是开源的,你可以将其部署在自己的服务器上。
但这正是使其必要的问题所在。你设置了 WireGuard。它运行得完美——快速、干净、可靠。然后某一天,它突然停止了。没有错误信息,没有超时,没有连接拒绝。数据包只是消失了。这就是 DPI 阻断在实践中的样子:你的隧道仍在运行,你的配置仍然正确,但没有任何流量通过。这就是俄罗斯(WireGuard 的成功率约为 12%)、伊朗(98% 数据包丢失)以及越来越多国家的现实,包括中国、埃及、阿联酋、土耳其、白俄罗斯、乌兹别克斯坦、哈萨克斯坦、缅甸和巴基斯坦。

传统替代方案并不能完全解决这个问题。Shadowsocks 是代理,不是完整的 VPN 隧道——你的 DNS 和非 TCP 流量仍然会泄漏。带有 obfs4 的 OpenVPN 可以工作,但大约有 25% 的性能开销。VLESS+Reality 提供了强大的混淆,但它基于代理,且设置复杂。AmneziaWG 填补了这一空白:它是一个完整的 VPN 隧道,具备 WireGuard 级别的性能和内置 DPI 保护。
本指南将带你在不到 15 分钟内,使用一个社区安装脚本,在任何 KVM VPS 上部署一个功能完整的 AmneziaWG 2.0 server。到最后,你将拥有一个可工作的 VPN 隧道,可从任何设备连接。步骤与提供商无关——它们适用于任何具有 SSH 访问和 root 权限的 VPS,无论来自 AvaHost 还是其他提供商。本文面向具备中级技术能力、熟悉 SSH 和基本 Linux 命令的用户。
在开始之前先说明一点:AmneziaWG 是一种协议。AmneziaVPN 是一个客户端应用程序,用于连接它。它们相关但不同——就像浏览器中的 TLS 一样。你需要一个应用程序来连接,但运行在你服务器上的是协议。
但在部署任何东西之前,你需要了解 AmneziaWG 与 WireGuard 的不同之处——以及当 DPI 正在监视你时,这种差异为何重要。
什么是 AmneziaWG?(心智模型)
WireGuard 的设计非常优雅。它代码库小,使用现代加密,并在 Linux 内核中运行,几乎具备原生性能。但这种优雅也带来了可见性问题:每个 WireGuard 数据包都带有相同的固定头部结构、相同的固定数据包大小,以及相同的握手模式。对于深度包检测系统来说,WireGuard 隧道的特征就像条形码一样清晰。一旦 DPI 设备学会了这个特征,它就可以丢弃每个数据包,而无需阻止端口或关闭连接。

可以这样理解。WireGuard 就像一个总是穿着同样制服的快递员——快速、可靠、高效。但任何在路边观察的人都会学会识别这套制服,并能在任何检查点拦下快递员。AmneziaWG 是同一个快递员,运送着同样的包裹,但他在每个检查点都会换一套制服。还是同一个人,同样的货物,外观却完全不同。
版本历史很重要。AmneziaWG 1.x 引入了与 WireGuard 固定值不同的自定义头部——这在一段时间内有效,但 DPI 系统随后适应了。AmneziaWG 2.0 于 2025 年末发布,它随机化了一切:头部在每个数据包之间变化,填充在每条消息之间变化,而替代数据包会在实际握手开始前模仿其他协议。由于每个 AmneziaWG 2.0 server 都会生成自己独特的一组参数,因此不存在可用于检测的通用特征。每个 server 都有自己的方言。
当所有混淆参数都设为零时,AmneziaWG 的行为与 WireGuard 完全相同——在协议层面完全向后兼容。但在启用参数时(这是默认设置),它就变成了 WireGuard 无法做到的东西:一个让 DPI 系统难以识别的快速 VPN 隧道。
那么 AmneziaWG 到底是如何加密其流量的?让我们看看使 DPI 失明的四个混淆层,以及为什么它们几乎不会带来速度成本。
AmneziaWG 如何躲避 DPI(且不损失速度)
AmneziaWG 2.0 使用四层协同工作的混淆。每一层都针对 DPI 系统识别 VPN 流量的不同方式。它们共同使每个 server 的流量都独一无二。
动态头部(H1–H4)
WireGuard 使用固定的 32-bit 消息类型标识符:
- 1 — 用于初始化
- 2 — 用于响应
- 3 — 用于带 cookie 的响应
- 4 — 用于数据
扫描流量的 DPI 设备只需查找这些值。AmneziaWG 2.0 用从指定范围中选择的随机数替换每个固定值。初始化头部(H1)可以是 234567 到 345678 之间的任意值。响应头部(H2)可以是 3456789 到 4567890 之间的任意值。这些范围绝不会重叠——协议内部仍然需要区分数据包类型——但对于外部观察者来说,没有单一的头部值可供锁定。每个数据包看起来都与前一个不同。
随机填充(S1–S4)
WireGuard 的初始化数据包始终精确为 148 bytes。其响应始终精确为 92 bytes。这些固定大小也是一种指纹。AmneziaWG 为每种数据包类型添加随机填充:初始化变为 148+S1 bytes,响应变为 92+S2 bytes,带 cookie 的响应变为 64+S3 bytes,而每个数据包都会收到 S4 bytes 的填充。S3 和 S4 是 2.0 版本中的新增内容——其中 S4 是最重要的新增,因为它影响每一个数据包,使会话级流量分析变得更加困难。
有一个关键约束:S1+56 不能等于 S2。由于初始化与响应之间的原始大小差异为 56 bytes(148−92),如果填充值随机地正好抵消了这个差异,那么两个填充后的数据包最终会变成相同大小——重新制造出 AmneziaWG 试图消除的指纹。安装程序的参数生成器会自动确保这一约束。
自定义协议签名(I1–I5)
在实际握手开始之前,AmneziaWG 客户端会发送最多五个替代数据包,这些数据包模仿其他协议——QUIC、DNS、SIP,或自定义字节模式。server 会完全忽略这些数据包。它只是等待真正的握手。
- 简单配置:发送 128 个随机字节 <r 128>。
- 复杂配置:发送看起来像发起 QUIC 连接的字节(<b 0xc000000001><r 64><t>),并带有 Unix 时间戳。
对于观察会话开始的 DPI 系统来说,最初的数据包看起来就像普通的 web 流量。
垃圾数据包(Jc,Jmin,Jmax)
在替代数据包之后,客户端会发送可自定义数量的垃圾数据包——纯噪声,大小在 Jmin 到 Jmax 之间随机。这些数据包会模糊会话开始时的时序和大小特征,使 DPI 系统更难识别真正握手的开始位置。
速度问题
互联网上流传着一个数字:AmneziaWG 有 65% 的开销。这个数字是真实的,但它指的是用户空间 Go 实现——不是内核模块。本指南使用的社区安装程序会构建一个 DKMS 内核模块,而该内核模块整体开销不到 12%——在真实测试中更接近 3%。在未审查的网络上,你会看到 WireGuard 约 95 Mbps,而 AmneziaWG 2.0 约 92 Mbps。在受审查的网络上,对比则是 92 Mbps 与零。
下表总结了安装程序自动生成的参数:
| 参数 | 生成范围 | 示例值 |
|---|---|---|
| Jc(垃圾数据包数量) | 4–8 | 6 |
| Jmin(最小垃圾大小) | 40–89 | 55 |
| Jmax(最大垃圾大小) | Jmin+100 到 Jmin+500 | 380 |
| S1(初始化填充) | 15–150 | 72 |
| S2(响应填充) | 15–150,S1+56≠S2 | 56 |
| S3(cookie 填充) | 8–55 | 32 |
| S4(数据填充) | 4–27 | 16 |
| H1(初始化头部范围) | uint32 without overlap | 234567-345678 |
| H2(响应头部范围) | uint32 without overlap | 3456789-4567890 |
| H3(cookie 头部范围) | uint32 without overlap | 56789012-67890123 |
| H4(数据头部范围) | uint32 without overlap | 456789012-567890123 |
| I1(CPS 数据包) | <r N> 格式 | <r 128> |
你无需手动设置这些参数。安装程序每次都会生成满足约束条件的加密随机值。
现在你已经了解了混淆如何工作,让我们看看 AmneziaWG 与你可能正在考虑的替代方案相比如何。
AmneziaWG vs 替代方案 — 快速决策指南

| WireGuard | AmneziaWG 2.0 | OpenVPN+obfs4 | Shadowsocks | VLESS+Reality | |
|---|---|---|---|---|---|
| DPI Resistance | Low | High | Medium | Medium | Very High |
| Speed Overhead | ~4% | <12% (~3% in real conditions) | ~25% | ~8% | ~10% |
| Full VPN Tunnel | Yes | Yes | Yes | No (proxy) | No (proxy) |
| Runs in Kernel | Yes | Yes (DKMS) | No | No | No |
| Setup Complexity | Low | Low (with installer) | High | Medium | High |
| Transport | UDP | UDP | TCP/UDP | TCP | TCP |
决策规则很简单:
- 你的国家没有 DPI? 使用普通 WireGuard。它更简单,生态也更广。
- 需要最大 DPI 保护且不介意代理? VLESS+Reality 是最强的混淆选项,但它不是完整隧道。
- 想要速度和带混淆的完整隧道? AmneziaWG 2.0 是唯一能在完整 VPN 隧道中提供 WireGuard 级性能和真实 DPI 保护的选项。
- 已经在使用 OpenVPN+obfs4 且仍然可用? 没有紧急理由切换,但 AmneziaWG 会明显更快。
本文聚焦 AmneziaWG,因为它是唯一一种能为你提供完整隧道、内核级性能和内置混淆的协议——而且只需一个脚本即可完成设置。
如果 AmneziaWG 适合你的情况,那么在开始部署之前,你需要准备以下内容。
开始前你需要什么
在运行安装程序之前,请确保你的环境满足以下要求:
| 要求 | 详情 | 原因 |
|---|---|---|
| OS | Ubuntu 24.04 LTS(全新安装)。Ubuntu 25.10 为实验性版本。Debian 12/13 可用,但可能需要预先安装 curl。 | 安装程序已在 Ubuntu 24.04 上测试并获得完整支持。 |
| VPS Specs | 1 vCore, 1 GB RAM, 25 GB 存储。任何每月 $3–5 的套餐都适合。 | 安装程序在 DKMS 构建期间需要约 2 GB 磁盘空间和约 1 GB RAM。运行中的 VPN 资源占用很低。 |
| Virtualization | KVM(不是 OpenVZ,也不是 LXC)。 | AmneziaWG 通过 DKMS 加载内核模块。LXC 使用共享宿主机内核,无法加载自定义模块。 |
| SSH Access | 具有密码/密钥认证的 root 或 sudo 用户。 | 安装程序需要以 root 身份运行。 |
| SSH Port | 默认 22,或者如果使用非标准端口,则需在 UFW 中预先开放。 | 如果 SSH 不在 22 端口运行且你没有提前开放,安装程序的防火墙设置会阻止你。 |
| Client Application | Amnezia VPN >= 4.8.12.7(所有平台)。 | 旧客户端无法理解 AWG 2.0 选项。标准 WireGuard 客户端根本不支持 AWG。 |
⚠️ Warning: 不支持 LXC 容器。如果你的 VPS 使用 LXC 虚拟化,DKMS 内核模块构建将失败。你必须使用 KVM 或裸金属。如果不确定,请咨询你的提供商。
⚠️ Warning: 如果你的 SSH 运行在非标准端口(除 22 之外的任何端口),你必须在运行安装程序之前在 UFW 中打开它:
sudo ufw allow YOUR_PORT/tcp
将 YOUR_PORT 替换为你的实际 SSH 端口。安装程序包含带默认策略的 UFW——如果你的 SSH 端口未被允许,你会立即被阻止。
💡 Tip: 在创建 VPS 后等待 5–10 分钟再运行安装程序。Cloud-init 和后台初始化进程可能会与安装程序调用的 apt-get 冲突。
在你的 VPS 准备就绪且先决条件已确认后,让我们使用社区安装脚本部署 AmneziaWG 2.0——这是最快且最透明的方法。
方法 1 — 使用 CLI 安装程序部署(推荐)
这是主要安装方法。你将下载一个固定版本的安装脚本,以 root 身份运行它,完成八个自动化步骤(包含两次预期重启),最终得到一个完全配置好的 AmneziaWG 2.0 server。安装程序会处理一切:软件包安装、内核模块编译、防火墙配置、参数生成和服务启动。
6.1 — 通过 SSH 连接到你的 VPS
打开终端并连接到你的 server:
ssh root@<SERVER_IP>
将 <SERVER_IP> 替换为你的 VPS 的实际公网 IP 地址。如果你的提供商给了你一个非 root 用户,请使用该用户登录,然后提权:
ssh <username>@<SERVER_IP>
sudo -i
你应该会看到 Ubuntu 24.04 欢迎横幅,随后是 root 提示符:
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-xx-generic x86_64)
...
root@vps:~#
6.2 — 下载并运行安装程序
下载安装脚本,使其可执行,然后运行它:
wget https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.8.1/install_amneziawg_en.sh
chmod +x install_amneziawg_en.sh
sudo bash ./install_amneziawg_en.sh
该 URL 固定到 v5.8.1——截至 2026 年 4 月的最新版本。这是供应链安全措施:即使仓库自那以后已更新,它也能确保下载的脚本与经过测试的版本一致。
安装程序首先会检查你的系统:
============================================
AmneziaWG 2.0 Installer v5.8.1
============================================
Checking system requirements...
OS: Ubuntu 24.04 LTS — OK
Virtualization: KVM — OK
RAM: 1024 MB — OK
Disk: 25 GB free — OK
如果任何检查失败,安装程序会停止并告诉你原因。修复问题后重新运行命令。
6.3 — 按照安装程序提示操作
安装程序是一个带有重启后继续支持的八步状态机。它会将进度保存到 /root/awg/awgsetup_cfg.init,因此如果 server 重启,你只需再次运行相同命令,它就会从上次中断处继续。
步骤 0:初始化 — 安装程序检查你的 OS、虚拟化类型、RAM 和磁盘空间。它会创建 /root/awg/ 工作目录,并设置锁文件以防止并行运行。
步骤 1:系统更新与软件包安装 — 安装程序运行 apt-get update && apt-get upgrade -y 然后安装 AmneziaWG、DKMS、Linux headers、UFW、Fail2Ban、二维码生成工具以及其他依赖项。
📝 Note: 安装程序还会移除一些在小型 VPS 实例上消耗资源的后台服务:snapd、modemmanager、networkd-dispatcher、unattended-upgrades、packagekit、lxd-agent-loader 和 udisks2。这是有意为之,并且对最小化 VPN 节点是安全的,但可能会破坏通用环境。
当步骤 1 完成后,安装程序会请求重启:
Reboot required. Reboot now? [y/n]:
输入 y 并按 Enter。服务器重新启动后,再次通过 SSH 登录并重新运行相同命令:
sudo bash ./install_amneziawg_en.sh
脚本会读取其保存的状态,并继续执行步骤 2,而不会再次询问任何提示。
步骤 2:DKMS 内核模块构建 — 安装程序会针对你当前的内核编译 AmneziaWG 内核模块,并将其注册到 DKMS,以便在未来内核更新时自动重建:
Step 2: Building AmneziaWG kernel module via DKMS...
Creating symlink /var/lib/dkms/amneziawg/2.0/source -> /usr/src/amneziawg-2.0
DKMS: add completed.
Kernel preparation completed.
Building module:
make -C /lib/modules/6.8.0-xx-generic/build M=/var/lib/dkms/amneziawg/2.0/build modules
DKMS: build completed.
DKMS: install completed.
系统会请求第二次重启。输入 y 并按 Enter。
📝 Note: 安装期间两次重启是正常且预期的。第一次加载新的内核 headers,第二次激活新构建的内核模块。脚本会在重启之间保存状态——不会丢失任何内容。
第二次重启后,再次通过 SSH 登录并再运行一次安装程序:
sudo bash ./install_amneziawg_en.sh
步骤 3:重启后模块验证 — 脚本会验证内核模块是否已加载(lsmod | grep amneziawg)。如果 DKMS 构建因任何原因失败,它会回退到用户空间 Go 实现,并警告更高的开销。
步骤 4:防火墙设置 — 启用 UFW,并采用默认拒绝入站策略。安装程序会在 22 端口添加 SSH 限速规则,开放你的 VPN 端口用于 UDP 流量,并为 awg0 接口配置路由规则。
步骤 5:下载管理脚本 — 客户端管理脚本(manage_amneziawg.sh 和 awg_common.sh)会以仅所有者可访问的权限(700)下载到 /root/awg/。这些脚本同样固定到 v5.8.1。
步骤 6:交互式配置 — 安装程序现在会询问四个问题:
- UDP port(默认:39743,范围 1024–65535)。默认值是一个随机高端口——除非你的 ISP 已知会阻止高 UDP 端口,否则保持默认。
- Tunnel subnet(默认:10.9.9.1/24)。这是你的内部 VPN 网络。server 使用 .1,客户端使用 .2 到 .254,最多支持 253 个客户端。
- Disable IPv6(默认:Y)。推荐——禁用 IPv6 可防止流量通过 IPv6 路由泄漏到隧道外。
- Routing mode:选择 1 表示所有流量,2 表示 Amnezia List + DNS(推荐),或 3 表示自定义网络。模式 2 仅通过 VPN 路由被屏蔽的公共 IP 段和 DNS,同时保持本地网络访问快速且直接。
💡 Tip: MTU 默认设置为 1280。这是最小 IPv6 MTU,对于移动和蜂窝网络至关重要。iOS 对 Path MTU Discovery 很严格,而蜂窝网络的有效 MTU 往往低于 WireGuard 默认的 1420。请保持 1280。
步骤 7:服务启动 — 安装程序会在 /etc/amnezia/amneziawg/awg0.conf 生成 server 配置,在 /root/awg/ 创建两个默认客户端配置(my_phone 和 my_laptop),生成二维码,并启动 awg-quick@awg0 systemd 服务。
步骤 8:完成 — 你会看到成功消息:

安装程序会自动生成所有 AmneziaWG 2.0 混淆参数。你无需手动处理它们。每个 server 都会获得一组独特的值——DPI 系统没有通用指纹可检测。
6.4 — 安装后管理客户端
位于 /root/awg/manage_amneziawg.sh 的管理脚本处理所有客户端生命周期操作。以下是核心命令:
添加新客户端:
sudo bash /root/awg/manage_amneziawg.sh add my_desktop
这会为新客户端生成一个 .conf 文件、二维码和 .vpnuri 文件。server 配置会热重载——无需重启服务。
添加临时自动过期客户端:
sudo bash /root/awg/manage_amneziawg.sh add guest --expires=7d
一个 cron 任务每五分钟检查一次,并在客户端过期时自动移除它。配置、密钥和 server 条目都会被清理。
列出所有客户端:
sudo bash /root/awg/manage_amneziawg.sh list
Clients: my_phone (10.9.9.2/32) my_laptop (10.9.9.3/32) my_desktop (10.9.9.4/32) guest (10.9.9.5/32) [expires in 6d 23h]
添加 -v 标志可显示更多细节,包括公钥和创建日期。
移除客户端:
sudo bash /root/awg/manage_amneziawg.sh remove guest
检查完整 server 状态:
sudo bash /root/awg/manage_amneziawg.sh check
这会在一个视图中显示服务状态、开放端口、所有 AWG 2.0 参数、内核模块状态、UFW 状态和 Fail2Ban 状态。
查看每个客户端的流量统计:
sudo bash /root/awg/manage_amneziawg.sh stats
Client Received Sent Latest handshake ─────────────────────────────────────────────────────────────────── my_phone 1.24 GiB 356.7 MiB 2 minutes ago my_laptop 892.3 MiB 128.4 MiB 15 seconds ago my_desktop 0 B 0 B (none)
创建备份:
sudo bash /root/awg/manage_amneziawg.sh backup
这会在 /root/awg/backups/ 创建一个压缩归档,包含你的 server 配置、客户端配置、密钥和过期数据。
📝 Note: add 和 remove 命令使用 awg syncconf 进行热重载。server 配置会立即更新,无需重启服务。只有在更改端口或 MTU 等 server 端参数时才使用 restart。
6.5 — 验证 server 是否运行
执行以下检查以确认一切正常运行:
检查 systemd 服务:
sudo systemctl status awg-quick@awg0
● awg-quick@awg0.service - AmneziaWG Quick via awg-quick(8) for awg0
Loaded: loaded (/lib/systemd/system/awg-quick@.service; enabled)
Active: active (exited) since Thu 2026-04-09 14:32:01 UTC验证 AmneziaWG 状态和参数:
sudo awg show awg0
验证防火墙:
sudo ufw status verbose
Status: active Default: deny (incoming), allow (outgoing) 22/tcp LIMIT IN Anywhere 39743/udp ALLOW IN Anywhere
验证 Fail2Ban:
sudo fail2ban-client status sshd
Status for the jail: sshd |- Filter | |- Currently failed: 0 | `- Total failed: 0 `- Actions |- Currently banned: 0 `- Banned IP list:
验证 DKMS 内核模块:
dkms status
amneziawg/1.0.0, 6.8.0-110-generic, x86_64: installed
如果这五项检查都通过,你的 AmneziaWG 2.0 server 就已运行并准备好接受连接。
你的 server 已运行并已验证。如果你更喜欢 GUI 驱动的方式而不是终端,下面是使用 AmneziaVPN app 的替代方法。
方法 2 — 使用 AmneziaVPN App 部署(替代)
AmneziaVPN 桌面应用可以通过 SSH 在你的 server 上自动安装 AmneziaWG。它使用与 CLI 方法相同的底层安装脚本,但将所有内容封装在引导式界面中。如果你想要免操作的安装体验,这非常理想。
- 下载 AmneziaVPN,地址为 amnezia.org/en/downloads。它适用于 Windows、macOS、Linux、Android 和 iOS。
- 打开 app,然后点击 ➕(加号图标)或 Get Started。
- 从提供的选项中选择 “Self-hosted VPN”。
- 输入你的 server 凭据:
- Server IP address(如果 SSH 不在 22 端口,还需输入端口,例如 203.0.113.10:2221)
- SSH username(例如 root)
- Password 或 SSH private key
- 选择安装类型:
- Automatic — 仅安装 AmneziaWG(推荐)
- Manual — 从列表中选择特定协议
- 点击 “Install” — app 会通过 SSH 连接到你的 server 并自动运行安装。你会看到进度指示器。
- 安装完成后,app 会创建一个可直接使用的 VPN 连接配置文件。
安装后说明:
- app 默认使用随机端口安装 AmneziaWG。一些 ISP 会阻止高端口上的 UDP。app 建议改用 9999 以下的端口(例如 585 或 1234)。更改方法:点击连接旁边的齿轮图标 → Management tab → 更改端口号。
- 如果你的 server 已经安装了 Amnezia 软件,在创建连接时点击 “Skip setup”,然后在 Management tab 中使用 “Check the server for previously installed Amnezia services”。
以下是两种方法的比较:
| 方面 | CLI Installer | AmneziaVPN App |
|---|---|---|
| Control | Full — 你可以看到每一步,并可自定义 | Limited — app 处理一切 |
| Visibility | Transparent — 所有命令可见 | Opaque — 在后台运行 |
| Flexibility | Custom routing, endpoint, flags | Uses defaults only |
| Ease of use | Requires SSH familiarity | Zero terminal work |
| Management | Full manage_amneziawg.sh suite | App-based management only |
| Best for | Unmanaged VPS, troubleshooting | Quick setup, guided experience |
无论你使用 CLI 还是 app,你的 server 都已准备就绪。现在让我们连接你的第一台设备。
连接你的第一个客户端
安装后,你有三种方式将客户端配置导入 Amnezia VPN app。请选择与你设备相匹配的一种。
方法 A:二维码(移动端)
安装程序已在 /root/awg/my_phone.png 生成二维码。将其下载到你的电脑:
scp root@<SERVER_IP>:/root/awg/my_phone.png .
在屏幕上打开 PNG 文件。在你的手机上,打开 Amnezia VPN app,点击 “Add VPN” → “Scan QR code”,然后将摄像头对准屏幕上的二维码。连接会自动导入。
方法 B:vpn:// URI(Amnezia Client)
在你的 server 上显示压缩后的 URI:
cat /root/awg/my_phone.vpnuri
复制完整的 vpn://… 字符串并发送给自己——通过 Telegram、电子邮件或笔记 app。在你的手机上,打开 Amnezia VPN app,点击 “Add VPN” → “Paste from clipboard”。配置会一步导入。
该 URI 是完整配置文件经过 zlib 压缩并使用 Base64 编码后的版本。它很紧凑,适合快速分享。
方法 C:.conf 文件(桌面/Windows)
下载配置文件:
scp root@<SERVER_IP>:/root/awg/my_phone.conf .
打开 AmneziaWG for Windows 客户端或 AmneziaVPN desktop app,点击 “Import tunnel(s) from file”,然后选择 .conf 文件。
验证连接
连接后,验证隧道是否正在通过 server 路由你的流量:
curl ifconfig.me
输出应显示你的 server 公网 IP 地址,而不是你的本地 IP:203.0.113.1
如需更多细节,包括 server 的地理位置:
curl -s https://ipinfo.io/json
{
"ip": "203.0.113.1",
"city": "Amsterdam",
"region": "North Holland",
"country": "NL",
...
}⚠️ Warning: 标准 WireGuard 客户端不适用于 AmneziaWG 2.0 配置。你必须使用 Amnezia VPN app(版本 4.8.12.7 或更高)或原生 AmneziaWG 客户端(Windows/Android/iOS 上版本 2.0.0 或更高)。
⚠️ Warning: 如果你在 Windows 上看到 “Invalid key: s3”,说明你的 AmneziaWG Windows 客户端过旧(版本低于 2.0.0)。请更新到 2.0.0+ 或切换到 Amnezia VPN app。
💡 Tip: 如果你已连接但没有互联网,请检查客户端配置在 [Interface] 部分是否有 MTU = 1280。这是移动网络上“握手成功但没有流量”的最常见原因。
恭喜!你的 VPN 隧道已正常工作。
下一步 — 扩展你的设置
你现在已经在自己的服务器上运行了一个抗 DPI 的 VPN 隧道,完全由你控制,并具备 WireGuard 级速度。导致 WireGuard 连接失效的静默数据包死亡不再是问题——你的流量看起来不像 DPI 系统能够可靠识别的任何东西。
接下来你最有用的几件事:
- 为你的家人或团队添加客户端 — 使用管理脚本为每台需要访问的设备生成配置。
- 配置 split tunneling,如果你不需要全隧道路由——它能保持本地流量快速,并减少 VPS 上的带宽占用。
- 备份你的配置 — 运行备份命令并将归档存放在安全的地方。如果你的 server 需要重建,这会让你免于从头开始。
配置 split tunneling,如果你不需要所有流量都通过 VPN 路由。这在部分审查的国家尤其有用——只将被屏蔽的网站通过隧道路由,而保持本地流量直连:
sudo bash /root/awg/manage_amneziawg.sh modify my_phone AllowedIPs "192.168.1.0/24,10.0.0.0/8"
更改你的客户端 DNS,如果你偏好不同的解析器:
sudo bash /root/awg/manage_amneziawg.sh modify my_phone DNS "8.8.8.8,1.0.0.1"
调整 PersistentKeepalive,如果你处于激进的 NAT 环境。默认的 33 秒可通过 NAT 维持 UDP 会话——将其降低到 25 在那些会快速丢弃空闲 UDP 会话的网络上可能有帮助:
sudo bash /root/awg/manage_amneziawg.sh modify my_phone PersistentKeepalive 25
安装到你的路由器,以覆盖整个网络。AmneziaWG 支持通过 AWG Manager 在 Keenetic 路由器上使用,也支持通过 AmneziaWG for Merlin 在运行 Asuswrt-Merlin 的 ASUS 路由器上使用。
现在备份你的配置,在任何内容发生变化之前:
sudo bash /root/awg/manage_amneziawg.sh backup
如果你将来需要迁移到新 server,请重新安装,然后:
sudo bash /root/awg/manage_amneziawg.sh restore
sudo bash /root/awg/manage_amneziawg.sh regen
restore 命令会恢复你的配置和密钥,而 regen 会使用新的 server IP 更新客户端配置。
如需更深入的文档,官方 Amnezia 文档位于 docs.amnezia.org,社区则活跃于 Telegram。
结论
在完成整个设置后,AmneziaWG 2.0 最突出的地方不仅在于它能工作——而在于它为何能在其他方案失败的地方稳定工作。它保留了 WireGuard 经过验证的加密核心,同时从根本上改变了流量在网络中的外观,从而绕过了 Deep Packet Inspection 所利用的那些弱点。结果就是:在实践中,它的体验与 WireGuard 一样快速、简单,但在恶劣环境中要坚韧得多。一旦部署完成,其价值就显而易见:你运行的不只是一个 VPN——而是一个为在现实世界阻断中生存而构建的 VPN。
如果你正在寻找一个可靠的 VPS 来托管你的 AmneziaWG server——或者需要为团队成员扩展更多端点——AvaHost 提供此设置所需的 KVM 虚拟化、完整 root 访问、NVMe 存储以及 Ubuntu 24.04 支持。他们的基础设施专为本指南所涵盖的这类自托管部署而构建。