AmneziaWG 设置指南

提升您的服务器设置! 申请 AVA 并使用 立减 15%
使用优惠码:

关键词

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

🔄 更新(2026 年 7 月):本指南保留了原始演练,但下面显示的固定安装程序标签 v5.8.1 已不是最新版本。amneziawg-installer 的最新版本是 v5.18.4,增加了对 Debian 12 和 13、现成的 ARM64 和树莓派内核模块Ubuntu 25.10 和 26.04级联模式的支持,以及进一步的安全改进。

如果您今天按照本指南操作,请将较旧的固定命令替换为 wget https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.18.4/install_amneziawg_en.sh,或在部署前在最新发布页面上验证当前标签。


自部署 AmneziaWG VPN 服务器 — 完整指南

AmneziaWG

AmneziaWG 是一个协议,旨在解决一个特定问题:当网络主动尝试阻止 WireGuard 时,如何实现 WireGuard 的速度?它是由 Amnezia VPN 团队创建的 WireGuard 分支,它做了原始版本不做的事情——它随机化传输层,使得深度数据包检测系统无法识别它。加密保持完全相同。只有数据包在网络中的外观发生了变化。

VPN 混淆的广泛领域多年来一直是一场军备竞赛。Shadowsocks、VLESS+Reality 和带有 obfs4 的 OpenVPN 等工具试图以各种方式伪装流量——有些作为代理,有些作为完整隧道,有些带有高性能成本。AmneziaWG 占据了一个特定的利基:它是一个完整的 VPN 隧道,具有 WireGuard 级别的性能和内置的 DPI 保护,全部集成在一个包中。由于它是开源的,你可以在自己的服务器上部署它。

但这里有一个问题使这一切成为必要。你设置了 WireGuard。它工作得很完美——快速、干净、可靠。然后某个美好的一天,它停止了。没有错误消息,没有超时,没有连接拒绝。数据包就是消失了。这就是 DPI 阻止在实践中的样子:你的隧道仍在运行,你的配置仍然正确,但什么都通不过。这已经是某些国家的现实。

VPN Obfuscation

传统的替代方案并不能完全解决这个问题。Shadowsocks 是一个代理,而不是完整的 VPN 隧道——你的 DNS 和非 TCP 流量仍然会泄露。带有 obfs4 的 OpenVPN 可以工作,但性能开销约为 25%。VLESS+Reality 提供强大的混淆,但基于代理且设置复杂。AmneziaWG 填补了这个空白:它是一个完整的 VPN 隧道,具有 WireGuard 级别的性能和内置的 DPI 保护。

本指南将引导你在 15 分钟内使用单个社区安装程序脚本在任何 KVM VPS 上部署一个完全功能的 AmneziaWG 2.0 服务器。完成后,你将拥有一个可以从任何设备连接到的工作 VPN 隧道。这些步骤与提供商无关——它们适用于任何具有 SSH 访问和 root 权限的 VPS,无论来自 AvaHost 还是其他提供商。本指南针对具有中等技术水平的用户,他们熟悉 SSH 和基本 Linux 命令。

在我们开始之前,有一个澄清:AmneziaWG 是一个协议AmneziaVPN 是一个客户端应用程序,用于连接到它。它们相关但不同——就像浏览器的 TLS 一样。你需要一个应用程序来连接,但协议是在你的服务器上运行的。

但在我们部署任何东西之前,你需要理解是什么使 AmneziaWG 与 WireGuard 不同——以及当 DPI 监视你时,这种差异为什么重要。


什么是 AmneziaWG?(心智模型)

WireGuard 的设计优雅。它拥有小巧的代码库、采用现代密码学,并在 Linux 内核中运行以获得近乎原生的性能。但这种优雅存在一个可见性问题:每个 WireGuard 数据包都携带相同的固定报头结构、相同的固定数据包大小和相同的握手模式。对于深度数据包检测(DPI)系统来说,WireGuard 隧道的特征就像条形码一样清晰。一旦 DPI 设备学会了这个特征,它就可以丢弃每个数据包,而无需阻止端口或关闭连接。

DPI

AmneziaWG 是由 Amnezia VPN 团队创建的 WireGuard-Go 分支。它继承了 WireGuard 的架构简洁性——相同的 Curve25519 密钥交换、相同的 ChaCha20-Poly1305 加密、相同的 Noise IK 握手。所有密码学保持不变,也已经过验证。AmneziaWG 改变的是传输层:数据包报头、数据包大小和时序模式。

