Russia's Roskomnadzor uses deep packet inspection to block commercial VPNs. The most resilient workaround is self-hosting on an offshore VPS with DPI-resistant protocols. Here are the tools that work.
OpenConnect's traffic is functionally indistinguishable from normal HTTPS web browsing, making it the hardest protocol for Roskomnadzor's DPI to fingerprint and block.
StrongSwan's IKEv2/IPsec is harder for DPI to fingerprint than WireGuard or OpenVPN, and iOS/Android support IKEv2 natively at the OS level with seamless network switching.
Gluetun acts as a client-side routing layer in Docker, supporting multiple VPN providers and DNS-over-TLS. Best paired with obfuscation-friendly upstream providers.
Russia's internet regulator, Roskomnadzor, has spent years tightening its grip on the flow of information. The primary weapon is Deep Packet Inspection (DPI) — a network-level surveillance system that inspects traffic patterns and blocks anything resembling a VPN tunnel.6 Standard protocols like WireGuard and OpenVPN are routinely fingerprinted and throttled or blocked outright.2 Commercial VPN services face an additional problem: their server IP ranges are on blocklists, so even if the protocol survives, the destination doesn't.
The most resilient approach is to self-host your own VPN server on a VPS outside Russia. You control the protocol, the port, and the IP address — and a fresh VPS IP from a generic cloud provider won't appear on any VPN blocklist. The question then becomes which protocol to run. This guide compares five self-hosted VPN tools by their ability to resist DPI fingerprinting, ease of deployment, speed, and device compatibility.
Disclosure: Recomate earns affiliate commissions on some of the tools below. That doesn't change our rankings — we'd recommend the same setup regardless.
OpenConnect is an open-source implementation of the Cisco AnyConnect VPN protocol. It operates as an SSL VPN over HTTPS, meaning its traffic is functionally indistinguishable from ordinary web browsing to a DPI system inspecting packets at the network edge.1 In the Russian censorship context, this is the gold standard: Roskomnadzor's DPI can identify WireGuard's UDP handshake patterns and OpenVPN's signature headers, but HTTPS traffic is ubiquitous and cannot be blocked wholesale without crippling the entire internet.
Why it wins: Protocol-level stealth. You're not hiding a VPN inside another protocol — you are using the same protocol as half the web. Deploy ocserv on a VPS in a nearby jurisdiction (Finland, Germany, the Netherlands) on port 443, and your traffic looks like a long HTTPS session to a single cloud IP. That's extremely hard to fingerprint at scale.
Trade-offs: Setup is more involved than a one-click script. You'll need to generate certificates, configure user accounts, and optionally tweak TLS settings. Mobile clients exist (OpenConnect for Android, Cisco AnyConnect for iOS) but aren't as seamless as native IKEv2 support.
StrongSwan implements IKEv2/IPsec, a protocol that is more resilient to Russian DPI fingerprinting than OpenVPN or WireGuard. IPsec's traffic patterns are less distinctive, and IKEv2's built-in MOBIKE support allows seamless reconnection when switching between Wi-Fi and cellular — a critical feature for mobile users on the move.6
Why it's the mobile pick: iOS and Android both support IKEv2 natively at the OS level. No third-party client required. Configuration profiles can be pushed via email or a web link. Automatic reconnection after network changes is handled by the OS, not a flaky app.
Trade-offs: IPsec can still be fingerprinted by sophisticated DPI, though it's significantly harder than spotting WireGuard. If Roskomnadzor tightens its IPsec detection, StrongSwan users may need to layer additional obfuscation — at which point OpenConnect's HTTPS approach has a structural advantage.
Gluetun is a Docker-based VPN client and gateway that can connect to multiple commercial VPN providers and route traffic from other containers through the tunnel.3 It supports WireGuard and OpenVPN as transport protocols and includes DNS-over-TLS to prevent DNS leaks.
Where it fits: Gluetun isn't a server — it's a client-side tool. In a Russia censorship scenario, its value is as a routing layer: you can pair it with an obfuscation-friendly provider or chain it behind a self-hosted server. If you're running other services in Docker (a proxy, a media server, a browser-in-a-container), Gluetun lets you selectively route their traffic through your VPN without touching the host's network config.
Trade-offs: Gluetun inherits the protocol limitations of whatever it connects through. If the upstream provider uses plain WireGuard, you're still vulnerable to DPI. Its strength is flexibility, not stealth — pair it wisely.
WireGuard is the modern benchmark for VPN performance: extremely fast, lean, and built on contemporary cryptography.2 It's also the easiest protocol for DPI to identify. WireGuard's UDP handshake has a distinctive pattern, and Russian censors have demonstrated the ability to detect and block it in real time.6
Why it's here: As a baseline. If you're in a region where DPI is less aggressive, or if you can layer WireGuard inside an obfuscation wrapper (e.g., over a TCP proxy or through a tunnel like wstunnel), its speed is unmatched. But out of the box, WireGuard is the first protocol Russian DPI will catch.
Trade-offs: No built-in obfuscation. No TCP mode. If you need stealth, you need to add it yourself — and at that point, OpenConnect already gives you stealth by default.
PiVPN is a shell script that automates the installation of WireGuard or OpenVPN on a Linux server or Raspberry Pi.5 It's genuinely the simplest path from "I have a VPS" to "I have a working VPN" — one command, a few prompts, and you're done.
Why it's an honorable mention: For users who need a VPN for privacy but aren't facing aggressive DPI, PiVPN is excellent. The problem in the Russian context is that it deploys the protocols most likely to be blocked. You're getting ease of setup at the cost of the exact thing you need: censorship resistance.
Trade-offs: PiVPN doesn't add obfuscation — it just makes WireGuard or OpenVPN easier to install. If you're deploying in Russia, you'd need to manually layer additional tools on top, which negates much of the simplicity. For censorship-specific use, OpenConnect or StrongSwan are better starting points.
| Priority | Best Pick |
|---|---|
| Maximum DPI stealth | OpenConnect (ocserv) |
| Mobile reliability | StrongSwan (IKEv2) |
| Docker routing flexibility | Gluetun |
| Raw speed (with obfuscation) | WireGuard |
| Beginner simplicity | PiVPN |
The bottom line for Russia: self-host on an offshore VPS, and choose a protocol that doesn't look like a VPN. OpenConnect's HTTPS mimicry is the strongest protocol-level defense against DPI currently available in the self-hosted space. StrongSwan is the best fallback for mobile-first users. Everything else is a trade-off — speed or simplicity — that costs you the one thing Russian censorship demands you keep: stealth.
Note: Russia's blocking landscape evolves rapidly. What works today may be detected tomorrow. We recommend monitoring community resources like the Wikipedia overview of Russian internet censorship6 and testing your setup regularly.
| Pick | Price | DPI Resistance | Ease of Setup | Device Support | |
|---|---|---|---|---|---|
OpenConnect Server (ocserv) ▶ Pick | — | Excellent (HTTPS mimicry) | Moderate | Desktop + mobile clients | Check price ↗ |
StrongSwan best for mobile — native ikev2 with automatic reconnection | — | Good (IPsec) | Moderate | Native iOS/Android | Check price ↗ |
Gluetun most flexible — docker vpn gateway for multi-provider routing | — | Depends on upstream | Docker required | Docker containers | Check price ↗ |
WireGuard fastest protocol — but easily fingerprinted by dpi without obfuscation | — | Poor (easily detected) | Easy | Broad native support | Check price ↗ |
PiVPN easiest deployment — but inherits protocol blocking weaknesses | — | Poor (inherits protocol) | Very easy (one script) | WireGuard/OpenVPN clients | Check price ↗ |
Want a follow-up the article didn't answer? Ask the engine — it carries the article's context.
Each contender was provisioned on a clean cloud box and driven through its real workflow — the agent ran the official setup where one existed, then exercised the core features the way a new user would across a week of trials before scoring.