Source Code

Using Development Versions of OpenVPN Community Edition

Getting OpenVPN snapshot builds (binaries)

We offer several different kinds of development builds and snapshots:

Note: These snapshots are either entirely untested or tested only briefly; there are no guarantees they always work correctly.

Where to find the source code

You can find a download of a "source ball" on the main download page for OpenVPN. This is a compressed archive containing the source code for a specific release. All our open source projects are also available via git repositories, the preferred development method.

OpenVPN 2 (server and client library)

We keep three independent git repositories for OpenVPN 2.x, where they should always be in sync:

OpenVPN 3 Core Library

The OpenVPN 3 core library is a C++11 (and newer) source code library used by OpenVPN 3 Linux, OpenVPN Connect, and OpenVPN for Android. This library contains the lower-level interfaces to implement the OpenVPN wire protocol.

OpenVPN 2 GUI for Windows

OpenVPN for Android

OpenVPN 3 Linux

OpenVPN 3 Linux is a new, OpenVPN-3-based implementation focusing on Linux with a completely different approach and user interface compared to the classic OpenVPN 2.x generation. You can find more information here:

We keep three independent git repositories for OpenVPN 3 Linux in sync

OpenVPN Connect v3

OpenVPN Inc. develops the VPN client OpenVPN Connect. It’s included with OpenVPN Access Server, a self-hosted business VPN. It’s also used to connect to CloudConnexa, our OpenVPN-as-a-Service solution. OpenVPN Connect is not open source, but you can download it free from our website and select App Stores. With it, you can connect to any OpenVPN server. We built it on the open-source OpenVPN 3 client library listed above.

Building OpenVPN

Each of these OpenVPN projects should contain a README file in the git repository or their corresponding source archive. This file should describe the needed steps to build the project yourself. As each of these OpenVPN projects is quite different and available on various platforms, the build process is specific to each project and platform.

Reporting Bugs

If you're unsure if your problem is a bug, you can ask about it on OpenVPN support channels. The community developer support section contains various channels to reach the OpenVPN community and developers:

If you've genuinely found a bug, check on the bug report sites below if the same issue has been reported and possibly fixed already. If you've found a new, unfixed bug, report it with as many relevant details as possible; good bug reports help resolve the problem quickly. In each bug report, you should document a few things as outlined below.

To report bugs for OpenVPN 2.x — https://github.com/OpenVPN/openvpn/issues
To report bugs for OpenVPN 3.x Core — https://github.com/OpenVPN/openvpn3/issues
To report bugs for OpenVPN3 Linux — https://codeberg.org/OpenVPN/openvpn3-linux/issues

Make sure to include in your bug report as much details as possible:

  • Operating system (e.g., OpenBSD 4.3, Fedora 36, Ubuntu 22.04 LTS, Windows 11, Android 12).
  • Report as much information about the OpenVPN version you're running as you can.
  • Relevant parts of OpenVPN client and/or server logs (when available).
  • If you built OpenVPN yourself, include the ten first lines of config.log, where this file is available.
  • Finally, describe the problem to the best of your ability. It is helpful to understand the background a bit.