AmneziaWG VPN

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

关键词

关键词定义
🛡️ AmneziaWGWireGuard 的一个分支,通过随机化数据包头、大小和传输时间来对抗深度包检测,同时保持相同且经过验证的加密。这是一种运行在您的服务器上的协议。
🚀 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 LXCKVM 是完整虚拟化,加载 AmneziaWG 这类自定义内核模块需要专用内核。LXC 是容器虚拟化,使用宿主机共享内核,无法加载自定义模块。
🎪 CPS (Custom Protocol Signature)AmneziaWG 2.0 的一个功能,在实际握手前发送模仿其他协议(QUIC、DNS、SIP)的替代数据包,使 DPI 系统将流量误判为正常流量。

自部署 AmneziaWG VPN Server — 完整指南

AmneziaWG

AmneziaWG 是一种旨在解决特定问题的协议:当您连接的网络积极尝试阻止 WireGuard 时,如何仍然获得 WireGuard 的速度?它是由 Amnezia VPN 团队创建的 WireGuard 分支,它做了原版没有做的事——随机化传输层,使深度包检测系统无法识别它。加密保持完全相同。改变的只是数据包在网络中的外观。

VPN 混淆的整体格局多年来一直是一场军备竞赛。像 Shadowsocks、VLESS+Reality,以及带有 obfs4 的 OpenVPN 这样的工具,试图以各种方式伪装流量——有些伪装成代理,有些伪装成完整隧道,有些则以较高的性能成本为代价。AmneziaWG 占据了一个特定细分领域:它是一个完整的 VPN 隧道,具备 WireGuard 级别的性能和内置 DPI 保护,全部集成在一个方案中。而且由于它是开源的,您可以将其部署在自己的服务器上。

但这正是问题所在,也是它存在的必要原因。您设置了 WireGuard。它运行得完美——快速、干净、可靠。然后某一天,它突然停止了。没有错误信息,没有超时,没有连接拒绝。数据包就这样消失了。这就是 DPI 阻断在实践中的表现:您的隧道仍在运行,配置仍然正确,但没有任何流量通过。这就是俄罗斯(WireGuard 的成功率约为 12%)、伊朗(98% 数据包丢失)以及包括中国、埃及、UAE、土耳其、白俄罗斯、乌兹别克斯坦、哈萨克斯坦、缅甸和巴基斯坦在内的越来越多国家的现实。

VPN Obfuscation

传统替代方案并不能完全解决这个问题。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、AvaHost 还是其他提供商。本文面向具备中级技术能力、熟悉 SSH 和基本 Linux 命令的用户。

开始之前先说明一点:AmneziaWG 是一种协议。AmneziaVPN 是一个客户端应用程序,用于连接它。它们相关但不同——就像浏览器中的 TLS 一样。您需要一个应用程序来连接,但运行在您服务器上的是协议。

但在部署任何东西之前,您需要了解 AmneziaWG 与 WireGuard 的不同之处,以及为什么当 DPI 盯着您时,这种差异如此重要。


什么是 AmneziaWG?(心智模型)

WireGuard 的设计非常优雅。它代码库小,使用现代加密,并在 Linux 内核中运行,几乎具备原生性能。但这种优雅也带来了可见性问题:每个 WireGuard 数据包都带有相同的固定头部结构、相同的固定数据包大小和相同的握手模式。对于深度包检测系统来说,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 Server 都会生成自己独特的一组参数,因此不存在可供检测的通用特征。每个 Server 都有自己的方言。

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

那么,AmneziaWG 到底是如何加密其流量的?让我们看看使 DPI 失明的四层混淆,以及为什么它们几乎不会带来速度损失。


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

AmneziaWG 2.0 使用四层协同工作的混淆。每一层都针对 DPI 系统识别 VPN 流量的不同方式。结合起来,它们使每个 Server 的流量都独一无二。

动态头部(H1–H4)

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

  • 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,或自定义字节模式。服务器会完全忽略这些数据包。它只是等待真正的握手。

  • 简单配置:发送 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 与 0。

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

参数生成范围示例值
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 without overlap234567-345678
H2(响应头部范围)uint32 without overlap3456789-4567890
H3(cookie 头部范围)uint32 without overlap56789012-67890123
H4(数据头部范围)uint32 without overlap456789012-567890123
I1(CPS 数据包)<r N> 格式<r 128&gt;

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

现在您已经了解了混淆如何工作,让我们看看 AmneziaWG 与您可能正在考虑的替代方案相比如何。


AmneziaWG vs 替代方案 — 快速决策指南

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

WireGuardAmneziaWG 2.0OpenVPN+obfs4ShadowsocksVLESS+Reality
DPI ResistanceLowHighMediumMediumVery High
Speed Overhead~4%<12% (~3% in real conditions)~25%~8%~10%
Full VPN TunnelYesYesYesNo (proxy)No (proxy)
Runs in KernelYesYes (DKMS)NoNoNo
Setup ComplexityLowLow (with installer)HighMediumHigh
TransportUDPUDPTCP/UDPTCPTCP

决策规则很简单:

  • 您的国家没有 DPI? 使用普通 WireGuard。它更简单,而且生态更广。
  • 需要最大的 DPI 保护且不介意代理? VLESS+Reality 是最强的混淆选项,但它不是完整隧道。
  • 既想要速度又想要带混淆的完整隧道? AmneziaWG 2.0 是唯一能在完整 VPN 隧道中提供 WireGuard 级性能和真正 DPI 保护的选择。
  • 已经在使用 OpenVPN+obfs4 且仍然可用? 没有紧急理由切换,但 AmneziaWG 会明显更快。

