AmneziaWG

AMÉLIOREZ VOTRE CONFIGURATION DE SERVEUR ! APPLIQUEZ AVA ET LANCEZ AVEC UN 15 % DE REMISE
UTILISEZ LE CODE PROMO :

Keywords

KeywordDefinition
đŸ›Ąïž AmneziaWGA fork of WireGuard that randomizes packet headers, sizes, and timing to resist Deep Packet Inspection while keeping the same audited cryptography. It is the protocol that runs on your server.
🚀 AmneziaWG 2.0The current major version that uses dynamic header ranges (instead of fixed values), adds data-level padding (S4), and supports Custom Protocol Signature decoy packets for stronger DPI evasion.
🔍 Deep Packet Inspection (DPI)A network filtering technique used by ISPs and governments to identify and block VPN traffic by analyzing packet headers, sizes, and handshake patterns. AmneziaWG is specifically designed to defeat it.
⚡ WireGuardA fast, modern VPN protocol with a small codebase and kernel-level performance. It is easily fingerprinted by DPI systems due to its fixed packet structure, which is what AmneziaWG was built to fix.
🏠 Self-hosted VPNA VPN you deploy and manage on your own server (typically a VPS) rather than subscribing to a commercial provider. You control the keys, config, and infrastructure.
🐧 DKMS (Dynamic Kernel Module Support)A Linux framework that automatically recompiles kernel modules when the system kernel is updated. The AmneziaWG installer uses DKMS to build the high-performance kernel module.
🎭 ObfuscationThe practice of disguising VPN traffic to look like ordinary internet traffic. AmneziaWG obfuscates at the transport layer by randomizing headers, adding padding, sending decoy packets, and firing junk packets.
🔀 Split tunnelingA routing configuration where only specific traffic (e.g., blocked sites) goes through the VPN while the rest uses your direct connection. Useful in countries with partial censorship.
đŸ–„ïž KVM vs LXCKVM is full virtualization with a dedicated kernel, required for loading custom kernel modules like AmneziaWG. LXC is container-based virtualization that shares the host kernel and cannot load custom modules.
đŸŽȘ CPS (Custom Protocol Signature)An AmneziaWG 2.0 feature that sends decoy packets mimicking other protocols (QUIC, DNS, SIP) before the real handshake, fooling DPI systems into classifying the traffic as normal.

Self-Host an AmneziaWG VPN Server — Complete Guide

AmneziaWG

AmneziaWG is a protocol designed to solve a specific problem: how do you get WireGuard’s speed when the networks you’re connecting through actively try to block it? It’s a fork of WireGuard built by the Amnezia VPN team, and it does one thing that the original doesn’t — it randomizes the transport layer so Deep Packet Inspection systems can’t fingerprint it. The encryption underneath stays exactly the same. What changes is how the packets look on the wire.

The broader landscape of VPN obfuscation has been an arms race for years. Tools like Shadowsocks, VLESS+Reality, and OpenVPN with obfs4 all attempt to disguise traffic in different ways — some as proxies, some as full tunnels, some with heavy performance costs. AmneziaWG sits in a specific niche: it’s a full VPN tunnel with WireGuard-level performance and built-in DPI resistance, all in one package. And since it’s open-source, you can self-host it on your own server.

But here’s the problem that makes this necessary. You set up WireGuard. It works perfectly — fast, clean, reliable. Then one day it stops. No error message, no timeout, no connection refused. The packets just vanish. That’s what DPI blocking looks like in practice: your tunnel is still running, your config is still correct, and nothing gets through. This is the reality in Russia (where WireGuard has roughly a 12% success rate), Iran (98% packet loss), and a growing list of countries including China, Egypt, UAE, Turkey, Belarus, Uzbekistan, Kazakhstan, Myanmar, and Pakistan.

VPN obfuscation

Traditional alternatives don’t fully solve this. Shadowsocks is a proxy, not a full VPN tunnel — your DNS and non-TCP traffic still leak. OpenVPN with obfs4 works but carries roughly 25% performance overhead. VLESS+Reality offers strong obfuscation but is proxy-based and complex to configure. AmneziaWG fills the gap: a complete VPN tunnel with WireGuard’s speed and DPI resistance baked in.

This guide walks you through deploying a fully functional AmneziaWG 2.0 server on any KVM VPS in under 15 minutes using a single community installer script. By the end, you’ll have a working VPN tunnel you can connect to from any device. The steps are provider-agnostic — they work on any VPS with root SSH access, whether that’s from AlexHost, AvaHost, or elsewhere. This is written for intermediate tech users who are comfortable with SSH and basic Linux commands.

One clarification before we start: AmneziaWG is the protocol. AmneziaVPN is the client app that connects to it. They’re related but distinct — like TLS is to your browser. You’ll need the app to connect, but the protocol is what runs on your server.

But before we deploy anything, you need to understand what makes AmneziaWG different from WireGuard — and why that difference matters when DPI is watching.


What Is AmneziaWG? (The Mental Model)

WireGuard is elegant by design. It has a small codebase, uses modern cryptography, and runs in the Linux kernel for near-native performance. But that elegance comes with a visibility problem: every WireGuard packet carries the same fixed header structure, the same fixed packet sizes, and the same handshake pattern. To a Deep Packet Inspection system, a WireGuard tunnel has a signature as clear as a barcode. Once a DPI box learns that signature, it can drop every packet without blocking the port or closing the connection.

DPI
AmneziaWG is a fork of WireGuard-Go created by the Amnezia VPN team. It inherits WireGuard’s architectural simplicity — same Curve25519 key exchange, same ChaCha20-Poly1305 encryption, same Noise IK handshake. All of the cryptography is unchanged and equally audited. What AmneziaWG modifies is the transport layer: the packet headers, the packet sizes, and the timing patterns.

Think of it this way. WireGuard is like a courier who always wears the same uniform — fast, reliable, and efficient. But anyone watching the road learns to recognize that uniform and can stop the courier at any checkpoint. AmneziaWG is the same courier carrying the same packages, but they change uniforms at every checkpoint. Same person, same cargo, completely different appearance.

The version history matters here. AmneziaWG 1.x introduced custom headers that differed from WireGuard’s fixed values — it helped for a while, but DPI systems adapted. AmneziaWG 2.0, released in late 2025, randomizes everything: headers change per packet, padding varies per message, and decoy packets mimic other protocols before the real handshake begins. There is no universal signature to detect because every AmneziaWG 2.0 server generates its own unique parameter set. Each server speaks its own dialect.

When all obfuscation parameters are set to zero, AmneziaWG behaves identically to WireGuard — it’s fully backward compatible at the protocol level. But with parameters active (which is the default), it becomes something WireGuard cannot be: a fast VPN tunnel that DPI systems struggle to identify.

So how exactly does AmneziaWG scramble its traffic? Let’s look at the four obfuscation layers that make DPI blind — and why they add almost no speed cost.


How AmneziaWG Hides From DPI (Without Losing Speed)

AmneziaWG 2.0 uses four layered obfuscation techniques that work together. Each one targets a different way DPI systems identify VPN traffic. Together, they make every server’s traffic look unique.

Dynamic Headers (H1–H4)

WireGuard uses fixed 32-bit message type identifiers:

  • 1 — for initiation
  • 2 — for response
  • 3 — for cookie reply
  • 4 — for data

A DPI box scanning traffic just looks for these values. AmneziaWG 2.0 replaces each fixed value with a random number drawn from a configured range. The initiation header (H1) might be any value between 234567 and 345678. The response header (H2) might be between 3456789 and 4567890. These ranges never overlap — the protocol still needs to distinguish packet types internally — but to an outside observer, there’s no single header value to latch onto. Every packet looks different from the last.

Random Padding (S1–S4)

WireGuard’s initiation packet is always exactly 148 bytes. Its response is always exactly 92 bytes. These fixed sizes are another fingerprint. AmneziaWG adds random padding to each packet type: the initiation becomes 148+S1 bytes, the response becomes 92+S2 bytes, the cookie reply becomes 64+S3 bytes, and every data packet gets S4 bytes of padding. S3 and S4 are new in version 2.0 — and S4 is the most significant addition because it touches every single data packet, making session-wide traffic analysis much harder.

There’s one critical constraint: S1+56 must not equal S2. Since the original size difference between initiation and response is 56 bytes (148−92), if the padding values happened to compensate for exactly that difference, the two padded packets would end up the same size — recreating the fingerprint AmneziaWG is trying to eliminate. The installer’s parameter generator enforces this constraint automatically.

Custom Protocol Signature (I1–I5)

Before the real WireGuard handshake begins, the AmneziaWG client sends up to five decoy packets that mimic other protocols — QUIC, DNS, SIP, or custom byte patterns. The server ignores these packets entirely. It just waits for the real handshake.

  • A simple configuration: Sends 128 random bytes <r 128>.
  • A sophisticated configuration: Sends bytes that look like a QUIC connection initiation (<b 0xc000000001><r 64><t>), complete with a Unix timestamp.

To a DPI system watching the session start, the first packets look like normal web traffic.