这样想象一下。WireGuard 就像一个快递员,总是穿着相同的制服——快速、可靠、高效。但任何观察道路的人都会学会识别那套制服,并可以在任何检查站拦住快递员。AmneziaWG 是同一个快递员,携带相同的包裹,但他在每个检查站都换衣服。同一个人,同样的货物,完全不同的外观。

版本历史很重要。AmneziaWG 1.x 引入了与 WireGuard 固定值不同的自定义报头——这在一段时间内有所帮助,但 DPI 系统适应了。AmneziaWG 2.0 于 2025 年末发布,将所有内容随机化:报头从数据包到数据包变化,填充从消息到消息变化,替代数据包在实际握手开始前模仿其他协议。没有通用的检测特征,因为每个 AmneziaWG 2.0 服务器都生成自己独特的参数集。每个服务器都说自己的方言。

当所有混淆参数设置为零时,AmneziaWG 的行为与 WireGuard 完全相同——它在协议级别上完全向后兼容。但在启用活跃参数的情况下(这是默认设置),它变成了 WireGuard 无法做到的:一个 DPI 系统难以识别的快速 VPN 隧道。

那么 AmneziaWG 究竟如何加密其流量呢?让我们看看使 DPI 失明的四个混淆级别——以及为什么它们几乎不增加速度成本。


AmneziaWG 如何躲避 DPI(无速度损失)

AmneziaWG 2.0 使用四层混淆技术协同工作。每一层针对 DPI 系统识别 VPN 流量的不同方式。这些技术共同使每个服务器的流量特征独一无二。

动态报头(H1–H4)

WireGuard 使用固定的 32 位消息类型标识符:

  • 1 — 用于初始化
  • 2 — 用于响应
  • 3 — 用于带 cookie 的响应
  • 4 — 用于数据

DPI 设备扫描流量时,只需查找这些值。AmneziaWG 2.0 将每个固定值替换为从指定范围内随机选择的数字。初始化报头(H1)可以是 234567 到 345678 之间的任何值。响应报头(H2)可以是 3456789 到 4567890 之间的值。这些范围互不重叠——协议内部仍需区分数据包类型——但对于外部观察者来说,没有单一的报头值可以锁定。每个数据包看起来都与前一个不同。

随机填充(S1–S4)

WireGuard 的初始化数据包始终恰好是 148 字节。其响应始终恰好是 92 字节。这些固定大小是另一个指纹特征。AmneziaWG 为每个数据包类型添加随机填充:初始化变为 148+S1 字节,响应变为 92+S2 字节,带 cookie 的响应变为 64+S3 字节,每个数据包接收 S4 字节的填充。S3 和 S4 是版本 2.0 中的新增功能——S4 是最重要的补充,因为它影响每个数据包,使会话级流量分析变得更加困难。

有一个关键约束:S1+56 不能等于 S2。由于初始化和响应之间的原始大小差异是 56 字节(148−92),如果填充值恰好补偿了这个差异,两个填充后的数据包将最终大小相同——重新创建 AmneziaWG 试图消除的指纹。安装程序的参数生成器会自动确保这个约束。

自定义协议签名(I1–I5)

在实际握手开始之前,AmneziaWG 客户端发送最多五个替代数据包,模仿其他协议——QUIC、DNS、SIP 或自定义字节模式。服务器完全忽略这些数据包。它只是等待真正的握手。

  • 简单配置:发送 128 个随机字节 <r 128>。
  • 复杂配置:发送看起来像启动 QUIC 连接的字节(<b 0xc000000001><r 64><t>),带有 Unix 时间戳。

对于观察会话开始的 DPI 系统,第一批数据包看起来像常规网络流量。

垃圾数据包(Jc、Jmin、Jmax)

在替代数据包之后,客户端发送可自定义数量的垃圾数据包——纯噪声,大小随机,范围从 Jmin 到 Jmax。这些数据包模糊了会话开始的时序和大小特征,使 DPI 系统更难识别真正握手的开始位置。

速度问题

互联网上流传着一个数字:AmneziaWG 有 65% 的开销。这个数字是真实的,但它指的是用户空间 Go 实现——而不是内核模块。本指南中使用的社区安装程序构建 DKMS 内核模块,内核模块的总体开销不到 12%——在实际测试中接近 3%。在未审查的网络上,WireGuard 的速度约为 95 Mbps,AmneziaWG 2.0 约为 92 Mbps。在审查网络上,对比是 92 Mbps 对零。

