A VPN, or virtual private network, is one of the most important tools to maintain your online privacy and security. VPNs are available for Windows, macOS, and Linux systems, as well as mobile devices.

As such, you can install a VPN on your Raspberry Pi thanks to OpenVPN. This is useful for avoiding censorship, region-blocking when streaming video, and various other tasks.

Here’s everything you need to know about installing a VPN on a Raspberry Pi.

Why Does Your Raspberry Pi Need a VPN?

There are many good reasons to use a VPN on your Raspberry Pi. All of these eventually come down to user privacy. In short, a VPN client encrypts data from your PC or mobile and sends it via a VPN server.

Raspberry Pi 4

From this anonymous point, your online activity is hidden.

If you’re using your Raspberry Pi as a Kodi media center, a VPN might circumvent Netflix-style region-blocking. It can also unblock censorship and anything else blocking your access to media.

For instance, to access BBC iPlayer from the US, you need a VPN. By connecting to a UK-based VPN server, you can stream your favorite TV show.

Requirements for a VPN on the Raspberry Pi

To use a VPN on a Raspberry Pi, you will need:

  • Raspberry Pi 2 or later. Earlier models will struggle with encryption (this guide has been tested with a Raspberry Pi 400)
  • VPN account that supports OpenVPN (This guide has been tested with NordVPN)
  • Keyboard and monitor if not using SSH
  • If you’re using SSH, you need suitable software on your PC:
    • Windows users can use PuTTY or PowerShell’s built-in SSH support
    • Linux and Mac have native SSH functionality via the terminal

A paid VPN subscription is preferable if you are streaming video. Free VPNs are also available, but are less suitable for streaming.

SSH should also be enabled on the Pi. Our guide to setting up SSH on the Raspberry Pi explains how to do this.

What Is OpenVPN?

OpenVPN is an open-source VPN system.

It is supported by most VPN services that use OpenSSL for encryption, and can be set up with a simple installation and appropriate configuration files.

Most VPNs offer desktop and mobile clients. Since these typically don’t work on a Raspberry Pi, you need an alternative. Because OpenVPN can be managed from the terminal, you can manage a VPN on Raspberry Pi without a dedicated app.

In case you were wondering, OpenVPN is available to use on other systems, too. If your router was compatible with subscription VPN services, you would use OpenVPN configuration files.

Set Up a VPN on Your Raspberry Pi

The steps in this guide assume you’re using Raspberry Pi OS or another Debian-based Linux operating system.

This is a straightforward method for running a VPN on your Raspberry Pi regardless of operating system or disk image.

Begin either by opening a terminal on your Raspberry Pi or connecting via SSH.

The first thing to do (depending on your VPN provider, so check their support pages) is to disable IPv6. In the terminal, enter

        sudo nano /etc/sysctl.conf
    

Scroll to the bottom of the text file and add the following lines:

        net.ipv6.conf.all.disable_ipv6=1

net.ipv6.conf.default.disable_ipv6=1

net.ipv6.conf.lo.disable_ipv6=1

net.ipv6.conf.tuno.disable_ipv6=1

It should look like this:

Remove IPv6 settings

Press Ctrl+X to save, Y to confirm. IPv6 is now disabled.

Next, install OpenVPN:

        sudo apt install openvpn
    
Install OpenVPN on Raspberry Pi

Once complete, issue the reboot command:

        sudo reboot
    

When your Pi has restarted, download the OpenVPN files from your VPN provider. The overwhelming majority of services offer support for OpenVPN. This can be done in your browser window, or on a different computer and copied across via a USB device.

You can also download using wget. For example, I set up a NordVPN-provided OpenVPN configuration file. OpenVPN requires you to use the openvpn directory for configuration files, so change directory:

        cd /etc/openvpn
    

For the NordVPN OpenVPN configuration files, you would use:

        sudo wget https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip
    
Dowbload OpenVPN configurations

Naturally, check with your own VPN for the correct location for its OpenVPN configuration files. Some VPNs (such as ExpressVPN) provide configuration files as individual downloads. This can save time if you regularly want to use the same server in a particular location.

To unzip the configuration files:

        unzip ovpn.zip
    

Once these files are unpacked, issue the run command:

        sudo openvpn your_ovpn_configuration_file.ovpn
    

You'll be prompted for your VPN username and password, so enter these.

Connect to a VPN on your Raspberry Pi

Within moments, the VPN connection should be established, and you'll be enjoying a fully private Raspberry Pi Kodi experience. You're ready to go region-free!

Disconnecting and Changing to a Different VPN Server

Should you wish to disconnect the VPN, you'll need to hit Ctrl + C to end the session. To connect to a different server, simply repeat the earlier command, but with a different configuration file. Each connection will require the username and password to be input.

VPNs With a Raspberry Pi Client

Rather than mess around in the terminal, some VPN services offer a client app for Raspberry Pi users. This is like using a VPN client on a Windows PC, and doesn’t rely on you downloading OpenVPN configuration files.

We’ve found three VPNs that offer a Raspberry Pi client app. With this installed, you can easily choose the server you wish to access the internet through, and connect to it.

  • ProtonVPN: this VPN has servers in 67 countries, suitable for streaming, P2P, and Tor access [AFF LINK]
  • NordVPN: one of the biggest VPNs around, with servers in 60 countries
  • Private Internet Access: a fast VPN with servers in over 80 countries, PIA is unsuitable for unblocking Netflix, but has other strengths

Using one of these solutions is ideal if you need quick access to a VPN.

Make Your Raspberry Pi Private With a VPN

Older Raspberry Pis cannot handle a VPN. The data encryption and decryption that is required slows the older boards down. Even a Raspberry Pi 2 is impacted, but remains usable.

The best versions for a VPN are the Raspberry Pi 3 and 4. The 8GB Raspberry Pi 4 model in particular is ideal for running a VPN.

Whether you use OpenVPN or a VPN client, there is a way to access a VPN from your Raspberry Pi.