Junk Packets (Jc, Jmin, Jmax)

After the decoy packets, the client fires a configurable number of junk packets — pure noise with random sizes between Jmin and Jmax. These blur the timing and size profile of the session start, making it harder for DPI systems to identify where the real handshake begins.

The Speed Question

There’s a number that’s been circulating online: AmneziaWG has 65% overhead. That figure is real, but it refers to the userspace Go implementation — not the kernel module. The community installer used in this guide builds a DKMS kernel module, and the kernel module adds less than 12% overhead total — closer to 3% in real-world benchmarks. On an uncensored network, you’d see roughly 95 Mbps through WireGuard and 92 Mbps through AmneziaWG 2.0. In a censored network, the comparison is 92 Mbps versus zero.

The following table summarizes the parameters the installer generates automatically:

ParameterGenerated RangeExample Value
Jc

(junk packet count)

4–8
6
Jmin

(min junk size)

40–89
55
Jmax

(max junk size)

Jmin+100 to Jmin+500
380
S1

(init padding)

15–150
72
S2

(response padding)

15–150, S1+56≠S2
56
S3

(cookie padding)

8–55
32
S4

(data padding)

4–27
16
H1

(init header range)

uint32 non-overlapping
234567-345678
H2

(response header range)

uint32 non-overlapping
3456789-4567890
H3

(cookie header range)

uint32 non-overlapping
56789012-67890123
H4

(data header range)

uint32 non-overlapping
456789012-567890123
I1

(CPS packet)

<r N>

format

<r 128>

You don’t need to set any of these manually. The installer generates cryptographically random, constraint-valid values every time.

Now that you know how the obfuscation works, let’s see how AmneziaWG stacks up against the alternatives you might be considering.


AmneziaWG vs Alternatives — Quick Decision Guide

VPNs
If you’re evaluating VPN protocols for a censored environment, you’ve probably come across several options. Here’s how they compare across the dimensions that matter:

WireGuardAmneziaWG 2.0OpenVPN+obfs4ShadowsocksVLESS+Reality
DPI resistanceLowHighMediumMediumVery High
Speed overhead~4%<12% (~3% real-world)~25%~8%~10%
Full VPN tunnelYesYesYesNo (proxy)No (proxy)
Runs in kernelYesYes (DKMS)NoNoNo
Setup complexityLowLow (with installer)HighMediumHigh
TransportUDPUDPTCP/UDPTCPTCP

The decision rules are straightforward:

  • No DPI in your country? Use plain WireGuard. It’s simpler and has a larger ecosystem.
  • Need maximum DPI resistance and OK with a proxy? VLESS+Reality is the strongest option for obfuscation, but it’s not a full tunnel.
  • Want both speed and a full tunnel with obfuscation? AmneziaWG 2.0 is the only option that delivers WireGuard-grade performance with real DPI resistance in a complete VPN tunnel.
  • Already using OpenVPN+obfs4 and it still works? No urgent need to switch, but AmneziaWG will be noticeably faster.

This article focuses on AmneziaWG because it’s the only protocol that gives you a full tunnel, kernel-level performance, and built-in obfuscation — all configured by a single script.

If AmneziaWG is the right choice for your situation, here’s exactly what you need before we start deploying.


What You’ll Need Before Starting

Before running the installer, make sure your environment meets these requirements:

RequirementDetailWhy
OSUbuntu 24.04 LTS (clean install). Ubuntu 25.10 is experimental. Debian 12/13 work but may need

curl pre-installed.
The installer is tested and fully supported on Ubuntu 24.04.
VPS specs1 vCore, 1 GB RAM, 25 GB storage. Any $3–5/month plan works.The installer needs ~2 GB disk and ~1 GB RAM during the DKMS build. The running VPN uses negligible resources.
VirtualizationKVM (not OpenVZ, not LXC).AmneziaWG loads a kernel module via DKMS. LXC shares the host kernel and cannot load custom modules.
SSH accessRoot or sudo user with password/key authentication.The installer must run as root.
SSH portDefault 22, or pre-opened in UFW if using a non-standard port.If SSH isn’t on port 22 and you don’t pre-open it, the installer’s firewall setup will lock you out.
Client appAmnezia VPN >= 4.8.12.7 (all platforms).AWG 2.0 parameters are not understood by older clients. The standard WireGuard client does not support AWG at all.

⚠ Warning: LXC containers are not supported. If your VPS uses LXC virtualization, the DKMS kernel module build will fail. You must use KVM or bare-metal. Check with your provider if you’re unsure.

⚠ Warning: If your SSH runs on a non-standard port (anything other than 22), you must open it in UFW before running the installer:

sudo ufw allow YOUR_PORT/tcp

Replace

YOUR_PORT

with your actual SSH port. The installer enables UFW with a default-deny policy — if your SSH port isn’t allowed, you’ll be locked out immediately.

💡 Tip: Wait 5–10 minutes after creating your VPS before running the installer. Cloud-init and background initialization processes can conflict with the

apt-get

calls the installer makes.

With your VPS ready and prerequisites confirmed, let’s deploy AmneziaWG 2.0 using the community installer script — the fastest and most transparent method.


Keywords

KeywordDefinition
đŸ›Ąïž AmneziaWGA fork of WireGuard that randomizes packet headers, sizes, and timing to resist Deep Packet Inspection while keeping the same audited cryptography. It is the protocol that runs on your server.
🚀 AmneziaWG 2.0The current major version that uses dynamic header ranges (instead of fixed values), adds data-level padding (S4), and supports Custom Protocol Signature decoy packets for stronger DPI evasion.
🔍 Deep Packet Inspection (DPI)A network filtering technique used by ISPs and governments to identify and block VPN traffic by analyzing packet headers, sizes, and handshake patterns. AmneziaWG is specifically designed to defeat it.
⚡ WireGuardA fast, modern VPN protocol with a small codebase and kernel-level performance. It is easily fingerprinted by DPI systems due to its fixed packet structure, which is what AmneziaWG was built to fix.
🏠 Self-hosted VPNA VPN you deploy and manage on your own server (typically a VPS) rather than subscribing to a commercial provider. You control the keys, config, and infrastructure.
🐧 DKMS (Dynamic Kernel Module Support)A Linux framework that automatically recompiles kernel modules when the system kernel is updated. The AmneziaWG installer uses DKMS to build the high-performance kernel module.
🎭 ObfuscationThe practice of disguising VPN traffic to look like ordinary internet traffic. AmneziaWG obfuscates at the transport layer by randomizing headers, adding padding, sending decoy packets, and firing junk packets.
🔀 Split tunnelingA routing configuration where only specific traffic (e.g., blocked sites) goes through the VPN while the rest uses your direct connection. Useful in countries with partial censorship.
đŸ–„ïž KVM vs LXCKVM is full virtualization with a dedicated kernel, required for loading custom kernel modules like AmneziaWG. LXC is container-based virtualization that shares the host kernel and cannot load custom modules.
đŸŽȘ CPS (Custom Protocol Signature)An AmneziaWG 2.0 feature that sends decoy packets mimicking other protocols (QUIC, DNS, SIP) before the real handshake, fooling DPI systems into classifying the traffic as normal.

Self-Host an AmneziaWG VPN Server — Complete Guide

AmneziaWG

AmneziaWG is a protocol designed to solve a specific problem: how do you get WireGuard’s speed when the networks you’re connecting through actively try to block it? It’s a fork of WireGuard built by the Amnezia VPN team, and it does one thing that the original doesn’t — it randomizes the transport layer so Deep Packet Inspection systems can’t fingerprint it. The encryption underneath stays exactly the same. What changes is how the packets look on the wire.

The broader landscape of VPN obfuscation has been an arms race for years. Tools like Shadowsocks, VLESS+Reality, and OpenVPN with obfs4 all attempt to disguise traffic in different ways — some as proxies, some as full tunnels, some with heavy performance costs. AmneziaWG sits in a specific niche: it’s a full VPN tunnel with WireGuard-level performance and built-in DPI resistance, all in one package. And since it’s open-source, you can self-host it on your own server.

But here’s the problem that makes this necessary. You set up WireGuard. It works perfectly — fast, clean, reliable. Then one day it stops. No error message, no timeout, no connection refused. The packets just vanish. That’s what DPI blocking looks like in practice: your tunnel is still running, your config is still correct, and nothing gets through. This is the reality in Russia (where WireGuard has roughly a 12% success rate), Iran (98% packet loss), and a growing list of countries including China, Egypt, UAE, Turkey, Belarus, Uzbekistan, Kazakhstan, Myanmar, and Pakistan.

VPN obfuscation

Traditional alternatives don’t fully solve this. Shadowsocks is a proxy, not a full VPN tunnel — your DNS and non-TCP traffic still leak. OpenVPN with obfs4 works but carries roughly 25% performance overhead. VLESS+Reality offers strong obfuscation but is proxy-based and complex to configure. AmneziaWG fills the gap: a complete VPN tunnel with WireGuard’s speed and DPI resistance baked in.

