AmneziaWG Architect
- title
- AmneziaWG Architect
- type
- toolbox
- summary
- Browser-based generator for AmneziaWG obfuscation parameters across 9 protocol mimicry profiles
- tags
- typescript, networking, vpn, wireguard, obfuscation
- language
- TypeScript
- license
- MIT
- created
- 2026-04-06
- updated
- 2026-04-06
A browser-based configuration generator for AmneziaWG โ a WireGuard fork that adds transport-layer obfuscation to defeat deep packet inspection (DPI). The tool runs entirely client-side (Vue 3 + TypeScript + Vite), no backend, no analytics, works offline.
AmneziaWG keeps WireGuard's cryptographic core (Curve25519, ChaCha20-Poly1305, BLAKE2s) but wraps packets to look like something else on the wire. Standard WireGuard has a recognizable handshake pattern that DPI systems can fingerprint and block. AmneziaWG defeats this by adding:
- Junk packets (Jc/Jmin/Jmax) โ random noise packets injected into the stream
- Header manipulation (H1โH4) โ custom values that change the packet signature
- Size randomization (S1โS4) โ variable padding so packets don't have WireGuard's characteristic sizes
- Protocol signatures (I1โI5) โ CPS (Connection Pattern Signatures) that make traffic look like a known protocol
The Architect tool generates these parameters across 9 protocol mimicry profiles: QUIC Initial, QUIC 0-RTT, TLS 1.3, DTLS, SIP, HTTP/3, Noise_IK, and browser fingerprints (Chrome, Firefox, Safari packet patterns). You pick a profile, it outputs the parameter set you paste into your AmneziaWG config.
There's also a MergeKeys tool that decodes existing vpn:// AmneziaWG keys (base64 + zlib), patches in new obfuscation parameters, and re-encodes. Useful when you already have a working key and just want to update the obfuscation layer without regenerating everything.
Three protocol versions are supported:
- AWG 1.0 โ basic H1โH4, S1โS2, junk packets
- AWG 1.5 โ adds client-side I1โI5 signatures
- AWG 2.0 โ full bidirectional sync, dynamic H-ranges, S3โS4, server+client I1โI5
The tool includes a feedback loop: if a generated config doesn't connect, you report the result and it auto-strengthens the parameters.
This is a different approach to censorship circumvention than the Xray-based stack (3x-ui, xray-tutorial, russia-v2ray-rules-dat). Xray uses application-layer proxy protocols (VLESS, VMess, Trojan) that look like HTTPS. AmneziaWG operates at the transport layer, disguising WireGuard's UDP packets. Both aim to evade DPI but from different angles โ AmneziaWG is simpler to set up (it's still just WireGuard under the hood) while the Xray stack offers more flexible routing and multi-protocol support. mihomo can use WireGuard as one of its proxy protocols, though it uses standard WireGuard, not AmneziaWG.
Repo: https://github.com/Vadim-Khristenko/AmneziaWG-Architect โ 95 stars, MIT license.