What is OpenVPN?
OpenVPN for Android by Arne Schwabe is an app that uses any standard OpenVPN configuration files to allow Android users to connect to any VPN service which supports the OpenVPN protocol. Well... not only is OpenVPN for Android open source, but it is actually more fully-featured than most custom VPN apps…
OpenVPN for Android is free and open source software (FOSS), so it is free in every sense of the word. Do please be aware, however, that in order to use it you must either subscribe to a commercial VPN service or setup your own private OpenVPN server. If you cannot or do not want to use the Google Play Store, OpenVPN for Android can instead be downloaded as an .apk file or installed from F-Droid.
OpenVPN for Android features
OpenVPN for Android is based on the community version of OpenVPN and uses the latest OpenVPN 2.x source code. This means it offers the following key features:
- Open source
- Full Domain Name System (DNS) leak protection – both Internet Protocol version 4 (IPv4) and Internet Protocol version 6 (IPv6)
- Full IPv6 routing
- Web Real-Time Communication (WebRTC) leak protection
- Uses the most up-to-date version of OpenVPN (and therefore the most secure)
- Can be configured to act as a kill switch
How to use OpenVPN for Android
Using OpenVPN for Android is not hard, but the need to import third-party OpenVPN configuration files does make setup a little more involved than with preconfigured custom VPN apps.
1. Download the OpenVPN configuration files from your VPN provider’s website. Unzip them (if required) and transfer to a folder on your Android device via USB. Alternatively, download them directly to your Android device and unzip them with an app such as ZArchiver.
2. Download, install and run OpenVPN for Android(if you haven’t already). Touch the + icon to the top right of the screen to Add Profile. Give the profile a suitable name, then hit “Import.”
3. Navigate to the folder where you saved the unzipped OpenVPN config file(s), and choose a server (.ovpn file). Once imported, touch the tick ✔ icon to continue.
Many providers include all necessary keys and account information in customized .ovpn files, so no further configuration is needed. Others may require that you enter your account information and other details. Please see your provider’s documentation for specific instructions.
4. Once done, you’ll see the server name under the Profiles tab. To start the VPN, just touch it. You can import .ovpn files for as many servers as you like, and they will show up here.
A rather natty set of graphs allows you to monitor your VPN bandwidth usage.
How to enable IPV6 routing on OpenVPN for Android
You can prevent IPv6 DNS leaks by telling OpenVPN for Android to properly route all IPv6 traffic over the VPN. To ensure this is enabled:
1. Edit the specific VPN connection in the “Profiles” tab.
2. Ensure that IPv6 -> Use default Route is checked. While you are here, also check that IPv4 leak protection is enabled (it should be by default).
Enable a kill switch on Android
To configure OpenVPN for Android to act as a kill switch:
1. Edit the specific VPN connection in the “Profiles” tab (see above).
2. Go to the “Advanced” tab and check “Persistent Tun” and set “Connection retries” to Unlimited.
Ta-da! You now have an OpenVPN kill switch for Android.
Nougat 7+ includes a built-in kill switch that works with any VPN. This includes OpenVPN for Android. This built-in kill switch is almost certainly more robust than the persistent TUN method described above, so if you have more recent Android device we recommend using this instead. Please see here for how.
Other than custom VPN apps, OpenVPN for Android’s main rival is OpenVPN Connect. Like OpenVPN for Android, this is a generic OpenVPN client that can use regular OpenVPN configuration files to connect to any VPN service that supports OpenVPN.
OpenVPN Connect is the “official” client from OpenVPN Inc. and is designed to be very user-friendly for the casual VPN user without any technical skills. It is therefore less fully featured than OpenVPN for Android, which is aimed at more advanced users.
Another important difference is that OpenVPN for Android is open source while the official OpenVPN Connect app is not. For this reason, OpenVPN for Android is regarded as being the “semi-official” app by many in open source OpenVPN community.
It may seem a little counterintuitive, but with full IPv6 routing, bandwidth usage graphs, and the ability to configure as a kill switch, OpenVPN for Android is more fully-featured than almost any custom Android VPN app I have yet reviewed. It is also more fully featured than its desktop equivalents.
Add in the fact that OpenVPN for Android is open source and always uses the latest version of OpenVPN, and we have a compelling case for preferring it over custom Android VPN apps.