This guide walks you through deploying a fully functional AmneziaWG 2.0 server on any KVM VPS in under 15 minutes using a single community installer script. By the end, you’ll have a working VPN tunnel you can connect to from any device. The steps are provider-agnostic — they work on any VPS with root SSH access, whether that’s from AlexHost, AvaHost, or elsewhere. This is written for intermediate tech users who are comfortable with SSH and basic Linux commands.

One clarification before we start: AmneziaWG is the protocol. AmneziaVPN is the client app that connects to it. They’re related but distinct — like TLS is to your browser. You’ll need the app to connect, but the protocol is what runs on your server.

But before we deploy anything, you need to understand what makes AmneziaWG different from WireGuard — and why that difference matters when DPI is watching.


What Is AmneziaWG? (The Mental Model)

WireGuard is elegant by design. It has a small codebase, uses modern cryptography, and runs in the Linux kernel for near-native performance. But that elegance comes with a visibility problem: every WireGuard packet carries the same fixed header structure, the same fixed packet sizes, and the same handshake pattern. To a Deep Packet Inspection system, a WireGuard tunnel has a signature as clear as a barcode. Once a DPI box learns that signature, it can drop every packet without blocking the port or closing the connection.

DPI
AmneziaWG is a fork of WireGuard-Go created by the Amnezia VPN team. It inherits WireGuard’s architectural simplicity — same Curve25519 key exchange, same ChaCha20-Poly1305 encryption, same Noise IK handshake. All of the cryptography is unchanged and equally audited. What AmneziaWG modifies is the transport layer: the packet headers, the packet sizes, and the timing patterns.

Think of it this way. WireGuard is like a courier who always wears the same uniform — fast, reliable, and efficient. But anyone watching the road learns to recognize that uniform and can stop the courier at any checkpoint. AmneziaWG is the same courier carrying the same packages, but they change uniforms at every checkpoint. Same person, same cargo, completely different appearance.

The version history matters here. AmneziaWG 1.x introduced custom headers that differed from WireGuard’s fixed values — it helped for a while, but DPI systems adapted. AmneziaWG 2.0, released in late 2025, randomizes everything: headers change per packet, padding varies per message, and decoy packets mimic other protocols before the real handshake begins. There is no universal signature to detect because every AmneziaWG 2.0 server generates its own unique parameter set. Each server speaks its own dialect.

When all obfuscation parameters are set to zero, AmneziaWG behaves identically to WireGuard — it’s fully backward compatible at the protocol level. But with parameters active (which is the default), it becomes something WireGuard cannot be: a fast VPN tunnel that DPI systems struggle to identify.

So how exactly does AmneziaWG scramble its traffic? Let’s look at the four obfuscation layers that make DPI blind — and why they add almost no speed cost.


How AmneziaWG Hides From DPI (Without Losing Speed)

AmneziaWG 2.0 uses four layered obfuscation techniques that work together. Each one targets a different way DPI systems identify VPN traffic. Together, they make every server’s traffic look unique.

Dynamic Headers (H1–H4)

WireGuard uses fixed 32-bit message type identifiers:

  • 1 — for initiation
  • 2 — for response
  • 3 — for cookie reply
  • 4 — for data

A DPI box scanning traffic just looks for these values. AmneziaWG 2.0 replaces each fixed value with a random number drawn from a configured range. The initiation header (H1) might be any value between 234567 and 345678. The response header (H2) might be between 3456789 and 4567890. These ranges never overlap — the protocol still needs to distinguish packet types internally — but to an outside observer, there’s no single header value to latch onto. Every packet looks different from the last.

Random Padding (S1–S4)

WireGuard’s initiation packet is always exactly 148 bytes. Its response is always exactly 92 bytes. These fixed sizes are another fingerprint. AmneziaWG adds random padding to each packet type: the initiation becomes 148+S1 bytes, the response becomes 92+S2 bytes, the cookie reply becomes 64+S3 bytes, and every data packet gets S4 bytes of padding. S3 and S4 are new in version 2.0 — and S4 is the most significant addition because it touches every single data packet, making session-wide traffic analysis much harder.

There’s one critical constraint: S1+56 must not equal S2. Since the original size difference between initiation and response is 56 bytes (148−92), if the padding values happened to compensate for exactly that difference, the two padded packets would end up the same size — recreating the fingerprint AmneziaWG is trying to eliminate. The installer’s parameter generator enforces this constraint automatically.

Custom Protocol Signature (I1–I5)

Before the real WireGuard handshake begins, the AmneziaWG client sends up to five decoy packets that mimic other protocols — QUIC, DNS, SIP, or custom byte patterns. The server ignores these packets entirely. It just waits for the real handshake.

  • A simple configuration: Sends 128 random bytes <r 128>.
  • A sophisticated configuration: Sends bytes that look like a QUIC connection initiation (<b 0xc000000001><r 64><t>), complete with a Unix timestamp.

To a DPI system watching the session start, the first packets look like normal web traffic.

Junk Packets (Jc, Jmin, Jmax)

After the decoy packets, the client fires a configurable number of junk packets — pure noise with random sizes between Jmin and Jmax. These blur the timing and size profile of the session start, making it harder for DPI systems to identify where the real handshake begins.

The Speed Question

There’s a number that’s been circulating online: AmneziaWG has 65% overhead. That figure is real, but it refers to the userspace Go implementation — not the kernel module. The community installer used in this guide builds a DKMS kernel module, and the kernel module adds less than 12% overhead total — closer to 3% in real-world benchmarks. On an uncensored network, you’d see roughly 95 Mbps through WireGuard and 92 Mbps through AmneziaWG 2.0. In a censored network, the comparison is 92 Mbps versus zero.

The following table summarizes the parameters the installer generates automatically:

ParameterGenerated RangeExample Value
Jc

(junk packet count)

4–8
6
Jmin

(min junk size)

40–89
55
Jmax

(max junk size)

Jmin+100 to Jmin+500
380
S1

(init padding)

15–150
72
S2

(response padding)

15–150, S1+56≠S2
56
S3

(cookie padding)

8–55
32
S4

(data padding)

4–27
16
H1

(init header range)

uint32 non-overlapping
234567-345678
H2

(response header range)

uint32 non-overlapping
3456789-4567890
H3

(cookie header range)

uint32 non-overlapping
56789012-67890123
H4

(data header range)

uint32 non-overlapping
456789012-567890123
I1

(CPS packet)

<r N>

format

<r 128>

You don’t need to set any of these manually. The installer generates cryptographically random, constraint-valid values every time.

Now that you know how the obfuscation works, let’s see how AmneziaWG stacks up against the alternatives you might be considering.


AmneziaWG vs Alternatives — Quick Decision Guide

VPNs
If you’re evaluating VPN protocols for a censored environment, you’ve probably come across several options. Here’s how they compare across the dimensions that matter:

WireGuardAmneziaWG 2.0OpenVPN+obfs4ShadowsocksVLESS+Reality
DPI resistanceLowHighMediumMediumVery High
Speed overhead~4%<12% (~3% real-world)~25%~8%~10%
Full VPN tunnelYesYesYesNo (proxy)No (proxy)
Runs in kernelYesYes (DKMS)NoNoNo
Setup complexityLowLow (with installer)HighMediumHigh
TransportUDPUDPTCP/UDPTCPTCP

The decision rules are straightforward:

  • No DPI in your country? Use plain WireGuard. It’s simpler and has a larger ecosystem.
  • Need maximum DPI resistance and OK with a proxy? VLESS+Reality is the strongest option for obfuscation, but it’s not a full tunnel.
  • Want both speed and a full tunnel with obfuscation? AmneziaWG 2.0 is the only option that delivers WireGuard-grade performance with real DPI resistance in a complete VPN tunnel.
  • Already using OpenVPN+obfs4 and it still works? No urgent need to switch, but AmneziaWG will be noticeably faster.

This article focuses on AmneziaWG because it’s the only protocol that gives you a full tunnel, kernel-level performance, and built-in obfuscation — all configured by a single script.

If AmneziaWG is the right choice for your situation, here’s exactly what you need before we start deploying.


What You’ll Need Before Starting

Before running the installer, make sure your environment meets these requirements:

RequirementDetailWhy
OSUbuntu 24.04 LTS (clean install). Ubuntu 25.10 is experimental. Debian 12/13 work but may need

curl pre-installed.
The installer is tested and fully supported on Ubuntu 24.04.
VPS specs1 vCore, 1 GB RAM, 25 GB storage. Any $3–5/month plan works.The installer needs ~2 GB disk and ~1 GB RAM during the DKMS build. The running VPN uses negligible resources.
VirtualizationKVM (not OpenVZ, not LXC).AmneziaWG loads a kernel module via DKMS. LXC shares the host kernel and cannot load custom modules.
SSH accessRoot or sudo user with password/key authentication.The installer must run as root.
SSH portDefault 22, or pre-opened in UFW if using a non-standard port.If SSH isn’t on port 22 and you don’t pre-open it, the installer’s firewall setup will lock you out.
Client appAmnezia VPN >= 4.8.12.7 (all platforms).AWG 2.0 parameters are not understood by older clients. The standard WireGuard client does not support AWG at all.

