Introduction
AmneziaWG is a modified version of the WireGuard protocol with enhanced traffic obfuscation capabilities. AmneziaWG’s primary goal is to counter deep packet inspection (DPI) systems and bypass VPN blocking. AmneziaWG adds multi-level transport-layer obfuscation by:- Modifying packet headers
- Randomizing handshake message sizes
- Disguising traffic to resemble popular UDP protocols
Prerequisites
You must install the AmneziaWG kernel module on the host system before enabling AmneziaWG support.Enabling AmneziaWG
Environment Variables
Enable experimental AmneziaWG support.Example:
Starting from WireGuard Easy version 16, AmneziaWG will be enabled by default. This feature is currently experimental and may change in future releases.
Override automatic WireGuard/AmneziaWG detection.When
EXPERIMENTAL_AWG=true, WireGuard Easy automatically detects whether the AmneziaWG kernel module is available. This variable allows you to force a specific implementation.Possible values:awg- Force use of AmneziaWGwg- Force use of standard WireGuard- Unset (default) - Automatic detection
Docker Compose Example
AmneziaWG Parameters
WireGuard Easy supports configuring AmneziaWG obfuscation parameters through the web UI. These parameters control how traffic is obfuscated.All parameters except I1-I5 are set at first startup. For information on manually configuring I1-I5 parameters, refer to the AmneziaWG documentation.
Parameter Reference
| Parameter | Description | Server Configurable | Client Configurable | Must Match |
|---|---|---|---|---|
| Jc | Junk packet count | ✅ Yes | ✅ Yes | ❌ No |
| Jmin | Minimum junk packet size (max: 1279 bytes) | ✅ Yes | ✅ Yes | ❌ No |
| Jmax | Maximum junk packet size (max: 1280 bytes) | ✅ Yes | ✅ Yes | ❌ No |
| S1-S4 | Init packet magic header | ✅ Yes | ❌ No (copied from server) | ✅ Yes |
| H1-H4 | Response packet magic header | ✅ Yes | ❌ No (copied from server) | ✅ Yes |
| I1-I5 | Init packet junk size | ✅ Yes | ✅ Yes | ❌ No |
Compatibility with WireGuard
If all AmneziaWG-specific parameters are absent from the configuration, AmneziaWG will be fully compatible with standard WireGuard. This allows you to:- Use standard WireGuard clients to connect to an AmneziaWG server
- Gradually migrate clients to AmneziaWG
- Maintain backward compatibility
Client Applications
To connect to WireGuard Easy with AmneziaWG enabled, you need an AmneziaWG-compatible client. Where available, the official AmneziaWG app is recommended over Amnezia VPN.Android
- AmneziaWG - AmneziaWG Official Client (Recommended)
- WG Tunnel - Third Party Client
- Amnezia VPN - Amnezia VPN Official Client
iOS and macOS
- AmneziaWG - AmneziaWG Official Client (Recommended)
- Amnezia VPN - Amnezia VPN Official Client
Windows
- AmneziaWG - AmneziaWG Official Client (requires building from source)
- Amnezia VPN - Amnezia VPN Official Client
Linux
- Amnezia VPN - Amnezia VPN Official Client
- amneziawg-tools - AmneziaWG Command Line Tools
OpenWRT
- AmneziaWG OpenWRT - AmneziaWG OpenWRT Packages
- AmneziaWG OpenWRT - Alternative AmneziaWG OpenWRT Packages
Troubleshooting
Verifying AmneziaWG is Active
To verify that AmneziaWG is being used instead of standard WireGuard:- Check the WireGuard Easy logs for kernel module detection messages
- Look for
awgcommands in the debug output (whenDEBUGincludesCMD) - Verify client configurations contain AmneziaWG parameters
Fallback to WireGuard
If the AmneziaWG kernel module is not detected, WireGuard Easy will automatically fall back to standard WireGuard. Check:- The kernel module is properly installed on the host
- The module is loaded (
lsmod | grep amneziawg) - The
/lib/modulesvolume is properly mounted
Client Connection Issues
If clients can’t connect with AmneziaWG enabled:- Ensure you’re using an AmneziaWG-compatible client
- Verify the client configuration includes the AmneziaWG parameters
- Try connecting without AmneziaWG parameters to test basic connectivity
- Check firewall rules allow UDP traffic on the WireGuard port
Further Reading
AmneziaWG Documentation
Official AmneziaWG protocol documentation
Kernel Module
AmneziaWG Linux kernel module repository