Choosing the Right VPN for UBports
UBports’ Ubuntu Touch fork runs on phones and tablets, uses the Lomiri (formerly Unity 8) interface, and is aimed at enthusiasts comfortable with a little command-line work. Out of the box, its root filesystem is mounted read-only and there’s no built-in NetworkManager GUI for VPNs, so most VPN setups happen via CLI tools either in a Libertine container or on the host after enabling developer mode and remounting the system partition read-write.
Key UBports specifics to bear in mind:
- Package manager:
apt(Debian/Ubuntu base), normally in a Libertine container unless you remount/as writable in developer mode. - Architecture: ARM64 (aarch64) or ARMHF, so choose VPN clients compiled for ARM.
- Environment: Lomiri desktop Terminal app, touchscreen-optimized, no NetworkManager GUI.
- Typical user: power user happy with CLI, doesn’t mind editing configs and managing services via
systemdoropenvpndirectly.
Given those constraints, the most suitable VPN services are:
- ProtonVPN – official ARM-compatible CLI, supports WireGuard OpenVPN.
- Mullvad – Debian/Ubuntu ARM64
.debpackage with WireGuard support. - IVPN – offers OpenVPN/WireGuard configs you can run with the default
openvpnorwg-quick.
Feature Comparison
| VPN Service | Protocols | ARM-64 Support | CLI Client | Install Method |
|---|---|---|---|---|
| ProtonVPN | WireGuard, OpenVPN | Yes | protonvpn-cli | pip / apt |
| Mullvad | WireGuard, OpenVPN | Yes | mullvad | apt (.deb) |
| IVPN | WireGuard, OpenVPN | Yes | openvpn / wg-quick | apt config files |
Installation Configuration
1. ProtonVPN CLI
ProtonVPN offers an official CLI that installs via Python’s pip and apt. You’ll need developer mode enabled and sufficient space in your Libertine container or on the host after remounting / read-write.
- Enable developer mode in UBports settings, connect via
adbor SSH. - Remount system partition (host install) or open your Libertine container’s shell.
# Remount host rootfs read-write (if you choose host install) sudo mount -o remount,rw / # Update and install dependencies sudo apt update sudo apt install -y python3-pip openvpn # Install ProtonVPN CLI sudo pip3 install protonvpn-cli # Initialise ProtonVPN (follow interactive prompts) sudo protonvpn init
After initialization, connect with:
# List profiles protonvpn status # Connect protonvpn c --fastest
2. Mullvad App
Mullvad publishes ARM64 Debian packages, making it straightforward to install under UBports.
- Download the ARM64
.debon-device or PC. - Transfer it via
scpinto your Libertine container or host filesystem. - Install with
aptordpkg.
# Inside Libertine or host after remount sudo apt update # If dpkg is missing dependencies: sudo apt install -f # Install the downloaded package sudo dpkg -i mullvad-vpn-app__arm64.deb # Install missing deps, if any sudo apt install -f # Launch Mullvad CLI mullvad status # Connect (replace XXXXXX with your account number) mullvad connect XXXXXX
3. IVPN via OpenVPN/WireGuard
IVPN doesn’t have a bespoke ARM client, but you can use the default openvpn or wg-quick. Download their config bundle and run directly.
# Install core tools sudo apt update sudo apt install -y openvpn wireguard-tools # Create a directory for IVPN configs mkdir -p ~/ivpn cd ~/ivpn # On a PC, download your IVPN config bundle and transfer it here, # or use curl on-device if you have a link # curl -O https://www.ivpn.net/download/ivpn-configs.tar.gz tar xzf ivpn-configs.tar.gz # Connect with OpenVPN sudo openvpn --config ivpn-.ovpn # Or for WireGuard (choose a .conf) sudo wg-quick up ivpn-.conf
Adjust the server file names and paths to match what you extracted. You’ll be prompted for your IVPN username/password if using OpenVPN.
Final Tips
- Keep your Libertine container tidy—remove unneeded packages to save space.
- If you experience network drops, check the built-in firewall (
ufw) or disable IPv6 to prevent leaks. - Use
systemdor simple shell scripts in/etc/init.d/to automate VPN connections at startup.
With these CLI-focused providers and a little UBports know-how, you’ll secure your mobile experience without relying on a heavyweight GUI. Happy browsing!
Leave a Reply