Vopono

From ArchWiki

vopono is a tool to run applications via VPN tunnels (OpenVPN, Wireguard or OpenConnect) with temporary network namespaces.

vopono supports forwarding and proxying ports from inside the namespace to the host machine so it can be used to run servers and daemons through the VPN connection whilst other applications on the host machine are unaffected.

Multiple applications can be run in a single namespace, and multiple namespaces can be created concurrently (for different VPN connections).

Automatic configuration is supported for many popular VPN providers including Mullvad, ProtonVPN, Private Internet Access, AzireVPN, iVPN, and TigerVPN. Custom OpenVPN and wg-quick configuration files can also be passed manually for other providers.

vopono is licensed under the GPLv3, and written in Rust.

Installation

voponoAUR, vopono-binAUR and vopono-gitAUR packages are available on the AUR for building the most recent release from source, using pre-built binaries for the most recent release and building the current state of the master branch from source respectively.

Alternatively, one can clone the repository and install it with Cargo.

Configuration

Run vopono sync to automatically generate configuration files for your VPN provider. They will be written to $XDG_CONFIG_HOME/vopono/.

Usage

Run vopono exec --provider $PROVIDER --server $SERVER_PREFIX $APPLICATION to launch an application in a network namespace with the specified VPN provider and server.

You can see the possible servers for a provider (after running vopono sync) by running vopono servers $PROVIDER

See the vopono User Guide for more details on running daemons and servers with vopono, and other advanced use cases.

See also