⚠ Warning: LXC containers are not supported. If your VPS uses LXC virtualization, the DKMS kernel module build will fail. You must use KVM or bare-metal. Check with your provider if you’re unsure.

⚠ Warning: If your SSH runs on a non-standard port (anything other than 22), you must open it in UFW before running the installer:

sudo ufw allow YOUR_PORT/tcp

Replace

YOUR_PORT

with your actual SSH port. The installer enables UFW with a default-deny policy — if your SSH port isn’t allowed, you’ll be locked out immediately.

💡 Tip: Wait 5–10 minutes after creating your VPS before running the installer. Cloud-init and background initialization processes can conflict with the

apt-get

calls the installer makes.

With your VPS ready and prerequisites confirmed, let’s deploy AmneziaWG 2.0 using the community installer script — the fastest and most transparent method.


Mots-clés

Mot-cléDéfinition
đŸ›Ąïž AmneziaWGUn fork de WireGuard qui randomise les en-tĂȘtes de paquets, les tailles et les temps de transmission pour contrer l’inspection approfondie des paquets tout en maintenant la mĂȘme cryptographie Ă©prouvĂ©e. C’est un protocole qui fonctionne sur votre serveur.
🚀 AmneziaWG 2.0La version principale actuelle qui utilise des plages d’en-tĂȘtes dynamiques (au lieu de valeurs fixes), ajoute un remplissage au niveau des donnĂ©es (S4) et prend en charge des paquets de substitution avec une signature de protocole personnalisĂ©e pour une Ă©vasion DPI plus forte.
🔍 Inspection Approfondie des Paquets (DPI)Une technique de filtrage rĂ©seau utilisĂ©e par les FAI et les entitĂ©s gouvernementales pour identifier et bloquer le trafic VPN en analysant les en-tĂȘtes de paquets, les tailles et les motifs de poignĂ©e de main. AmneziaWG est spĂ©cifiquement conçu pour contrer cela.
⚡ WireGuardUn protocole VPN rapide et moderne avec une petite base de code et des performances au niveau du noyau. Il est facilement identifiable par les systĂšmes DPI en raison de sa structure de paquet fixe, ce qui a Ă©tĂ© traitĂ© dans AmneziaWG.
🏠 VPN Auto-hĂ©bergĂ©Un VPN que vous dĂ©ployez et gĂ©rez sur votre propre serveur (typiquement un VPS) plutĂŽt que de vous abonner Ă  un fournisseur commercial. Vous contrĂŽlez les clĂ©s, la configuration et l’infrastructure.
🐧 DKMS (Support de Module Noyau Dynamique)Un cadre Linux qui recompiles automatiquement les modules du noyau lorsque le noyau du systĂšme est mis Ă  jour. L’installateur AmneziaWG utilise DKMS pour construire un module noyau haute performance.
🎭 ObfuscationLa pratique de dĂ©guiser le trafic VPN pour le faire apparaĂźtre comme un trafic Internet normal. AmneziaWG obfusque au niveau de la couche de transport en randomisant les en-tĂȘtes, en ajoutant du remplissage, en envoyant des paquets de substitution et en gĂ©nĂ©rant des paquets inutiles.
🔀 Tunneling FractionnĂ©Une configuration de routage oĂč seul un trafic spĂ©cifique (par exemple, des sites bloquĂ©s) passe par le VPN tandis que l’autre trafic utilise votre connexion directe. Utile dans les pays avec une censure partielle.
đŸ–„ïž KVM vs LXCKVM est une virtualisation complĂšte avec un noyau dĂ©diĂ© requis pour charger des modules noyau personnalisĂ©s comme AmneziaWG. LXC est une virtualisation de conteneur qui utilise le noyau partagĂ© de l’hĂŽte et ne peut pas charger de modules personnalisĂ©s.
đŸŽȘ CPS (Signature de Protocole PersonnalisĂ©e)Une fonctionnalitĂ© d’AmneziaWG 2.0 qui envoie des paquets de substitution imitant d’autres protocoles (QUIC, DNS, SIP) avant la vĂ©ritable poignĂ©e de main, trompant les systĂšmes DPI en classifiant le trafic comme normal.

Serveur VPN AmneziaWG Auto-dĂ©ployant — Guide Complet

AmneziaWG

AmneziaWG est un protocole conçu pour rĂ©soudre un problĂšme spĂ©cifique : comment atteindre des vitesses WireGuard lorsque les rĂ©seaux auxquels vous vous connectez essaient activement de le bloquer ? C’est un fork de WireGuard créé par l’Ă©quipe VPN Amnezia, et il fait ce que l’original ne fait pas — il randomise la couche de transport afin que les systĂšmes d’inspection approfondie des paquets ne puissent pas l’identifier. Le chiffrement reste exactement le mĂȘme. Seule l’apparence des paquets dans le rĂ©seau change.

Le large paysage de l’obfuscation VPN a Ă©tĂ© une course aux armements au fil des ans. Des outils comme Shadowsocks, VLESS+Reality et OpenVPN avec obfs4 tentent de dĂ©guiser le trafic de diverses maniĂšres — certains comme des proxys, d’autres comme des tunnels complets, certains avec des coĂ»ts de performance Ă©levĂ©s. AmneziaWG occupe une niche spĂ©cifique : c’est un tunnel VPN complet avec des performances de niveau WireGuard et une protection DPI intĂ©grĂ©e, le tout dans un seul package. Et puisqu’il est open-source, vous pouvez le dĂ©ployer sur votre propre serveur.

Mais voici le problĂšme qui rend cela nĂ©cessaire. Vous configurez WireGuard. Il fonctionne parfaitement — rapide, propre, fiable. Puis un beau jour, il s’arrĂȘte. Pas de message d’erreur, pas de dĂ©lai d’attente, pas de refus de connexion. Les paquets disparaissent simplement. C’est ce Ă  quoi ressemble le blocage DPI en pratique : votre tunnel est toujours opĂ©rationnel, votre configuration est toujours correcte, et rien ne passe. C’est la rĂ©alitĂ© en Russie (oĂč WireGuard a environ un taux de succĂšs de 12 %), en Iran (98 % de perte de paquets), et une liste croissante de pays, y compris la Chine, l’Égypte, les Émirats, la Turquie, la BiĂ©lorussie, l’OuzbĂ©kistan, le Kazakhstan, le Myanmar et le Pakistan.

Obfuscation VPN

Les alternatives traditionnelles ne rĂ©solvent pas complĂštement ce problĂšme. Shadowsocks est un proxy, pas un tunnel VPN complet — votre DNS et le trafic non-TCP fuiront toujours. OpenVPN avec obfs4 fonctionne mais a environ 25 % de surcharge de performance. VLESS+Reality offre une forte obfuscation mais est basĂ© sur un proxy et complexe Ă  configurer. AmneziaWG comble le vide : c’est un tunnel VPN complet avec des performances de niveau WireGuard et une protection DPI intĂ©grĂ©e.

Ce guide vous guidera Ă  travers le dĂ©ploiement d’un serveur AmneziaWG 2.0 entiĂšrement fonctionnel sur n’importe quel VPS KVM en moins de 15 minutes en utilisant un seul script d’installation communautaire. À la fin, vous aurez un tunnel VPN fonctionnel auquel vous pourrez vous connecter depuis n’importe quel appareil. Les Ă©tapes sont indĂ©pendantes du fournisseur — elles fonctionnent sur n’importe quel VPS avec accĂšs SSH et privilĂšges root, que ce soit chez AvaHost ou ailleurs. Ceci est Ă©crit pour des utilisateurs ayant un niveau technique intermĂ©diaire qui sont Ă  l’aise avec SSH et les commandes Linux de base.

Une clarification avant de commencer : AmneziaWG est un protocole. AmneziaVPN est une application cliente qui s’y connecte. Ils sont liĂ©s mais distincts — comme TLS pour votre navigateur. Vous aurez besoin d’une application pour vous connecter, mais le protocole est ce qui fonctionne sur votre serveur.

Mais avant de dĂ©ployer quoi que ce soit, vous devez comprendre ce qui rend AmneziaWG diffĂ©rent de WireGuard — et pourquoi cette diffĂ©rence est importante lorsque le DPI vous surveille.


Qu’est-ce qu’AmneziaWG ? (ModĂšle Mental)

WireGuard est Ă©lĂ©gant dans sa conception. Il a une petite base de code, utilise une cryptographie moderne et fonctionne dans le noyau Linux pour des performances presque natives. Mais cette Ă©lĂ©gance a un problĂšme de visibilitĂ© : chaque paquet WireGuard porte la mĂȘme structure d’en-tĂȘte fixe, les mĂȘmes tailles de paquets fixes et le mĂȘme motif de poignĂ©e de main. Pour un systĂšme d’inspection approfondie des paquets, le tunnel WireGuard a une signature aussi claire qu’un code-barres. Une fois qu’un appareil DPI apprend cette signature, il peut supprimer chaque paquet sans bloquer le port ou fermer la connexion.