下表总结了安装程序自动生成的参数:

参数生成范围示例值
Jc(垃圾数据包数量)4–86
Jmin(最小垃圾大小)40–8955
Jmax(最大垃圾大小)Jmin+100 到 Jmin+500380
S1(初始化填充)15–15072
S2(响应填充)15–150,S1+56≠S256
S3(cookie 填充)8–5532
S4(数据填充)4–2716
H1(初始化报头范围)uint32 无重叠234567-345678
H2(响应报头范围)uint32 无重叠3456789-4567890
H3(cookie 报头范围)uint32 无重叠56789012-67890123
H4(数据报头范围)uint32 无重叠456789012-567890123
I1(CPS 数据包)<r N> 格式<r 128>

您无需手动设置任何这些参数。安装程序每次都会生成满足约束条件的密码学随机值。

既然您了解了混淆的工作原理,让我们看看 AmneziaWG 与您可能考虑的替代方案的比较。


AmneziaWG 与其他方案对比 — 快速决策指南

VPN
如果您正在为受审查的环境评估 VPN 协议,您可能已经接触过多个选项。以下是它们在关键参数上的对比:

WireGuardAmneziaWG 2.0OpenVPN+obfs4ShadowsocksVLESS+Reality
DPI 抗性中等中等非常高
速度开销~4%<12%(实际条件下约 3%)~25%~8%~10%
完整 VPN 隧道否(代理)否(代理)
在内核中运行是(DKMS)
设置复杂度低(带安装程序)中等
传输协议UDPUDPTCP/UDPTCPTCP

决策规则很简单:

  • 您的国家没有 DPI?使用常规 WireGuard。它更简单,生态系统更广泛。
  • 需要最大的 DPI 保护且不介意代理?VLESS+Reality 是混淆的最强选项,但它不是完整隧道。
  • 想要速度和具有混淆功能的完整隧道?AmneziaWG 2.0 是唯一能够在完整 VPN 隧道中提供 WireGuard 级性能和真正 DPI 保护的选项。
  • 已在使用 OpenVPN+obfs4 且仍在正常工作?没有紧急需要切换,但 AmneziaWG 会明显更快。

本文重点介绍 AmneziaWG,因为它是唯一提供完整隧道、内核级性能和内置混淆的协议 — 所有这些都可以通过单个脚本设置。

如果 AmneziaWG 是适合您情况的正确选择,以下是开始部署前需要准备的内容。


开始前您需要做的准备

在运行安装程序之前,请确保您的环境满足以下要求:

要求详情原因
操作系统Ubuntu 24.04 LTS(全新安装)。Ubuntu 25.10 为实验性版本。Debian 12/13 可用,但可能需要预先安装 curl安装程序已在 Ubuntu 24.04 上进行测试并完全支持。
VPS 规格1 vCore、1 GB RAM、25 GB 存储空间。任何每月 $3–5 的套餐都适合。安装程序需要约 2 GB 磁盘空间和约 1 GB RAM 用于 DKMS 构建。运行中的 VPN 占用最少资源。
虚拟化KVM(不支持 OpenVZ、不支持 LXC)。AmneziaWG 通过 DKMS 加载内核模块。LXC 使用共享主机内核,无法加载自定义模块。
SSH 访问Root 或具有密码/密钥身份验证的 sudo 用户。安装程序需要以 root 身份运行。
SSH 端口默认端口 22 或在 UFW 中预先开放(如使用非标准端口)。如果 SSH 未在端口 22 上运行且您事先未开放该端口,安装程序的防火墙设置将阻止您的访问。
客户端应用程序Amnezia VPN >= 4.8.12.7(所有平台)。较旧的客户端不支持 AWG 2.0 选项。标准 WireGuard 客户端完全不支持 AWG。

⚠️ 警告:不支持 LXC 容器。如果您的 VPS 使用 LXC 虚拟化,DKMS 内核模块构建将失败。您必须使用 KVM 或裸金属。如果不确定,请与您的提供商联系。

⚠️ 警告:如果您的 SSH 运行在非标准端口(除 22 以外的任何端口),您必须在运行安装程序前在 UFW 中开放该端口:
sudo ufw allow YOUR_PORT/tcp
YOUR_PORT 替换为您实际的 SSH 端口。安装程序包含具有默认策略的 UFW — 如果您的 SSH 端口未被允许,您将立即被阻止。

