Deploying OpenVPN Access Server on Linux

OpenVPN is an open-source virtual private network (VPN) solution that establishes secure point-to-point or site-to-site connections using SSL/TLS. It offers three primary deployment options:

  • OpenVPN Community Edition: A free, command-line-driven implementation requiring manual configuration of both server and client components across Linux, Windows, macOS, Android, and iOS.
  • OpenVPN Access Server (openvpn-as): A commercial offering with a web-based management interface, simplified client provisioning, and support for cloud deployments. It inclueds two complimentary concurrent user licenses for evaluation.
  • CloudConnexa: A fully managed cloud-native service enabling zero-trust networking without self-hosted infrastructure. It provides three free user slots and features like content filtering and dynamic routing.

This guide focuses on installing OpenVPN Access Server via three methods.

Method 1: Docker Deployment

Create a persistent configuration directory and launch the container:

mkdir -p /opt/openvpn-as/config

docker run -d \
  --name=openvpn-as \
  --restart=always \
  -v /opt/openvpn-as/config:/config \
  -e INTERFACE=eth0 \
  -e PGID=1001 \
  -e PUID=1001 \
  -e TZ=UTC \
  -p 1194:1194/udp \
  -p 443:443/tcp \
  -p 943:943/tcp \
  --net=host \
  --privileged \
  linuxserver/openvpn-as

After initialization (monitor with docker logs -f openvpn-as), access the admin portal at https://<server-ip>:943/admin. Default credentials are admin / password. Client profiles can be downloaded from the web UI.

Method 2: APT Repository Installation

Add the officail repository and install:

apt update
apt install -y ca-certificates wget net-tools gnupg

wget -qO /etc/apt/trusted.gpg.d/openvpn.asc https://as-repository.openvpn.net/as-repo-public.asc
echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/openvpn.asc] http://as-repository.openvpn.net/as/debian jammy main" > /etc/apt/sources.list.d/openvpn-as.list

apt update
apt install -y openvpn-as

The service (openvpnas) starts automatically. Check status with systemctl status openvpnas. Initial credentials appear in /usr/local/openvpn_as/init.log.

Method 3: Offline DEB Package Installation

Download required packages:

wget https://swupdate.openvpn.net/as/openvpn-as_2.13.1-d8cdeb9c-Ubuntu22_amd64.deb
wget https://swupdate.openvpn.net/as/clients/openvpn-as-bundled-clients-29.deb

Install dependencies:

apt install -y bridge-utils dmidecode iptables iproute2 libc6 libffi7 libgcc-s1 liblz4-1 \
liblzo2-2 libmariadb3 libpcap0.8 libssl3 libstdc++6 libsasl2-2 libsqlite3-0 net-tools \
python3-pkg-resources python3-migrate python3-sqlalchemy python3-mysqldb python3-ldap3 \
sqlite3 zlib1g python3-netaddr python3-arrow python3-lxml python3-constantly \
python3-hyperlink python3-automat python3-service-identity python3-cffi \
python3-defusedxml libcap-ng0 libnl-3-200 libnl-genl-3-200 python3-typing-extensions

Install the packages:

dpkg -i openvpn-as-bundled-clients-29.deb openvpn-as_2.13.1-d8cdeb9c-Ubuntu22_amd64.deb

The service behaves identically to the APT installation, with files located under /usr/local/openvpn_as.

Comparison of Methods

  • Docker: Fastest setup but uses an outdated image (last updated ~3 years ago).
  • APT: Installs the latest version but may require proxy access for repository connectivity.
  • Offline DEB: Bypasses network constraints during installation while providing current software versions, assuming packages are pre-downloaded.

Tags: openvpn vpn Linux docker networking

Posted on Mon, 08 Jun 2026 18:03:46 +0000 by TKB