DPI
AmneziaWG est un fork de WireGuard-Go créé par l’Ă©quipe VPN Amnezia. Il a hĂ©ritĂ© de la simplicitĂ© architecturale de WireGuard — le mĂȘme Ă©change de clĂ©s Curve25519, le mĂȘme chiffrement ChaCha20-Poly1305, la mĂȘme poignĂ©e de main Noise IK. Toute la cryptographie reste inchangĂ©e et est Ă©galement vĂ©rifiĂ©e. Ce qu’AmneziaWG change, c’est la couche de transport : les en-tĂȘtes de paquets, les tailles de paquets et les motifs de timing.

Pensez-y de cette façon. WireGuard est comme un coursier qui porte toujours le mĂȘme uniforme — rapide, fiable et efficace. Mais quiconque surveille la route apprend Ă  reconnaĂźtre cet uniforme et peut arrĂȘter le coursier Ă  n’importe quel point de contrĂŽle. AmneziaWG est le mĂȘme coursier portant les mĂȘmes colis, mais il change son uniforme Ă  chaque point de contrĂŽle. La mĂȘme personne, la mĂȘme cargaison, une apparence complĂštement diffĂ©rente.

L’historique des versions est important. AmneziaWG 1.x a introduit des en-tĂȘtes personnalisĂ©s qui diffĂ©raient des valeurs fixes de WireGuard — cela a aidĂ© pendant un certain temps, mais les systĂšmes DPI se sont adaptĂ©s. AmneziaWG 2.0, sorti fin 2025, randomise tout : les en-tĂȘtes changent d’un paquet Ă  l’autre, le remplissage varie d’un message Ă  l’autre, et les paquets de substitution imitent d’autres protocoles avant que la vĂ©ritable poignĂ©e de main ne commence. Il n’y a pas de signature universelle pour la dĂ©tection car chaque serveur AmneziaWG 2.0 gĂ©nĂšre son propre ensemble unique de paramĂštres. Chaque serveur parle son propre dialecte.

Lorsque tous les paramĂštres d’obfuscation sont rĂ©glĂ©s sur zĂ©ro, AmneziaWG se comporte de maniĂšre identique Ă  WireGuard — il est entiĂšrement rĂ©trocompatible au niveau du protocole. Mais avec des paramĂštres actifs (ce qui est le paramĂštre par dĂ©faut), il devient ce que WireGuard ne peut pas ĂȘtre : un tunnel VPN rapide que les systĂšmes DPI ont du mal Ă  identifier.

Alors, comment AmneziaWG chiffre-t-il son trafic ? Examinons les quatre niveaux d’obfuscation qui rendent le DPI aveugle — et pourquoi ils n’ajoutent presque aucun coĂ»t de vitesse.


Comment AmneziaWG se cache du DPI (Sans Perte de Vitesse)

AmneziaWG 2.0 utilise quatre niveaux d’obfuscation qui fonctionnent ensemble. Chacun cible une maniĂšre diffĂ©rente dont les systĂšmes DPI identifient le trafic VPN. Ensemble, ils rendent le trafic de chaque serveur unique.

En-tĂȘtes Dynamiques (H1–H4)

WireGuard utilise des identifiants de type message fixes de 32 bits :

  • 1 — pour l’initiation
  • 2 — pour la rĂ©ponse
  • 3 — pour la rĂ©ponse avec cookie
  • 4 — pour les donnĂ©es

Un appareil DPI scannant le trafic recherche simplement ces valeurs. AmneziaWG 2.0 remplace chaque valeur fixe par un nombre alĂ©atoire choisi dans une plage spĂ©cifiĂ©e. L’en-tĂȘte d’initiation (H1) peut ĂȘtre n’importe quelle valeur de 234567 Ă  345678. L’en-tĂȘte de rĂ©ponse (H2) peut ĂȘtre de 3456789 Ă  4567890. Ces plages ne se chevauchent jamais — le protocole doit toujours distinguer les types de paquets en interne — mais pour un observateur extĂ©rieur, il n’y a pas de valeur d’en-tĂȘte unique sur laquelle s’accrocher. Chaque paquet a l’air diffĂ©rent du prĂ©cĂ©dent.

Remplissage AlĂ©atoire (S1–S4)

Le paquet d’initiation de WireGuard fait toujours exactement 148 octets. Sa rĂ©ponse fait toujours exactement 92 octets. Ces tailles fixes sont une autre empreinte. AmneziaWG ajoute un remplissage alĂ©atoire Ă  chaque type de paquet : l’initiation devient 148+S1 octets, la rĂ©ponse devient 92+S2 octets, la rĂ©ponse avec cookie devient 64+S3 octets, et chaque paquet de donnĂ©es reçoit S4 octets de remplissage. S3 et S4 sont nouveaux dans la version 2.0 — et S4 est l’ajout le plus significatif, car il affecte chaque paquet de donnĂ©es, rendant l’analyse du trafic au niveau de la session beaucoup plus difficile.

Il y a une contrainte critique : S1+56 ne doit pas ĂȘtre Ă©gal Ă  S2. Étant donnĂ© que la diffĂ©rence de taille originale entre l’initiation et la rĂ©ponse est de 56 octets (148−92), si les valeurs de remplissage compensent alĂ©atoirement exactement cette diffĂ©rence, deux paquets remplis se retrouveront de la mĂȘme taille — recrĂ©ant l’empreinte que AmneziaWG essaie d’Ă©liminer. Le gĂ©nĂ©rateur de paramĂštres de l’installateur garantit automatiquement cette contrainte.

Signature de Protocole PersonnalisĂ©e (I1–I5)

Avant que la vĂ©ritable poignĂ©e de main ne commence, le client AmneziaWG envoie jusqu’Ă  cinq paquets de substitution qui imitent d’autres protocoles — QUIC, DNS, SIP ou des motifs d’octets personnalisĂ©s. Le serveur ignore complĂštement ces paquets. Il attend simplement la vĂ©ritable poignĂ©e de main.

  • Configuration simple : Envoie 128 octets alĂ©atoires <r 128>.
  • Configuration complexe : Envoie des octets qui ressemblent Ă  l’initiation d’une connexion QUIC (<b 0xc000000001><r 64><t>), avec un horodatage Unix.

Pour un systÚme DPI observant le début de session, les premiers paquets ressemblent à un trafic web normal.

Paquets Inutiles (Jc, Jmin, Jmax)

AprĂšs les paquets de substitution, le client envoie un nombre personnalisable de paquets inutiles — du bruit pur avec des tailles alĂ©atoires de Jmin Ă  Jmax. Ces paquets brouillent le profil de timing et de taille du dĂ©but de session, rendant plus difficile pour les systĂšmes DPI d’identifier oĂč commence la vĂ©ritable poignĂ©e de main.

Question de Vitesse

Il y a un chiffre qui circule sur Internet : AmneziaWG a 65 % de surcharge. Ce chiffre est rĂ©el, mais il fait rĂ©fĂ©rence Ă  l’implĂ©mentation Go en espace utilisateur — pas au module noyau. L’installateur communautaire utilisĂ© dans ce guide construit un module noyau DKMS, et le module noyau ajoute moins de 12 % de surcharge au total — plus proche de 3 % dans des tests rĂ©els. Sur un rĂ©seau non censurĂ©, vous verriez environ 95 Mbps via WireGuard et 92 Mbps via AmneziaWG 2.0. Sur un rĂ©seau censurĂ©, la comparaison est de 92 Mbps contre zĂ©ro.

Le tableau suivant rĂ©sume les paramĂštres que l’installateur gĂ©nĂšre automatiquement :

ParamÚtrePlage GénéréeValeur Exemple
Jc (nombre de paquets inutiles)4–86
Jmin (taille min. des paquets inutiles)40–8955
Jmax (taille max. des paquets inutiles)Jmin+100 Ă  Jmin+500380
S1 (remplissage d’initiation)15–15072
S2 (remplissage de rĂ©ponse)15–150, S1+56≠S256
S3 (remplissage de cookie)8–5532
S4 (remplissage de donnĂ©es)4–2716
H1 (plage d’en-tĂȘte d’initiation)uint32 sans chevauchement234567-345678
H2 (plage d’en-tĂȘte de rĂ©ponse)uint32 sans chevauchement3456789-4567890
H3 (plage d’en-tĂȘte de cookie)uint32 sans chevauchement56789012-67890123
H4 (plage d’en-tĂȘte de donnĂ©es)uint32 sans chevauchement456789012-567890123
I1 (paquet CPS)<r N> format<r 128&gt;

Vous n’avez pas besoin de dĂ©finir manuellement aucun de ces paramĂštres. L’installateur gĂ©nĂšre des valeurs alĂ©atoires cryptographiquement qui respectent les contraintes Ă  chaque fois.

Maintenant que vous savez comment fonctionne l’obfuscation, voyons comment AmneziaWG se compare aux alternatives que vous pourriez envisager.


AmneziaWG vs Alternatives — Guide de Prise de DĂ©cision Rapide

VPN
Si vous évaluez des protocoles VPN pour un environnement censuré, vous avez probablement rencontré plusieurs options. Voici comment elles se comparent sur des paramÚtres clés :

