DropVPS Team
Writer: Cooper Reagan
How to install proton vpn on Centos 8

Table of Contents
What you will read?
- 1 Update CentOS 8 and fix EOL repositories
- 2 Install OpenVPN and required packages
- 3 Install Proton VPN CLI (Python)
- 4 Initialize Proton VPN CLI
- 5 Connect to a Proton VPN server
- 6 Enable kill switch, DNS protection, and autoconnect
- 7 Verify tunnel and DNS
- 8 Optional: Use NetworkManager with Proton VPN .ovpn files
- 9 Troubleshooting on CentOS 8
- 10 Upgrade or uninstall Proton VPN CLI
Proton VPN installation on CentOS 8 involves several key steps. The process begins with fixing end-of-life repository issues, followed by installing all required dependencies and configuring the Proton VPN CLI. After setup, the secure connection, kill switch, and DNS leak protection are tested. An alternative configuration method using NetworkManager is also provided.
Update CentOS 8 and fix EOL repositories
CentOS 8 is EOL. Switch to vault repositories and fully update the system to prevent package errors.
sudo sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-*.repo
sudo sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*.repo
sudo dnf clean all
sudo dnf -y update
sudo reboot
Install OpenVPN and required packages
Proton VPN CLI relies on OpenVPN and a few utilities. Install EPEL, OpenVPN, pip, and helpers.
sudo dnf -y install epel-release
sudo dnf -y install openvpn dialog python3-pip NetworkManager-openvpn wireguard-tools
sudo systemctl enable --now NetworkManager
Install Proton VPN CLI (Python)
Install the Proton VPN CLI via pip system-wide, then verify the version.
sudo pip3 install --upgrade pip
sudo pip3 install protonvpn-cli
protonvpn --version
ProtonVPN-CLI v3.x.x
Initialize Proton VPN CLI
Run the initializer to set protocol, DNS behavior, and authenticate. Your Proton account may require 2FA.
sudo protonvpn init
Choose a default protocol [OpenVPN]:
Enable DNS leak protection? [Y/n]:
Do you want to enable autoconnect? [y/N]:
Username (Proton): ********
Password: ********
Initialization successful.
Connect to a Proton VPN server
Connect to the fastest server or pick a specific endpoint. Check status after connecting.
sudo protonvpn c -f
sudo protonvpn status
Status: Connected
Server: NL#12
Protocol: OpenVPN (UDP)
IP: 185.xxx.xxx.xxx
Kill Switch: Off
List servers and connect to a chosen one if needed.
sudo protonvpn s -r NL
sudo protonvpn c NL#12
Enable kill switch, DNS protection, and autoconnect
Increase privacy by toggling kill switch and DNS leak protection. Adjust autoconnect if desired.
sudo protonvpn ks --on
sudo protonvpn dns --on
sudo protonvpn configure
Autoconnect [On/Off]: On
Default connection: Fastest
DNS Leak Protection: On
Kill Switch: On
Saved.
Verify tunnel and DNS
Confirm your public IP is from Proton VPN and DNS resolvers are not your ISP.
curl -4 ifconfig.io
nmcli dev show | grep -i 'IP4.DNS'
sudo protonvpn status
198.xxx.xxx.xxx
IP4.DNS[1]: 10.x.x.x
IP4.DNS[2]: 10.x.x.x
Status: Connected (Kill Switch: On, DNS: On)
Optional: Use NetworkManager with Proton VPN .ovpn files
If you prefer GUI/NM control, import a Proton .ovpn profile and bring it up with nmcli.
mkdir -p ~/protonvpn
# Download a ProtonVPN OpenVPN (.ovpn) file into ~/protonvpn
nmcli connection import type openvpn file ~/protonvpn/ProtonVPN-NL-UDP.ovpn
nmcli con up "ProtonVPN-NL-UDP"
Disconnect with:
nmcli con down "ProtonVPN-NL-UDP"
Troubleshooting on CentOS 8
If package installs fail, recheck vault repo changes and EPEL status. For OpenVPN errors, enable verbose logging.
sudo dnf repolist
openvpn --version
sudo protonvpn d && sudo protonvpn c -f -v
Upgrade or uninstall Proton VPN CLI
Keep the CLI current. Disconnect before uninstalling.
sudo pip3 install --upgrade protonvpn-cli
protonvpn --version
sudo protonvpn d
sudo pip3 uninstall protonvpn-cli
sudo rm -rf ~/.pvpn-cli /root/.pvpn-cli
For more guides, server purchases, and support, visit dropvps.com.