💡 提示:创建 VPS 后,请等待 5–10 分钟再运行安装程序。Cloud-init 和后台初始化进程可能与安装程序进行的 apt-get 调用冲突。

VPS 准备就绪且先决条件已确认后,让我们使用社区安装程序脚本部署 AmneziaWG 2.0 — 这是最快速且最透明的方法。


方法 1 — 使用 CLI 安装程序部署(推荐)

这是主要的安装方法。您将下载一个版本固定的安装程序脚本,以 root 身份运行它,完成八个自动化步骤(包括两次预期的重启),最终获得一个完全配置的 AmneziaWG 2.0 服务器。安装程序处理所有事务:包安装、内核模块编译、防火墙配置、参数生成和服务启动。

6.1 — 通过 SSH 连接到您的 VPS

打开您的终端并连接到您的服务器:

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,因此如果服务器重启,您只需运行相同的命令,它就会从中断处继续。

步骤 0:初始化 — 安装程序检查您的操作系统、虚拟化类型、RAM 和磁盘空间。它创建 /root/awg/ 工作目录并设置锁文件以防止并行运行。

步骤 1:系统更新和包安装 — 安装程序运行 apt-get update && apt-get upgrade -y,然后安装 AmneziaWG、DKMS、Linux 头文件、UFW、Fail2Ban、QR 码生成工具和其他依赖项。

📝 注意:安装程序还会删除在最小 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。

📝 注意:安装期间的两次重启是正常且预期的。第一次加载新的内核头文件,第二次激活新构建的内核模块。脚本在重启之间保存状态 — 不会丢失任何内容。

第二次重启后,再次通过 SSH 连接并运行安装程序一次:

sudo bash ./install_amneziawg_en.sh

步骤 3:重启后模块验证 — 脚本验证内核模块已加载(lsmod | grep amneziawg)。如果 DKMS 构建因任何原因失败,它会回退到用户空间 Go 实现,并发出关于更高开销的警告。

步骤 4:防火墙设置 — UFW 启用默认拒绝传入策略。安装程序在端口 22 上添加 SSH 速率限制规则,为 UDP 流量打开您的 VPN 端口,并为 awg0 接口配置路由规则。

步骤 5:下载管理脚本 — 客户端管理脚本(manage_amneziawg.shawg_common.sh)下载到 /root/awg/,权限仅限所有者(700)。这些也版本固定为 v5.8.1。

步骤 6:交互式配置 — 安装程序现在提出四个问题:

  • UDP 端口(默认:39743,范围 1024–65535)。默认值是一个随机高端口 — 除非您的 ISP 已知阻止高 UDP 端口,否则保持不变。
  • 隧道子网(默认:10.9.9.1/24)。这是您的内部 VPN 网络。服务器获得 .1,客户端获得 .2.254,支持最多 253 个客户端。
  • 禁用 IPv6(默认:Y)。推荐 — 禁用 IPv6 可防止流量在 IPv6 路由上泄漏到隧道外。
  • 路由模式:选择 1 表示所有流量,2 表示 Amnezia 列表 + DNS(推荐),或 3 表示自定义网络。模式 2 仅通过 VPN 路由被阻止的公网 IP 范围和 DNS,保持您的本地网络访问快速且直接。

💡 提示:MTU 默认设置为 1280。这是最小 IPv6 MTU,对于移动和蜂窝网络至关重要。iOS 对路径 MTU 发现要求严格,蜂窝网络的有效 MTU 通常低于 WireGuard 的默认值 1420。保持此值为 1280。

步骤 7:服务启动 — 安装程序在 /etc/amnezia/amneziawg/awg0.conf 生成服务器配置,在 /root/awg/ 创建两个默认客户端配置(my_phonemy_laptop),生成 QR 码,并启动 awg-quick@awg0 systemd 服务。

步骤 8:完成 — 您将看到成功消息:

VPN

安装程序自动生成所有 AmneziaWG 2.0 混淆参数。您无需触及它们。每个服务器获得一组唯一的值 — DPI 系统没有通用指纹来检测。

6.4 — 安装后管理客户端

/root/awg/manage_amneziawg.sh 处的管理脚本处理所有客户端生命周期操作。以下是基本命令:

添加新客户端:

sudo bash /root/awg/manage_amneziawg.sh add my_desktop

这生成一个 .conf 文件、QR 码和新客户端的 .vpnuri 文件。服务器配置是热重载的 — 无需服务重启。

添加临时自动过期客户端:

sudo bash /root/awg/manage_amneziawg.sh add guest --expires=7d

cron 作业每五分钟检查一次,并在客户端过期时自动删除它。配置、密钥和服务器条目都被清理。

列出所有客户端:

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

检查完整服务器状态:

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/ 创建一个压缩存档,包含您的服务器配置、客户端配置、密钥和过期数据。

📝 注意:addremove 命令使用 awg syncconf 进行热重载。服务器配置立即更新,无需重启服务。仅在更改服务器端参数(如端口或 MTU)时使用 restart

6.5 — 验证服务器正在运行

运行这些检查以确认一切正常运行:

检查 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 服务器正在运行并准备好接受连接。

您的服务器正在运行并已验证。如果您更喜欢使用 GUI 驱动的方法而不是终端,这是使用 AmneziaVPN 应用的替代方法。


方法 2 — 使用 AmneziaVPN 应用部署(替代方案)

AmneziaVPN 桌面应用可以通过 SSH 在您的服务器上自动安装 AmneziaWG。它使用与 CLI 方法相同的底层安装程序脚本,但将所有内容包装在一个引导式界面中。如果您想要一个无需手动干预的安装体验,这是理想的选择。

  1. amnezia.org/en/downloads 下载 AmneziaVPN。它适用于 Windows、macOS、Linux、Android 和 iOS。
  2. 打开应用并点击 ➕(加号图标)或开始使用
  3. 从呈现的选项中选择”自托管 VPN”
  4. 输入您的服务器凭证:
    • 服务器 IP 地址(如果 SSH 不在 22 端口,请包含端口,例如 203.0.113.10:2221
    • SSH 用户名(例如 root
    • 密码或 SSH 私钥
  5. 选择安装类型:
    • 自动 — 仅安装 AmneziaWG(推荐)
    • 手动 — 从列表中选择特定协议
  6. 点击”安装” — 应用通过 SSH 连接到您的服务器并自动运行安装。您将看到进度指示器。
  7. 安装后,应用会创建一个随时可用的 VPN 连接配置文件。

安装后注意事项:

  • 应用默认使用随机端口安装 AmneziaWG。某些 ISP 会阻止高端口上的 UDP。应用建议更改为 9999 以下的端口(例如 5851234)。要更改端口:点击连接旁的齿轮图标 → 管理选项卡 → 更改端口号。
  • 如果您的服务器已安装了 Amnezia 软件,在连接创建期间点击”跳过设置”,然后在管理选项卡中使用”检查服务器以查找之前安装的 Amnezia 服务”。

以下是两种方法的比较:

方面CLI 安装程序AmneziaVPN 应用
控制完全 — 您可以看到每一步,可以自定义有限 — 应用处理所有事务
可见性透明 — 所有命令可见不透明 — 在后台运行
灵活性自定义路由、端点、标志仅使用默认值
易用性需要 SSH 知识无需终端操作
管理完整的 manage_amneziawg.sh 套件仅基于应用的管理
最适合非托管 VPS、故障排除快速设置、引导式体验

无论您使用 CLI 还是应用,您的服务器已准备就绪。现在让我们连接您的第一个设备。


连接您的第一个客户端

安装后,您有三种方式将客户端配置导入 Amnezia VPN 应用。选择与您的设备相匹配的方法。

方法 A:二维码(移动设备)

安装程序在 /root/awg/my_phone.png 生成了一个二维码。将其下载到您的计算机:

scp root@<SERVER_IP>:/root/awg/my_phone.png .

在屏幕上打开 PNG 文件。在您的手机上,打开 Amnezia VPN 应用,点击 “添加 VPN”“扫描二维码”,然后将摄像头对准屏幕上的二维码。连接将自动导入。

方法 B:vpn:// URI(Amnezia 客户端)

在您的服务器上显示压缩的 URI:

cat /root/awg/my_phone.vpnuri

复制整个 vpn://… 字符串并将其发送给自己 — 通过 Telegram、电子邮件或笔记应用。在您的手机上,打开 Amnezia VPN 应用,点击 “添加 VPN”“从剪贴板粘贴”。配置将一步导入。

该 URI 是完整配置文件的 zlib 压缩、Base64 编码版本。它紧凑且设计用于快速共享。

方法 C:.conf 文件(桌面/Windows)

下载配置文件:

scp root@<SERVER_IP>:/root/awg/my_phone.conf .

打开 AmneziaWG for Windows 客户端或 AmneziaVPN 桌面应用,点击 “从文件导入隧道”,然后选择 .conf 文件。

验证连接

连接后,验证隧道是否通过服务器路由您的流量:
curl ifconfig.me
输出应显示您服务器的公网 IP 地址,而不是本地地址:203.0.113.1

有关更多详情,包括服务器的地理位置:

curl -s https://ipinfo.io/json

{
  "ip": "203.0.113.1",
  "city": "Amsterdam",
  "region": "North Holland",
  "country": "NL",
  ...
}

⚠️ 警告:标准 WireGuard 客户端 适用于 AmneziaWG 2.0 配置。您必须使用 Amnezia VPN 应用(版本 4.8.12.7 或更高版本)或原生 AmneziaWG 客户端(Windows/Android/iOS 上的版本 2.0.0 或更高版本)。

⚠️ 警告:如果您在 Windows 上看到 “Invalid key: s3”,您的 AmneziaWG Windows 客户端已过时(版本低于 2.0.0)。更新到版本 2.0.0+ 或切换到 Amnezia VPN 应用。

💡 提示:如果您已连接但没有互联网,请检查您的客户端配置在 [Interface] 部分中是否有 MTU = 1280。这是移动网络上”握手成功但无流量”的最常见原因。

恭喜!您的 VPN 隧道正在运行。


下一步 — 扩展您的设置

现在您已经拥有一条运行在自己服务器上的 DPI 抗性 VPN 隧道,完全由您控制,具有 WireGuard 级别的速度。曾经导致 WireGuard 连接中断的无声数据包丢失问题已不复存在 — 您的流量看起来不像任何 DPI 系统能可靠识别的东西。

以下是您接下来最有用的操作:

  1. 为您的家人或团队添加客户端 — 使用管理脚本为每个需要访问的设备生成配置。
  2. 配置分割隧道,如果您不需要完整隧道路由 — 它可以保持本地流量速度快,并减少 VPS 上的带宽消耗。
  3. 备份您的配置 — 运行备份命令并将存档存储在安全的地方。如果您的服务器需要重建,这就是让您免于从头开始的关键。

配置分割隧道,如果您不需要所有流量都通过 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 会话 — 在快速丢弃空闲 UDP 会话的网络上,将其降低到 25 可能会有帮助:

sudo bash /root/awg/manage_amneziawg.sh modify my_phone PersistentKeepalive 25

在您的路由器上安装以获得全网络覆盖。AmneziaWG 在 Keenetic 路由器上通过 AWG Manager 获得支持,在运行 Asuswrt-Merlin 的 ASUS 路由器上通过 AmneziaWG for Merlin 获得支持。

立即备份您的配置,在任何变化发生之前:

sudo bash /root/awg/manage_amneziawg.sh backup

如果您需要迁移到新服务器,运行全新安装,然后:

sudo bash /root/awg/manage_amneziawg.sh restore
sudo bash /root/awg/manage_amneziawg.sh regen

restore 命令会恢复您的配置和密钥,regen 会使用新的服务器 IP 更新客户端配置。

如需更深入的文档,官方 Amnezia 文档位于 docs.amnezia.org,社区在 Telegram 上很活跃。

结论

经过完整的设置流程,AmneziaWG 2.0 的突出之处不仅在于它能正常工作——而是为什么它在其他方案失败的地方能够可靠运行。通过保留 WireGuard 经过验证的密码学核心,同时从根本上改变网络上流量的外观,它规避了深度数据包检测(DPI)所利用的确切弱点。结果是一个在实践中感觉与 WireGuard 一样快速简洁,但在恶劣环境中韧性远强的设置。部署后,其价值显而易见:你运行的不仅仅是一个 VPN——而是一个为在现实世界阻断中生存而构建的 VPN。

如果你正在寻找可靠的 VPS 来托管你的 AmneziaWG 服务器——或需要为团队成员扩展额外的端点——AvaHost 提供 KVM 虚拟化、完整 root 访问权限、NVMe 存储和本设置所需的 Ubuntu 24.04 支持。他们的基础设施专为本指南涵盖的自托管部署而构建。