WireGuardAmneziaWG 2.0OpenVPN+obfs4ShadowsocksVLESS+Reality
RĂ©sistance au DPIFaibleÉlevĂ©eMoyenneMoyenneTrĂšs ÉlevĂ©e
Surcharge de Vitesse~4%<12% (~3% dans des conditions réelles)~25%~8%~10%
Tunnel VPN CompletOuiOuiOuiNon (proxy)Non (proxy)
Fonctionne dans le NoyauOuiOui (DKMS)NonNonNon
ComplexitĂ© de ConfigurationFaibleFaible (avec installateur)ÉlevĂ©eMoyenneÉlevĂ©e
TransportUDPUDPTCP/UDPTCPTCP

Les rÚgles de prise de décision sont simples :

  • Pas de DPI dans votre pays ? Utilisez WireGuard rĂ©gulier. C’est plus facile et a un Ă©cosystĂšme plus large.
  • Besoin d’une protection maximale contre le DPI et ne vous dĂ©range pas par les proxys ? VLESS+Reality est l’option la plus forte pour l’obfuscation, mais ce n’est pas un tunnel complet.
  • Vous voulez Ă  la fois de la vitesse et un tunnel complet avec obfuscation ? AmneziaWG 2.0 est la seule option qui offre des performances de niveau WireGuard avec une vĂ©ritable protection DPI dans un tunnel VPN complet.
  • Vous utilisez dĂ©jĂ  OpenVPN+obfs4 et cela fonctionne toujours ? Pas d’urgence Ă  changer, mais AmneziaWG sera nettement plus rapide.

Cet article se concentre sur AmneziaWG car c’est le seul protocole qui vous fournit un tunnel complet, des performances au niveau du noyau et une obfuscation intĂ©grĂ©e — le tout configurĂ© avec un seul script.

Si AmneziaWG est le bon choix pour votre situation, voici ce dont vous avez besoin avant de commencer le déploiement.


Ce Dont Vous Avez Besoin Avant de Commencer

Avant d’exĂ©cuter l’installateur, assurez-vous que votre environnement rĂ©pond Ă  ces exigences :

ExigenceDétailsPourquoi
OSUbuntu 24.04 LTS (installation propre). Ubuntu 25.10 est expĂ©rimental. Debian 12/13 fonctionne mais peut nĂ©cessiter curl prĂ©installĂ©.L’installateur est testĂ© et entiĂšrement supportĂ© sur Ubuntu 24.04.
SpĂ©cifications VPS1 vCore, 1 Go de RAM, 25 Go de stockage. Tout plan pour 3–5 $/mois est adaptĂ©.L’installateur nĂ©cessite ~2 Go d’espace disque et ~1 Go de RAM pendant la construction DKMS. Le VPN fonctionnel utilise des ressources minimales.
VirtualisationKVM (pas OpenVZ, pas LXC).AmneziaWG charge le module noyau via DKMS. LXC utilise un noyau partagĂ© de l’hĂŽte et ne peut pas charger de modules personnalisĂ©s.
AccĂšs SSHUtilisateur root ou sudo avec authentification par mot de passe/clĂ©.L’installateur doit s’exĂ©cuter en tant que root.
Port SSHPar dĂ©faut 22 ou prĂ©-ouvert dans UFW si vous utilisez un port non standard.Si SSH ne fonctionne pas sur le port 22 et que vous ne l’avez pas ouvert Ă  l’avance, la configuration du pare-feu de l’installateur vous bloquera.
Application ClienteAmnezia VPN >= 4.8.12.7 (toutes plateformes).Les options AWG 2.0 ne sont pas comprises par les anciens clients. Le client WireGuard standard ne prend pas en charge AWG du tout.

⚠ Avertissement : Les conteneurs LXC ne sont pas supportĂ©s. Si votre VPS utilise la virtualisation LXC, la construction du module noyau DKMS Ă©chouera. Vous devez utiliser KVM ou bare-metal. VĂ©rifiez auprĂšs de votre fournisseur si vous n’ĂȘtes pas sĂ»r.

⚠ Avertissement : Si votre SSH fonctionne sur un port non standard (autre que 22), vous devez l’ouvrir dans UFW avant d’exĂ©cuter l’installateur :
sudo ufw allow YOUR_PORT/tcp
Remplacez YOUR_PORT par votre port SSH rĂ©el. L’installateur inclut UFW avec une politique par dĂ©faut — si votre port SSH n’est pas autorisĂ©, vous serez immĂ©diatement bloquĂ©.

💡 Conseil : Attendez 5–10 minutes aprĂšs avoir créé votre VPS avant d’exĂ©cuter l’installateur. Cloud-init et les processus d’initialisation en arriĂšre-plan peuvent entrer en conflit avec les appels apt-get que l’installateur effectue.

Avec votre VPS prĂȘt et les prĂ©requis confirmĂ©s, dĂ©ployons AmneziaWG 2.0 en utilisant le script d’installation communautaire — la mĂ©thode la plus rapide et la plus transparente.


MĂ©thode 1 — DĂ©ployer avec l’Installateur CLI (RecommandĂ©)

C’est la mĂ©thode d’installation principale. Vous tĂ©lĂ©chargerez un script d’installation Ă©pinglĂ© Ă  la version, l’exĂ©cuterez en tant que root, parcourrez huit Ă©tapes automatisĂ©es (avec deux redĂ©marrages attendus), et vous vous retrouverez avec un serveur AmneziaWG 2.0 entiĂšrement configurĂ©. L’installateur gĂšre tout : installation des paquets, compilation du module noyau, configuration du pare-feu, gĂ©nĂ©ration de paramĂštres et dĂ©marrage du service.

6.1 — Connectez-vous à Votre VPS via SSH

Ouvrez votre terminal et connectez-vous Ă  votre serveur :
ssh root@<SERVER_IP>
Remplacez <SERVER_IP> par l’adresse IP publique rĂ©elle de votre VPS. Si votre fournisseur vous a donnĂ© un utilisateur non-root, connectez-vous avec cet utilisateur puis escaladez :
ssh <username>@<SERVER_IP>
sudo -i

Vous devriez voir la banniĂšre de bienvenue d’Ubuntu 24.04 suivie d’un prompt root :
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-xx-generic x86_64)
...
root@vps:~#

6.2 — TĂ©lĂ©chargez et ExĂ©cutez l’Installateur

TĂ©lĂ©chargez le script d’installation, rendez-le exĂ©cutable et exĂ©cutez-le :

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

L’URL est Ă©pinglĂ©e Ă  la version v5.8.1 — la derniĂšre version en date d’avril 2026. C’est une sĂ©curitĂ© de chaĂźne d’approvisionnement : cela garantit que le script tĂ©lĂ©chargĂ© correspond Ă  la version testĂ©e, mĂȘme si le dĂ©pĂŽt a Ă©tĂ© mis Ă  jour depuis.

L’installateur commence par vĂ©rifier votre systĂšme :

============================================
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

Si un contrĂŽle Ă©choue, l’installateur s’arrĂȘte et vous indique pourquoi. Corrigez le problĂšme et rĂ©exĂ©cutez la commande.

6.3 — Parcourez les Invites de l’Installateur

L’installateur est une machine d’Ă©tat Ă  huit Ă©tapes avec support de reprise aprĂšs redĂ©marrage. Il enregistre ses progrĂšs dans /root/awg/awgsetup_cfg.init, donc si le serveur redĂ©marre, vous n’avez qu’Ă  exĂ©cuter la mĂȘme commande Ă  nouveau et il reprend lĂ  oĂč il s’est arrĂȘtĂ©.

Étape 0 : Initialisation — L’installateur vĂ©rifie votre OS, le type de virtualisation, la RAM et l’espace disque. Il crĂ©e le rĂ©pertoire de travail /root/awg/ et met en place un fichier de verrouillage pour empĂȘcher les exĂ©cutions parallĂšles.

Étape 1 : Mise Ă  jour du SystĂšme & Installation des Paquets — L’installateur exĂ©cute apt-get update && apt-get upgrade -y Puis installe AmneziaWG, DKMS, les en-tĂȘtes Linux, UFW, Fail2Ban, les outils de gĂ©nĂ©ration de QR code et d’autres dĂ©pendances.

📝 Note : L’installateur supprime Ă©galement plusieurs services en arriĂšre-plan qui consomment des ressources sur des instances VPS minimales : snapd, modemmanager, networkd-dispatcher, unattended-upgrades, packagekit, lxd-agent-loader et udisks2. C’est intentionnel et sĂ»r pour les nƓuds VPN minimaux, mais cela peut casser des environnements Ă  usage gĂ©nĂ©ral.

Lorsque l’Ă©tape 1 est terminĂ©e, l’installateur demande un redĂ©marrage :

Reboot required. Reboot now? [y/n]:

Tapez y et appuyez sur EntrĂ©e. AprĂšs le redĂ©marrage du serveur, reconnectez-vous via SSH et rĂ©exĂ©cutez la mĂȘme commande :

