Platform status
Windows is a Tier 1 platform - actively tested for every source commit. Supported versions:- Windows 7 and newer (client)
- Windows Server 2012 and newer (server)
TUN/TAP driver
OpenVPN requires a TUN/TAP kernel driver to function on Windows.OpenVPN installers include the necessary drivers, so manual installation is typically not required.
Available drivers
Starting from Windows 10 2004 / Windows Server 2022, OpenVPN supports multiple driver options:- ovpn-dco-win (Default)
- tap-windows6
Data Channel Offload driver - Provides kernel-level acceleration for improved performance.Requirements:
- Windows 10 2004+ / Windows Server 2022+
- Included in OpenVPN 2.6.0+ installers
- Supports both client and server mode (server mode requires OpenVPN 2.7+)
- Kernel-level data packet processing
- Significantly improved performance
- Epoch data channel support (OpenVPN 2.8.0+)
OpenVPN automatically selects ovpn-dco if all configuration options are compatible, with automatic fallback to tap-windows6 if needed.
Driver selection
The--windows-driver option is kept for backward compatibility but is now ignored. To force TAP driver usage:
Installation
Official OpenVPN installers are available at:- https://openvpn.net/community-downloads/
- https://build.openvpn.net/downloads/snapshots/github-actions/openvpn2/ (snapshots)
- OpenVPN executable
- ovpn-dco-win driver
- tap-windows6 driver
- OpenVPN GUI
- Interactive service
Windows services
OpenVPN provides two service implementations for different use cases.Interactive service
The OpenVPNServiceInteractive allows unprivileged users to manage VPN connections. Features:- Starts automatically at system startup
- No administrator privileges required for users
- Integrates with OpenVPN GUI
- Required for ovpn-dco-win driver
- Handles privileged operations (NRPT, WFP filters, adapter creation)
- Global:
C:\Program Files\OpenVPN\config - Per-user:
%USERPROFILE%\OpenVPN\config(for Administrators or “OpenVPN Administrator” group)
Automatic service
OpenVPNService is designed for VPN connections that should run continuously. Features:- Runs as unprivileged user (
NT SERVICE\OpenVPNService) since OpenVPN 2.7 - Automatically restarts crashed OpenVPN processes
- Delegates privileged tasks to interactive service
- Suitable for always-on VPN configurations
If using Windows Certificate Store (cryptoapi), ensure certificates are readable by
NT SERVICE\OpenVPNService.Windows-specific features
Network adapter management
OpenVPN 2.7+ automatically creates network adapters on demand. Manual adapter creation is no longer required for running multiple simultaneous connections.DNS configuration (NRPT)
OpenVPN 2.7+ uses Name Resolution Policy Table (NRPT) for DNS configuration. Benefits:- Native split-DNS support
- DNSSEC support
- Better compatibility with local DNS resolvers
- No DNS leaks
DNS leak prevention
--block-outside-dns prevents DNS leaks by blocking TCP/UDP port 53 access except for tunnel traffic.
- Windows Vista or later
- Uses Windows Filtering Platform (WFP)
Local network protection
Theblock-local flag (used with --redirect-gateway) is enforced via Windows Firewall (WFP filters) to prevent TunnelCrack-style attacks.
IP address configuration methods
The--ip-win32 option controls how IP addresses are set on TAP adapters:
- adaptive (Default)
- dynamic
- netsh
- ipapi
Tries
dynamic method first, falls back to netsh if DHCP negotiation fails within 20 seconds.Certificate store integration
--cryptoapicert allows using certificates from Windows Certificate System Store with smart cards.
Selection methods:
Windows DCO (ovpn-dco-win)
Requirements
- Windows 10 2004+ / Windows Server 2022+
- OpenVPN 2.6.0+ (client and P2P mode)
- OpenVPN 2.7+ (server mode)
- OpenVPN 2.8.0+ (epoch data channel support)
Limitations
- Layer 3 only (dev tun)
- AEAD ciphers only: ChaCha20-Poly1305 (Windows 11+), AES-GCM-128/192/256
- No compression support
- Client and P2P mode only (server mode in OpenVPN 2.7+)
- OpenVPN 2.4.0+ peers required
- ChaCha20-Poly1305 requires Windows 11
Automatic DCO selection
OpenVPN automatically enables DCO if:- All configuration options are DCO-compatible
- ovpn-dco-win driver is installed
- DCO is not explicitly disabled
Utility commands
Show available adapters
Show routing table and adapter list
Adapter management with tapctl
Thetapctl.exe utility manages both TAP and Win-DCO adapters:
Best practices
- Use interactive service for most deployments
- Enable DCO for best performance (automatic by default)
- Use
--block-outside-dnsto prevent DNS leaks - Configure certificates for
NT SERVICE\OpenVPNServicewhen using automatic service - Use NRPT for DNS (automatic with interactive service)
Common issues
Certificates not accessible by service
If using--cryptoapicert with the automatic service, ensure certificates are readable by NT SERVICE\OpenVPNService:
- Open Certificate Manager (certmgr.msc)
- Right-click certificate → All Tasks → Manage Private Keys
- Add
NT SERVICE\OpenVPNServicewith Read permissions