本文聚焦 AmneziaWG,因为它是唯一一种能为您提供完整隧道、内核级性能和内置混淆的协议——而且只需一个脚本即可完成设置。

如果 AmneziaWG 适合您的情况,那么在开始部署之前,您需要准备以下内容。


开始前您需要准备什么

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

要求详情原因
OSUbuntu 24.04 LTS(全新安装)。Ubuntu 25.10 处于实验阶段。Debian 12/13 可用,但可能需要预先安装 curl。安装程序已在 Ubuntu 24.04 上测试并获得完全支持。
VPS Specs1 vCore, 1 GB RAM, 25 GB 存储。任何 $3–5/月 的套餐都适合。安装程序在 DKMS 构建期间需要约 2 GB 磁盘空间和约 1 GB RAM。运行中的 VPN 资源占用很低。
VirtualizationKVM(不是 OpenVZ,也不是 LXC)。AmneziaWG 通过 DKMS 加载内核模块。LXC 使用共享宿主机内核,无法加载自定义模块。
SSH Access带密码/密钥认证的 root 或 sudo 用户。安装程序需要以 root 身份运行。
SSH Port默认 22,或者如果使用非标准端口,则需在 UFW 中预先开放。如果 SSH 没有运行在 22 端口且您事先没有开放它,安装程序的防火墙设置会阻止您。
Client ApplicationAmnezia 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

打开终端并连接到您的服务器:
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/setup_state,因此如果服务器重启,您只需再次运行相同命令,它就会从上次中断处继续。

步骤 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。这是有意为之且安全的。

步骤 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_en.sh 和 awg_common_en.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 installation and configuration completed SUCCESSFULLY!
============================================

安装程序会自动生成所有 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 等服务器端参数时才使用 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/2.0, 6.8.0-xx-generic, x86_64: installed

如果这五项检查都通过,您的 AmneziaWG 2.0 Server 就已运行并准备好接受连接。

您的 Server 已运行并通过验证。如果您更喜欢图形界面而不是终端,下面是使用 AmneziaVPN app 的替代方法。


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

AmneziaVPN 桌面应用可以通过 SSH 在您的服务器上自动安装 AmneziaWG。它使用与 CLI 方法相同的底层安装脚本,但将所有内容封装在引导式界面中。如果您想要免操作的安装体验,这非常理想。

  1. 下载 AmneziaVPN,地址为 amnezia.org/en/downloads。它适用于 Windows、macOS、Linux、Android 和 iOS。
  2. 打开 app,然后点击 ➕(加号图标)或 Get Started。
  3. 从提供的选项中选择 “Self-hosted VPN”。
  4. 输入您的服务器凭据:
    • Server IP address(如果 SSH 不在 22 端口,则还需端口,例如 203.0.113.10:2221)
    • SSH username(例如 root)
    • Password 或 SSH private key
  5. 选择安装类型:
    • Automatic — 仅安装 AmneziaWG(推荐)
    • Manual — 从列表中选择特定协议
  6. 点击 “Install” — app 会通过 SSH 连接到您的服务器并自动运行安装。您会看到进度指示。
  7. 安装完成后,app 会创建一个可直接使用的 VPN 连接配置文件。

安装后说明:

  • app 默认会以随机端口安装 AmneziaWG。一些 ISP 会阻止高端口上的 UDP。app 建议改用 9999 以下的端口(例如 585 或 1234)。更改方法:点击连接旁的齿轮图标 → Management tab → 更改端口号。
  • 如果您的服务器上已经安装了 Amnezia 软件,请在创建连接时点击 “Skip setup”,然后在 Management tab 中使用 “Check the server for previously installed Amnezia services”。

以下是两种方法的比较:

方面CLI InstallerAmneziaVPN App
ControlFull — 您可以看到每一步,并可自定义Limited — app 处理一切
VisibilityTransparent — 所有命令可见Opaque — 在后台运行
FlexibilityCustom routing, endpoint, flags仅使用默认值
Ease of useRequires SSH familiarity无需终端操作
ManagementFull

manage_amneziawg.sh

suite

仅基于 app 的管理
Best forUnmanaged VPS, troubleshooting快速设置,引导式体验

无论您使用 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)

在您的服务器上显示压缩后的 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 文件。

验证连接

连接后,验证隧道是否正在通过服务器路由您的流量:

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",
  ...
}

⚠️ 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 系统能够可靠识别的任何东西。

接下来您可以做的最有用的事情有:

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

配置 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

如果您将来需要迁移到新服务器,请先进行一次全新安装,然后:

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

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

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

如果您正在寻找一个可靠的 VPS 来托管您的 AmneziaWG Server——或者需要为团队成员增加额外端点来扩展规模——AvaHost 提供此设置所需的 KVM 虚拟化、完整 root 访问、NVMe 存储和 Ubuntu 24.04 支持。他们的基础设施专为本指南所涵盖的这类自托管部署而打造。

AvaHost Black Friday 全场服务 30% 优惠 工程师 24/7 支持 自有数据中心 · Chișinău DDoS 防护
AvaHost Black Friday 全场服务 30% 优惠 工程师 24/7 支持 自有数据中心 · Chișinău DDoS 防护
AvaHost Black Friday 全场服务 30% 优惠 工程师 24/7 支持 自有数据中心 · Chișinău DDoS 防护
AvaHost Black Friday 全场服务 30% 优惠 工程师 24/7 支持 自有数据中心 · Chișinău DDoS 防护