sudo bash ./install_amneziawg_en.sh

Le script lit son Ă©tat enregistrĂ© et continue Ă  l’Ă©tape 2 sans redemander aucune invite.

Étape 2 : Construction du Module Noyau DKMS — L’installateur compile le module noyau AmneziaWG contre votre noyau actuel et l’enregistre auprĂšs de DKMS pour une reconstruction automatique lors des futures mises Ă  jour du noyau :

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.

Un deuxiÚme redémarrage est demandé. Tapez y et appuyez sur Entrée.

📝 Note : Deux redĂ©marrages pendant l’installation sont normaux et attendus. Le premier charge les nouveaux en-tĂȘtes de noyau, le second active le module noyau nouvellement construit. Le script enregistre l’Ă©tat entre les redĂ©marrages — rien n’est perdu.

AprĂšs le deuxiĂšme redĂ©marrage, reconnectez-vous et exĂ©cutez l’installateur une fois de plus :

sudo bash ./install_amneziawg_en.sh

Étape 3 : VĂ©rification du Module AprĂšs RedĂ©marrage — Le script vĂ©rifie que le module noyau est chargĂ© (lsmod | grep amneziawg). Si la construction DKMS a Ă©chouĂ© pour une raison quelconque, il revient Ă  l’implĂ©mentation Go en espace utilisateur avec un avertissement concernant la surcharge plus Ă©levĂ©e.

Étape 4 : Configuration du Pare-feu — UFW est activĂ© avec une politique par dĂ©faut de refus des entrĂ©es. L’installateur ajoute une rĂšgle de limitation de taux SSH sur le port 22, ouvre votre port VPN pour le trafic UDP et configure des rĂšgles de routage pour l’interface awg0.

Étape 5 : TĂ©lĂ©chargement des Scripts de Gestion — Les scripts de gestion client (manage_amneziawg.sh et awg_common.sh) sont tĂ©lĂ©chargĂ©s dans /root/awg/ avec des permissions rĂ©servĂ©es au propriĂ©taire (700). Ceux-ci sont Ă©galement Ă©pinglĂ©s Ă  la version v5.8.1.

Étape 6 : Configuration Interactive — L’installateur pose maintenant quatre questions :

  • Port UDP (par dĂ©faut : 39743, plage 1024–65535). Le dĂ©faut est un port Ă©levĂ© alĂ©atoire — gardez-le Ă  moins que votre FAI ne soit connu pour bloquer les ports UDP Ă©levĂ©s.
  • Sous-rĂ©seau de tunnel (par dĂ©faut : 10.9.9.1/24). C’est votre rĂ©seau VPN interne. Le serveur obtient .1, les clients obtiennent .2 Ă  .254, supportant jusqu’Ă  253 clients.
  • DĂ©sactiver IPv6 (par dĂ©faut : Y). RecommandĂ© — dĂ©sactiver IPv6 empĂȘche le trafic de fuir en dehors du tunnel sur les routes IPv6.
  • Mode de routage : Choisissez 1 pour tout le trafic, 2 pour Amnezia List + DNS (recommandĂ©), ou 3 pour des rĂ©seaux personnalisĂ©s. Le mode 2 route uniquement les plages IP publiques bloquĂ©es et DNS via le VPN, gardant votre accĂšs au rĂ©seau local rapide et direct.

💡 Conseil : Le MTU est rĂ©glĂ© Ă  1280 par dĂ©faut. C’est le MTU IPv6 minimum et est critique pour les rĂ©seaux mobiles et cellulaires. iOS est strict sur la dĂ©couverte de MTU de chemin, et les rĂ©seaux cellulaires ont souvent un MTU effectif infĂ©rieur Ă  celui de WireGuard par dĂ©faut de 1420. Laissez cela Ă  1280.

Étape 7 : DĂ©marrage du Service — L’installateur gĂ©nĂšre la configuration du serveur Ă  /etc/amnezia/amneziawg/awg0.conf, crĂ©e deux configurations client par dĂ©faut (my_phone et my_laptop) Ă  /root/awg/, gĂ©nĂšre des QR codes et dĂ©marre le service systemd awg-quick@awg0.

Étape 8 : Achùvement — Vous verrez le message de succùs :
VPN

L’installateur gĂ©nĂšre tous les paramĂštres d’obfuscation AmneziaWG 2.0 automatiquement. Vous n’avez pas besoin de les toucher. Chaque serveur obtient un ensemble unique de valeurs — il n’y a pas d’empreinte universelle pour les systĂšmes DPI Ă  dĂ©tecter.

6.4 — Gestion des Clients Aprùs Installation

Le script de gestion à /root/awg/manage_amneziawg.sh gÚre toutes les opérations du cycle de vie des clients. Voici les commandes essentielles :

Ajouter un nouveau client :

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

Cela gĂ©nĂšre un fichier .conf, un QR code et un fichier .vpnuri pour le nouveau client. La configuration du serveur est rechargĂ©e Ă  chaud — aucun redĂ©marrage de service n’est nĂ©cessaire.

Ajouter un client temporaire Ă  expiration automatique :

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

Un job cron vĂ©rifie toutes les cinq minutes et supprime automatiquement le client lorsqu’il expire. La configuration, les clĂ©s et l’entrĂ©e du serveur sont toutes nettoyĂ©es.

Lister tous les clients :

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]

Ajoutez le -v pour des détails supplémentaires incluant les clés publiques et les dates de création.

Supprimer un client :

sudo bash /root/awg/manage_amneziawg.sh remove guest

VĂ©rifier l’Ă©tat complet du serveur :

sudo bash /root/awg/manage_amneziawg.sh check

Cela montre l’Ă©tat du service, le port ouvert, tous les paramĂštres AWG 2.0, l’Ă©tat du module noyau, l’Ă©tat de UFW et l’Ă©tat de Fail2Ban en une seule vue.

Voir les statistiques de trafic par client :

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)

Créer une sauvegarde :

sudo bash /root/awg/manage_amneziawg.sh backup

Cela crĂ©e une archive compressĂ©e Ă  /root/awg/backups/ contenant votre configuration serveur, les configurations client, les clĂ©s et les donnĂ©es d’expiration.

📝 Note : Les commandes add et remove utilisent awg syncconf pour le rechargement Ă  chaud. La configuration du serveur se met Ă  jour instantanĂ©ment sans redĂ©marrer le service. N’utilisez restart que lorsque vous changez des paramĂštres cĂŽtĂ© serveur comme le port ou le MTU.

6.5 — VĂ©rifiez que le Serveur Fonctionne

Exécutez ces vérifications pour confirmer que tout fonctionne :

Vérifiez le service 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

VĂ©rifiez l’Ă©tat et les paramĂštres d’AmneziaWG :

sudo awg show awg0

Vérifiez le pare-feu :

sudo ufw status verbose

Status: active
Default: deny (incoming), allow (outgoing)
22/tcp                     LIMIT IN    Anywhere
39743/udp                  ALLOW IN    Anywhere

Vérifiez 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:

Vérifiez le module noyau DKMS :

dkms status

amneziawg/1.0.0, 6.8.0-110-generic, x86_64: installed

Si les cinq vĂ©rifications passent, votre serveur AmneziaWG 2.0 fonctionne et est prĂȘt Ă  accepter des connexions.

Votre serveur fonctionne et est vĂ©rifiĂ©. Si vous prĂ©fĂ©rez une approche basĂ©e sur une interface graphique plutĂŽt que sur le terminal, voici la mĂ©thode alternative utilisant l’application AmneziaVPN.


MĂ©thode 2 — DĂ©ployer avec l’Application AmneziaVPN (Alternative)

L’application de bureau AmneziaVPN peut auto-installer AmneziaWG sur votre serveur via SSH. Elle utilise le mĂȘme script d’installation sous-jacent que la mĂ©thode CLI, mais enveloppe tout dans une interface guidĂ©e. C’est idĂ©al si vous souhaitez une expĂ©rience d’installation sans intervention.

  1. Téléchargez AmneziaVPN depuis amnezia.org/en/downloads. Il est disponible pour Windows, macOS, Linux, Android et iOS.
  2. Ouvrez l’application et cliquez sur le ➕ (icĂŽne plus) ou Commencer.
  3. SĂ©lectionnez “VPN auto-hĂ©bergĂ©” parmi les options prĂ©sentĂ©es.
  4. Entrez vos identifiants de serveur :
    • Adresse IP du serveur (et port si SSH n’est pas sur 22, par exemple, 203.0.113.10:2221)
    • Nom d’utilisateur SSH (par exemple, root)
    • Mot de passe ou clĂ© privĂ©e SSH
  5. Choisissez le type d’installation :
    • Automatique — installe uniquement AmneziaWG (recommandĂ©)
    • Manuelle — choisissez un protocole spĂ©cifique dans la liste
  6. Cliquez sur “Installer” — l’application se connecte Ă  votre serveur via SSH et exĂ©cute l’installation automatiquement. Vous verrez un indicateur de progression.
  7. AprĂšs l’installation, l’application crĂ©e un profil de connexion VPN prĂȘt Ă  l’emploi.

Notes aprĂšs installation :

  • L’application installe AmneziaWG avec un port alĂ©atoire par dĂ©faut. Certains FAI bloquent UDP sur des ports Ă©levĂ©s. L’application recommande de changer pour un port infĂ©rieur Ă  9999 (comme 585 ou 1234). Pour le changer : cliquez sur l’icĂŽne d’engrenage Ă  cĂŽtĂ© de la connexion → onglet Gestion → changez le numĂ©ro de port.
  • Si votre serveur a dĂ©jĂ  Amnezia installĂ©, cliquez sur “Ignorer la configuration” lors de la crĂ©ation de la connexion, puis utilisez “VĂ©rifier le serveur pour les services Amnezia dĂ©jĂ  installĂ©s” dans l’onglet Gestion.

Voici comment les deux méthodes se comparent :

AspectInstallateur CLIApplication AmneziaVPN
ContrĂŽleComplet — vous voyez chaque Ă©tape, pouvez personnaliserLimitĂ© — l’application gĂšre tout
VisibilitĂ©Transparent — toutes les commandes visiblesOpaque — fonctionne en arriĂšre-plan
FlexibilitéRoutage personnalisé, points de terminaison, drapeauxUtilise uniquement les valeurs par défaut
FacilitĂ© d’utilisationExige une familiaritĂ© avec SSHAucun travail terminal
GestionSuite complĂšte manage_amneziawg.shGestion uniquement via l’application
Meilleur pourVPS non géré, dépannageConfiguration rapide, expérience guidée

Que vous ayez utilisĂ© la CLI ou l’application, votre serveur est prĂȘt. Connectons maintenant votre premier appareil.


Connexion de Votre Premier Client

AprĂšs l’installation, vous avez trois façons d’importer la configuration client dans l’application Amnezia VPN. Choisissez celle qui correspond Ă  votre appareil.

Méthode A : QR Code (Mobile)

L’installateur a gĂ©nĂ©rĂ© un QR code Ă  /root/awg/my_phone.png. TĂ©lĂ©chargez-le sur votre ordinateur :

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

Ouvrez le fichier PNG sur votre Ă©cran. Sur votre tĂ©lĂ©phone, ouvrez l’application Amnezia VPN, appuyez sur “Ajouter VPN” → “Scanner le QR code”, et pointez votre camĂ©ra vers le QR code sur votre Ă©cran. La connexion s’importe automatiquement.

Méthode B : vpn:// URI (Client Amnezia)

Affichez l’URI compressĂ© sur votre serveur :

cat /root/awg/my_phone.vpnuri

Copiez l’intĂ©gralitĂ© de la chaĂźne vpn://… et envoyez-la-vous — via Telegram, email ou une application de notes. Sur votre tĂ©lĂ©phone, ouvrez l’application Amnezia VPN, appuyez sur “Ajouter VPN” → “Coller depuis le presse-papiers”. La configuration s’importe en une Ă©tape.

L’URI est une version compressĂ©e en zlib, encodĂ©e en Base64 du fichier de configuration complet. C’est compact et conçu pour un partage rapide.

Méthode C : Fichier .conf (Bureau/Windows)

Téléchargez le fichier de configuration :

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

Ouvrez le client AmneziaWG pour Windows ou l’application de bureau AmneziaVPN, cliquez sur “Importer le(s) tunnel(s) depuis le fichier”, et sĂ©lectionnez le fichier .conf.

Vérifiez la Connexion

Une fois connecté, vérifiez que le tunnel achemine votre trafic via le serveur :
curl ifconfig.me
La sortie doit montrer l’adresse IP publique de votre serveur, pas la vĂŽtre : 203.0.113.1

Pour plus de détails, y compris la localisation géographique du serveur :

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

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

⚠ Avertissement : Le client WireGuard standard ne fonctionne pas avec les configurations AmneziaWG 2.0. Vous devez utiliser l’application Amnezia VPN (version 4.8.12.7 ou ultĂ©rieure) ou un client AmneziaWG natif (version 2.0.0 ou ultĂ©rieure sur Windows/Android/iOS).

⚠ Avertissement : Si vous voyez “ClĂ© invalide : s3” sur Windows, votre client AmneziaWG Windows est obsolĂšte (version infĂ©rieure Ă  2.0.0). Mettez Ă  jour vers la version 2.0.0+ ou passez Ă  l’application Amnezia VPN.

💡 Conseil : Si vous ĂȘtes connectĂ© mais n’avez pas Internet, vĂ©rifiez que votre configuration client a MTU = 1280 dans la section [Interface]. C’est la cause la plus courante de “la poignĂ©e de main rĂ©ussit mais pas de trafic” sur les rĂ©seaux mobiles.

Félicitations ! Votre tunnel VPN fonctionne.


Et Maintenant — Étendre Votre Configuration

Vous avez maintenant un tunnel VPN rĂ©sistant au DPI fonctionnant sur votre propre serveur, sous votre contrĂŽle, avec une vitesse de niveau WireGuard. La mort silencieuse des paquets qui a tuĂ© votre connexion WireGuard n’est plus un problĂšme — votre trafic ressemble Ă  rien que les systĂšmes DPI puissent identifier de maniĂšre fiable.

Voici les choses les plus utiles que vous pouvez faire ensuite :

  1. Ajouter des clients pour votre famille ou votre Ă©quipe — utilisez le script de gestion pour gĂ©nĂ©rer des configurations pour chaque appareil ayant besoin d’accĂšs.
  2. Configurer le tunneling fractionnĂ© si vous n’avez pas besoin d’un routage de tunnel complet — cela garde le trafic local rapide et rĂ©duit la bande passante sur votre VPS.
  3. Sauvegarder vos configurations — exĂ©cutez la commande de sauvegarde et stockez l’archive quelque part en sĂ©curitĂ©. Si votre serveur doit un jour ĂȘtre reconstruit, c’est ce qui vous sauvera de devoir tout recommencer.

Configurer le tunneling fractionnĂ© si vous n’avez pas besoin que tout le trafic soit acheminĂ© via le VPN. Cela est particuliĂšrement utile dans les pays avec une censure partielle — routez uniquement les sites bloquĂ©s via le tunnel et gardez le trafic local direct :

sudo bash /root/awg/manage_amneziawg.sh modify my_phone AllowedIPs "192.168.1.0/24,10.0.0.0/8"

Changer votre DNS client si vous prĂ©fĂ©rez d’autres rĂ©solveurs :

sudo bash /root/awg/manage_amneziawg.sh modify my_phone DNS "8.8.8.8,1.0.0.1"

Ajuster PersistentKeepalive si vous ĂȘtes sur une configuration NAT agressive. La valeur par dĂ©faut de 33 secondes maintient la session UDP Ă  travers NAT — la rĂ©duire Ă  25 peut aider sur les rĂ©seaux qui abandonnent rapidement les sessions UDP inactives :

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

Installer sur votre routeur pour une couverture réseau complÚte. AmneziaWG est supporté sur les routeurs Keenetic via AWG Manager et sur les routeurs ASUS fonctionnant sous Asuswrt-Merlin via AmneziaWG pour Merlin.

Sauvegardez votre configuration maintenant, avant que quoi que ce soit ne change :

sudo bash /root/awg/manage_amneziawg.sh backup

Si vous devez un jour migrer vers un nouveau serveur, exécutez une nouvelle installation puis :

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

La commande restore ramÚne vos configurations et clés, et regen met à jour les configurations client avec la nouvelle IP du serveur.

Pour une documentation plus approfondie, les docs officielles d’Amnezia sont disponibles sur docs.amnezia.org et la communautĂ© est active sur Telegram.

Conclusion

AprĂšs avoir traversĂ© la configuration complĂšte, ce qui ressort d’AmneziaWG 2.0 n’est pas seulement qu’il fonctionne — mais pourquoi il fonctionne de maniĂšre fiable lĂ  oĂč d’autres Ă©chouent. En prĂ©servant le noyau cryptographique Ă©prouvĂ© de WireGuard tout en changeant fondamentalement l’apparence du trafic sur le rĂ©seau, il contourne les faiblesses exactes que l’inspection approfondie des paquets exploite. Le rĂ©sultat est une configuration qui semble tout aussi rapide et simple que WireGuard en pratique, mais beaucoup plus rĂ©siliente dans des environnements hostiles. Une fois dĂ©ployĂ©, la valeur devient Ă©vidente : vous ne faites pas que faire fonctionner un VPN — vous en faites fonctionner un qui est construit pour survivre Ă  un blocage rĂ©el.

Si vous recherchez un VPS fiable pour hĂ©berger votre serveur AmneziaWG — ou si vous devez Ă©voluer avec des points de terminaison supplĂ©mentaires pour les membres de l’Ă©quipe — AvaHost fournit une virtualisation KVM avec un accĂšs root complet, un stockage NVMe et un support Ubuntu 24.04 que cette configuration nĂ©cessite. Leur infrastructure est spĂ©cialement conçue pour le type de dĂ©ploiements auto-hĂ©bergĂ©s que ce guide couvre.