### Start WireGuard with wg-quick example Source: https://protonvpn.com/support/wireguard-linux Example of starting a WireGuard VPN session with wg-quick using the configuration file swiss1-CH-5.conf. ```bash sudo wg-quick up swiss1-CH-5 ``` -------------------------------- ### Example change directory to Downloads Source: https://protonvpn.com/support/linux-openvpn Example of changing to the Downloads directory. ```bash cd ~/Downloads ``` -------------------------------- ### Install libnatpmp on RedHat/Fedora Source: https://protonvpn.com/support/port-forwarding-manual-setup Install libnatpmp on RedHat systems (including Fedora) using dnf. Required for manual port forwarding setup. ```bash sudo dnf install libnatpmp ``` -------------------------------- ### Install OpenVPN on Fedora Source: https://protonvpn.com/support/linux-openvpn Install OpenVPN using dnf on Fedora. ```bash sudo dnf install openvpn ``` -------------------------------- ### Install Pip via get-pip.py Source: https://protonvpn.com/support/port-forwarding-manual-setup Downloads the pip installer script to the current directory using curl. Run this in Terminal before installing py-natpmp. ```bash curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py ``` -------------------------------- ### Run get-pip.py to Install Pip Source: https://protonvpn.com/support/port-forwarding-manual-setup Executes the downloaded pip installer script with Python 3. This installs pip on your system. ```bash python3 get-pip.py ``` -------------------------------- ### Example connect to Proton VPN server Source: https://protonvpn.com/support/linux-openvpn Example of connecting to a Proton VPN server using a specific configuration file. ```bash sudo openvpn node-ch-02.protonvpn.net.udp.ovpn ``` -------------------------------- ### Install natpmpc on Debian/Ubuntu Source: https://protonvpn.com/support/port-forwarding-manual-setup Install natpmpc on Debian and Ubuntu-based systems using apt. Required for manual port forwarding setup. ```bash sudo apt install natpmpc ``` -------------------------------- ### Install Proton VPN GUI and CLI Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Installs both the GUI app and the CLI. Note that you cannot run both at the same time. ```bash sudo apt install proton-vpn-gnome-desktop ``` -------------------------------- ### Install OpenVPN on Arch Source: https://protonvpn.com/support/linux-openvpn Install OpenVPN using pacman on Arch (including Manjaro). ```bash sudo pacman -S openvpn ``` -------------------------------- ### Install OpenVPN on Debian/Ubuntu Source: https://protonvpn.com/support/linux-openvpn Install OpenVPN using apt on Debian and Ubuntu-based distributions. ```bash sudo apt install openvpn ``` -------------------------------- ### Install Proton VPN beta repository and refresh (Fedora) Source: https://protonvpn.com/support/official-linux-vpn-fedora Installs the downloaded beta repository RPM and refreshes the package cache. This is part of the beta installation workflow. ```bash sudo dnf install ./protonvpn-beta-release-1.0.5-1.noarch.rpm && sudo dnf check-update --refresh ``` -------------------------------- ### Install Proton VPN Beta Release Package Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Installs the downloaded beta release package and updates the package list. Requires sudo privileges. ```bash sudo dpkg -i ./protonvpn-beta-release_1.0.10_all.deb && sudo apt update ``` -------------------------------- ### Install OpenVPN support in NetworkManager on Fedora Source: https://protonvpn.com/support/linux-openvpn Install the NetworkManager-openvpn and NetworkManager-openvpn-gnome packages on Fedora using dnf. ```bash sudo dnf -y install NetworkManager-openvpn NetworkManager-openvpn-gnome ``` -------------------------------- ### Install OpenVPN support in NetworkManager on Arch Source: https://protonvpn.com/support/linux-openvpn Install the networkmanager-openvpn package on Arch using pacman. ```bash sudo pacman -S networkmanager-openvpn ``` -------------------------------- ### Install Proton VPN GUI app and CLI Source: https://protonvpn.com/support/official-linux-vpn-fedora Installs both the Linux GUI app and the Linux CLI. You cannot run the GUI app and the CLI at the same time. During installation you will be prompted to accept an OpenPGP key; press y and Enter when prompted. ```bash sudo dnf install proton-vpn-gnome-desktop ``` -------------------------------- ### Install openresolv on Fedora Source: https://protonvpn.com/support/linux-openvpn Install openresolv using dnf on Fedora. Required to properly configure DNS and prevent DNS leaks. ```bash sudo dnf install openresolv ``` -------------------------------- ### Install Proton VPN repository and update apt Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Installs the repository package and updates the package list. Do not attempt to verify the GPG signature of the release package (dpkg-sig --verify) because the release and repo are signed with different keys. ```bash sudo dpkg -i ./protonvpn-stable-release_1.0.10_all.deb && sudo apt update ``` -------------------------------- ### List AUR Python packages for Python 3.10 Source: https://protonvpn.com/support/python-updates Example using Python 3.10 as the previous version. Replace the version number with your own previous Python version. ```bash pacman -Qoq /usr/lib/python3.10 ``` -------------------------------- ### Install system tray icon dependencies on Lubuntu Source: https://protonvpn.com/support/linux-vpn-lubuntu Run this command instead of the standard Linux system tray icon step when installing Proton VPN on Lubuntu. It installs the Ayatana app indicator packages without pulling in all of GNOME. ```bash sudo apt install libayatana-appindicator3-1 gir1.2-ayatanaappindicator3-0.1 ``` -------------------------------- ### Install openresolv on Debian/Ubuntu Source: https://protonvpn.com/support/linux-openvpn Install openresolv using apt on Debian and Ubuntu-based distributions. Required to properly configure DNS and prevent DNS leaks. ```bash sudo apt install openresolv ``` -------------------------------- ### Start WireGuard with wg-quick Source: https://protonvpn.com/support/wireguard-linux Starts a WireGuard VPN session using wg-quick. Replace [the name of the configuration file, excluding the .conf suffix] with the actual config name. ```bash sudo wg-quick up [the name of the configuration file, excluding the .conf suffix] ``` -------------------------------- ### Import WireGuard config example with nmcli Source: https://protonvpn.com/support/wireguard-linux Example of importing a WireGuard configuration file named proton-238.conf using nmcli. ```bash nmcli conn import type wireguard file proton-238.conf ``` -------------------------------- ### Install openresolv on Arch Source: https://protonvpn.com/support/linux-openvpn Install openresolv using pacman on Arch (including Manjaro). Required to properly configure DNS and prevent DNS leaks. ```bash sudo pacman -S openresolv ``` -------------------------------- ### Connect to WireGuard connection example with nmcli Source: https://protonvpn.com/support/wireguard-linux Example of connecting to a WireGuard connection named proton-UK-238 using nmcli. ```bash nmcli conn up proton-UK-238 ``` -------------------------------- ### Install system tray icon dependencies (Fedora) Source: https://protonvpn.com/support/official-linux-vpn-fedora Installs the AppIndicator extension and tools needed to enable the system tray icon for the Proton VPN GUI on GNOME. Requires a restart after installation, then enable 'AppIndicator and KStatusNotifierItem Support' in the Extensions app. ```bash sudo dnf install libappindicator-gtk3 gnome-shell-extension-appindicator gnome-extensions-app ``` -------------------------------- ### Stop WireGuard with wg-quick example Source: https://protonvpn.com/support/wireguard-linux Example of ending a WireGuard VPN session with wg-quick using the configuration file swiss1-CH-5.conf. ```bash sudo wg-quick down swiss1-CH-5 ``` -------------------------------- ### Install OpenVPN support in NetworkManager on Debian/Ubuntu Source: https://protonvpn.com/support/linux-openvpn Install the network-manager-openvpn-gnome package on Debian and Ubuntu-based distributions to enable OpenVPN support in NetworkManager. ```bash sudo apt-get install network-manager-openvpn-gnome ``` -------------------------------- ### Install kernel headers for split tunneling (Debian) Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Run this command on Debian to install kernel headers for the current kernel, a prerequisite for enabling split tunneling in the GUI app. ```bash sudo apt install linux-headers-$(uname -r) ``` -------------------------------- ### Install Proton VPN repository and refresh package cache Source: https://protonvpn.com/support/official-linux-vpn-fedora Installs the Proton VPN repository containing the GUI app and CLI, then refreshes the package cache with dnf check-update. ```bash sudo dnf install ./protonvpn-stable-release-1.0.5-1.noarch.rpm && sudo dnf check-update --refresh ``` -------------------------------- ### Enable port forwarding via Linux CLI Source: https://protonvpn.com/support/port-forwarding Run this command in a terminal to enable port forwarding for the Proton VPN Linux CLI. If already connected to the VPN, reconnect for the setting to take effect. ```bash protonvpn config set port-forwarding on ``` -------------------------------- ### Download Proton VPN repository package Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Downloads the .deb package containing repository configuration and keys required to install the Proton VPN GUI app and CLI. ```bash wget https://repo.protonvpn.com/debian/dists/stable/main/binary-all/protonvpn-stable-release_1.0.10_all.deb ``` -------------------------------- ### Install py-natpmp via pip Source: https://protonvpn.com/support/port-forwarding-manual-setup Installs the py-natpmp Python package using pip. This package provides the natpmpc client script used for port forwarding. ```bash python3 -m pip install py-natpmp ``` -------------------------------- ### Download Proton VPN repository package Source: https://protonvpn.com/support/official-linux-vpn-fedora Downloads the RPM package containing the repository configuration and keys required to install the Proton VPN GUI app and CLI. Run this in a terminal window. ```bash wget "https://repo.protonvpn.com/fedora-$(cat /etc/fedora-release | cut -d' ' -f 3)-stable/protonvpn-stable-release/protonvpn-stable-release-1.0.5-1.noarch.rpm" ``` -------------------------------- ### Install Proton VPN GUI app with pacman -S proton-vpn-gtk-app Source: https://protonvpn.com/support/linux-vpn-arch Run this command in a terminal to install the Proton VPN Linux GUI app on Arch Linux. The package is maintained by a community contributor; official support is not yet available. ```bash pacman -S proton-vpn-gtk-app ``` -------------------------------- ### Enable system tray icon on Debian Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Installs the GNOME shell extension needed for system tray icons on Debian. The tray icon is only available while running the GUI app, not the CLI. ```bash sudo apt install gnome-shell-extension-appindicator gnome-shell-extension-prefs ``` -------------------------------- ### Install Proton VPN CLI with pacman -S proton-vpn-cli Source: https://protonvpn.com/support/linux-vpn-arch Run this command in a terminal to install the Proton VPN Linux CLI tool on Arch Linux. The package is maintained by a community contributor; official support is not yet available. ```bash pacman -S proton-vpn-cli ``` -------------------------------- ### Disconnect WireGuard connection example with nmcli Source: https://protonvpn.com/support/wireguard-linux Example of disconnecting a WireGuard connection named test-UK-238 using nmcli. ```bash nmcli conn down test-UK-238 ``` -------------------------------- ### Download Proton VPN beta repository RPM (Fedora) Source: https://protonvpn.com/support/official-linux-vpn-fedora Downloads the Proton VPN beta repository RPM for the current Fedora version. The command uses the Fedora release version from /etc/fedora-release. Verify the fingerprint 6929133BDE1CE1CFA9EDB286D84176F6844830D4 (correct for Fedora 44 only). ```bash wget "https://repo.protonvpn.com/fedora-$(cat /etc/fedora-release | cut -d' ' -f 3)-unstable/protonvpn-beta-release/protonvpn-beta-release-1.0.5-1.noarch.rpm" ``` -------------------------------- ### Install systemd-resolved for split tunneling (Debian) Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Install systemd-resolved on Debian as part of enabling split tunneling. After running this, restart your system for split tunneling to become available in the app settings. ```bash sudo apt install systemd-resolved ``` -------------------------------- ### Check libnatpmp version on RedHat/Fedora Source: https://protonvpn.com/support/port-forwarding-manual-setup Verify the installed libnatpmp version on RedHat systems (including Fedora). Older versions may contain the same bug as natpmpc 20150609-xxx. ```bash dnf list libnatpmp ``` -------------------------------- ### List AUR Python packages with pacman -Qoq Source: https://protonvpn.com/support/python-updates Run this command to list Python packages installed from the AUR that depend on the previous Python version. Replace x.x with the previous Python version (e.g., 3.10). ```bash pacman -Qoq /usr/lib/pythonx.x ``` -------------------------------- ### Create WireGuard interface Source: https://protonvpn.com/support/wireguard-mikrotik-routers Create a new WireGuard interface named wireguard-inet. Replace 'your private key' with the value from the PrivateKey= line in the downloaded WireGuard config file. ```routeros /interface wireguard add listen-port=13231 mtu=1420 name=wireguard-inet private-key=”your private key” ``` -------------------------------- ### Set BFE service to auto-start Source: https://protonvpn.com/support/how-to-enable-the-base-filtering-engine This command configures the base filtering engine service to start automatically. Ensure there is a space between the equals sign and 'auto'. ```cmd sc config BFE start= auto ``` -------------------------------- ### Uninstall a pip package installed as root Source: https://protonvpn.com/support/pip-pypi Use sudo when the package was installed as root. This is the same uninstall command but with elevated privileges. ```bash sudo python3 -m pip uninstall ``` -------------------------------- ### Run natpmpc Loop for Port Forwarding Source: https://protonvpn.com/support/port-forwarding-manual-setup Changes to the natpmp directory within the installed py-natpmp package and runs the natpmp_client.py script in a loop, refreshing the port mapping every 45 seconds. The loop breaks if an error occurs. Keep the Terminal window open for the script to continue working. ```bash cd "$(python3 -m pip show py-natpmp | grep Location | cut -d ' ' -f 2)/natpmp" && while true ; do date ; python3 natpmp_client.py -g 10.2.0.1 0 0 || { echo -e "ERROR with natpmpc command \a" ; break ; } ; sleep 45 ; done ``` -------------------------------- ### Delete pvpn-killswitch connection Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Example of deleting the pvpn-killswitch connection to remove the kill switch after uninstalling Proton VPN. ```bash nmcli connection delete pvpn-killswitch ``` -------------------------------- ### SSH into MikroTik router Source: https://protonvpn.com/support/wireguard-mikrotik-routers Open a command line (Terminal on Linux/macOS, PowerShell on Windows) and connect to the router using SSH. Replace the user and IP address with your own. ```bash ssh user@192.168.88.1 ``` -------------------------------- ### Traceroute to Proton VPN server Source: https://protonvpn.com/support/common-macos-issues-protonvpn Run this command in Terminal to trace the network path to Proton VPN's API server. If it does not get a response, there may be a problem with your device or network. ```bash traceroute api.protonmail.ch ``` -------------------------------- ### Check natpmpc version on Debian/Ubuntu Source: https://protonvpn.com/support/port-forwarding-manual-setup Verify the installed natpmpc version on Debian and Ubuntu-based systems. Versions 20150609-xxx contain a bug that may misinterpret VPN server responses; version 20230423-xxx and newer are fixed. ```bash apt policy natpmpc libnatpmp* ``` -------------------------------- ### Uninstall a pip package Source: https://protonvpn.com/support/pip-pypi Run this command in a terminal to uninstall a package installed with pip. Replace with the package name. Use this if the Proton VPN Linux app or other Python software breaks after a pip install. ```bash python3 -m pip uninstall ``` -------------------------------- ### Configure DNS settings Source: https://protonvpn.com/support/wireguard-mikrotik-routers Set the DNS server to 10.2.0.1 and disable peer DNS from the DHCP client to ensure DNS queries go through the VPN. ```routeros /ip dns set servers=10.2.0.1 /ip dhcp-client set 0 use-peer-dns=no ``` -------------------------------- ### List all configuration commands Source: https://protonvpn.com/support/use-linux-cli Lists all available configuration commands. ```bash protonvpn config list ``` -------------------------------- ### Ping Proton VPN server Source: https://protonvpn.com/support/common-macos-issues-protonvpn Use this command in Terminal to check basic connectivity to Proton VPN's API server. If it does not get a response, there may be a problem with your device or network. ```bash ping api.protonmail.ch ``` -------------------------------- ### Salvage and reset the WMI repository, then re-enable the service Source: https://protonvpn.com/support/fix-windows-wmi After stopping the service, run these commands to salvage and reset the WMI repository, then set the service to start automatically. Enter 'y' when prompted 'Do you want to continue this operation?' ```cmd Winmgmt /salvagerepository %windir%\System32\wbem Winmgmt /resetrepository %windir%\System32\wbem sc config winmgmt start= auto ``` -------------------------------- ### Redirect all internet traffic through WireGuard Source: https://protonvpn.com/support/wireguard-mikrotik-routers Add two routes to send all internet traffic (0.0.0.0/1 and 128.0.0.0/1) through the WireGuard gateway 10.2.0.1. ```routeros /ip route add disabled=no distance=1 dst-address=0.0.0.0/1 gateway=10.2.0.1 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10 add disabled=no distance=1 dst-address=128.0.0.0/1 gateway=10.2.0.1 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10 ``` -------------------------------- ### Add WireGuard peer Source: https://protonvpn.com/support/wireguard-mikrotik-routers Add the Proton VPN server as a peer. Replace x.x.x.x and xxxxx with the endpoint address and port from the Endpoint= line, and 'your public key' with the value from the PublicKey= line in the config file. ```routeros /interface wireguard peers add allowed-address=0.0.0.0/0 endpoint-address=x.x.x.x endpoint-port=xxxxx interface=wireguard-inet persistent-keepalive=25s public-key="your public key" ``` -------------------------------- ### Add IP address to WireGuard interface Source: https://protonvpn.com/support/wireguard-mikrotik-routers Assign the IP address 10.2.0.2/30 to the wireguard-inet interface. This address is used for the WireGuard tunnel. ```routeros /ip address add address=10.2.0.2/30 interface=wireguard-inet network=10.2.0.0 ``` -------------------------------- ### Rebuild AUR Python packages with yay Source: https://protonvpn.com/support/python-updates Rebuilds all packages found by the previous command using yay. May fail partway if some packages are incompatible with the latest Python; rebuild remaining packages individually or in small batches. ```bash yay -S $(pacman -Qoq /usr/lib/python3.10) --answerclean All ``` -------------------------------- ### Uninstall Proton VPN with dnf remove Source: https://protonvpn.com/support/official-linux-vpn-fedora Run this command in a terminal to uninstall Proton VPN on Fedora. It removes the proton-vpn-gnome-desktop package and all Proton VPN release packages matching the protonvpn-*-release pattern. ```bash sudo dnf remove proton-vpn-gnome-desktop protonvpn-*-release ``` -------------------------------- ### Enable masquerade for WireGuard interface Source: https://protonvpn.com/support/wireguard-mikrotik-routers Enable NAT masquerade for traffic leaving the wireguard-inet interface. Assumes the default MikroTik local network 192.168.88.0/24; change src-address if your local network differs. ```routeros /ip firewall nat add action=masquerade chain=srcnat out-interface=wireguard-inet src-address=192.168.88.0/24 ``` -------------------------------- ### Redirect WireGuard IP through main gateway Source: https://protonvpn.com/support/wireguard-mikrotik-routers Add a route for the WireGuard endpoint IP (replace x.x.x.x with the endpoint address from the config file) through the main internet gateway. If the gateway command fails, replace the gateway expression with your ISP-provided gateway address. ```routeros /ip route add disabled=no dst-address=x.x.x.x/32 gateway=[/ip dhcp-client get [find interface=ether1] gateway] routing-table=main suppress-hw-offload=no ``` -------------------------------- ### Disable IPv6 via Proton VPN Linux CLI Source: https://protonvpn.com/support/prevent-ipv6-vpn-leaks Run this command in a terminal to turn off IPv6 support for the Proton VPN Linux CLI. Use this if you need to disable IPv6, for example when using third-party VPN apps. ```bash protonvpn config set ipv6 off ``` -------------------------------- ### Disable QUIC connection close via ADB (adb shell device_config put tethering close_quic_connection -1) Source: https://protonvpn.com/support/android-16-critical-vulnerability Run these ADB commands to mitigate the Android 16 QUIC vulnerability that can expose your real IP address outside the VPN tunnel. The fix persists across reboots but may be undone by system updates, requiring you to repeat the steps. Requires ADB to be installed and configured. ```bash adb shell device_config put tethering close_quic_connection -1 adb reboot ``` -------------------------------- ### Connect to VPN server with OpenVPN Source: https://protonvpn.com/support/linux-openvpn Connect to a VPN server using the OpenVPN configuration file. You will be prompted for your OpenVPN username and password. ```bash sudo openvpn ``` -------------------------------- ### Show up-to-date list of CLI features Source: https://protonvpn.com/support/use-linux-cli Displays the current list of features available on the Linux CLI. ```bash protonvpn config set ``` -------------------------------- ### Create UDP and TCP port mappings with loop Source: https://protonvpn.com/support/port-forwarding-manual-setup Create UDP and TCP port mappings and loop natpmpc to keep them active. The loop runs every 45 seconds and renews the mappings for 60 seconds. Closing the terminal terminates the loop, so re-run this script each session. ```bash while true ; do date ; natpmpc -a 1 0 udp 60 -g 10.2.0.1 && natpmpc -a 1 0 tcp 60 -g 10.2.0.1 || { echo -e "ERROR with natpmpc command \a" ; break ; } ; sleep 45 ; done ``` -------------------------------- ### Set NetShield to block malware, ads, and trackers via Linux CLI Source: https://protonvpn.com/support/netshield Use the Proton VPN Linux CLI to configure NetShield to block malware, ads, and trackers. Run this command in a terminal window. ```bash protonvpn config set netshield malware-ads-trackers ``` -------------------------------- ### Check port forwarding permission Source: https://protonvpn.com/support/port-forwarding-manual-setup Verify that port forwarding is allowed on the connected server. If the test fails, select a different P2P server and ensure the VPN connection is configured correctly. ```bash natpmpc -g 10.2.0.1 ``` -------------------------------- ### Compile libnatpmp from source Source: https://protonvpn.com/support/port-forwarding-manual-setup Update natpmpc to version 20230423-xxx or newer by compiling libnatpmp from source. Use these commands if you are running an older version. ```bash git clone https://github.com/miniupnp/libnatpmp.git cd libnatpmp make all sudo make install ``` -------------------------------- ### Make DNS update script executable Source: https://protonvpn.com/support/linux-openvpn Make the downloaded DNS update script executable. ```bash sudo chmod +x "/etc/openvpn/update-resolv-conf" ``` -------------------------------- ### Download Proton VPN Beta Debian Package Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Downloads the Proton VPN beta release Debian package from the official repository. Run this in a terminal before verifying the checksum. ```bash wget https://repo.protonvpn.com/debian/dists/unstable/main/binary-all/protonvpn-beta-release_1.0.10_all.deb ``` -------------------------------- ### macOS: Check network interfaces with ifconfig Source: https://protonvpn.com/support/bittorrent-vpn Run ifconfig in Terminal before and after connecting to Proton VPN to identify the VPN interface (e.g., utun5) for binding in qBittorrent. ```bash ifconfig ``` -------------------------------- ### Verify WireGuard connection with wg Source: https://protonvpn.com/support/wireguard-linux Displays the current WireGuard interface status to verify the VPN connection is running. ```bash sudo wg ``` -------------------------------- ### Change directory to OpenVPN config location Source: https://protonvpn.com/support/linux-openvpn Change to the directory where your OpenVPN configuration file was downloaded. ```bash cd ``` -------------------------------- ### Launch Proton VPN GUI app from terminal Source: https://protonvpn.com/support/use-linux-gui Run this command in a terminal window to open the Proton VPN GUI app from your distro's app launcher or command line. ```bash protonvpn-app ``` -------------------------------- ### Connect to WireGuard connection with nmcli Source: https://protonvpn.com/support/wireguard-linux Connects to an imported WireGuard connection using nmcli. Replace [connection] with the connection name. ```bash nmcli conn up [connection] ``` -------------------------------- ### Import WireGuard config with nmcli Source: https://protonvpn.com/support/wireguard-linux Imports a WireGuard .conf file into NetworkManager. The filename should be the downloaded .conf file. Running this command automatically connects to the Proton VPN server. ```bash nmcli conn import type wireguard file [filename] ``` -------------------------------- ### Enable custom DNS with multiple addresses via Linux CLI Source: https://protonvpn.com/support/custom-dns Use this command to enable custom DNS with multiple IP addresses separated by commas. Each address after the first provides redundancy in the order listed. ```bash protonvpn config set custom-dns --dns 1.1.1.1,8,8,8,8 on ``` -------------------------------- ### Enable custom DNS via Linux CLI Source: https://protonvpn.com/support/custom-dns Run this command in a terminal to enable custom DNS with a specified IPv4 or IPv6 address. Replace the placeholder with your resolver address. ```bash protonvpn config set custom-dns --dns [Pv4 or IPv6 address of a third-party DNS resolver] on ``` -------------------------------- ### Download DNS update script Source: https://protonvpn.com/support/linux-openvpn Download the ProtonVPN DNS update script to /etc/openvpn/update-resolv-conf. Needed to ensure DNS is configured correctly. ```bash sudo wget "https://raw.githubusercontent.com/ProtonVPN/scripts/master/update-resolv-conf.sh" -O "/etc/openvpn/update-resolv-conf" ``` -------------------------------- ### Show active NetworkManager connections Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Use this command to list active connections and identify Proton VPN connections (prefix pvpn-) that need to be removed after uninstalling Proton VPN. ```bash nmcli connection show --active ``` -------------------------------- ### Identify Linux Distribution with cat /etc/*release Source: https://protonvpn.com/support/linux-vpn-setup Run this command in a terminal to identify your Linux distribution and version. Look for PRETTY_NAME for the distro name/version and ID_LIKE for parent distributions of derivatives. ```bash cat /etc/*release ``` -------------------------------- ### Set NetShield to malware-only via Linux CLI Source: https://protonvpn.com/support/netshield Use the Proton VPN Linux CLI to configure NetShield to block only malware. Run this command in a terminal window. ```bash protonvpn config set netshield malware-only ``` -------------------------------- ### Enable VPN Accelerator via Linux CLI Source: https://protonvpn.com/support/how-to-use-vpn-accelerator Run this command in a terminal to turn on VPN Accelerator in the Proton VPN Linux CLI app. ```bash protonvpn config set vpn-accelerator on ``` -------------------------------- ### Verify Proton VPN Beta Package Checksum Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Verifies the SHA256 checksum of the downloaded package to ensure its integrity. The expected hash is c8986b908898d06f9bdd3660718f1087282409a62c8d9059f67fc78b263bc6fb. ```bash echo "c8986b908898d06f9bdd3660718f1087282409a62c8d9059f67fc78b263bc6fb protonvpn-beta-release_1.0.10_all.deb" | sha256sum --check ``` -------------------------------- ### Connect to fastest VPN server Source: https://protonvpn.com/support/use-linux-cli Connects to the fastest VPN server available on your plan. ```bash protonvpn connect ``` -------------------------------- ### Verify repository package checksum Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Optional integrity check of the downloaded package using sha256sum. The expected checksum is provided in the command. ```bash echo "c8a9fffb4ebdd63db08ce7f11c9b0ac394064ae6a210feb9ab63a0f7d8d060a7 protonvpn-stable-release_1.0.10_all.deb" | sha256sum --check - ``` -------------------------------- ### Open sysctl.conf with nano Source: https://protonvpn.com/support/disable-ipv6-protocol-linux Opens the /etc/sysctl.conf file in the nano text editor to edit kernel parameters. Requires sudo privileges. ```bash sudo nano /etc/sysctl.conf ``` -------------------------------- ### Run psexec to open system-level command prompt Source: https://protonvpn.com/support/how-to-enable-the-base-filtering-engine Execute this command inside the PsTools folder to run a command prompt with system privileges. ```cmd psexec -s cmd.exe ``` -------------------------------- ### Connect to a specific server Source: https://protonvpn.com/support/use-linux-cli Connects to a specific server by name. Server names are not case sensitive. ```bash protonvpn connect [server name] ``` ```bash protonvpn connect CH#242 ``` -------------------------------- ### Enumerate drivers with pnputil Source: https://protonvpn.com/support/uninstall-icps Creates a drivers.txt file listing all drivers, used to find ICPS-related entries. ```powershell pnputil /enum-drivers > drivers.txt ``` -------------------------------- ### Custom configuration lines for FreshTomato OpenVPN client Source: https://protonvpn.com/support/vpn-freshtomato-router Add these lines to the Custom configuration field in the Advanced tab of the OpenVPN Client settings. They set remote-random, nobind, tun-mtu 1500, mssfix 0, persist-key, and persist-tun. ```plaintext remote-random nobind tun-mtu 1500 mssfix 0 persist-key persist-tun ``` -------------------------------- ### Navigate to PsTools folder in Command Prompt Source: https://protonvpn.com/support/how-to-enable-the-base-filtering-engine Use this command to change the directory to the extracted PsTools folder on your desktop. Replace [user] with your Windows username. ```cmd cd C:\Users\[user]\Desktop\PSTools ``` -------------------------------- ### Stop WireGuard with wg-quick Source: https://protonvpn.com/support/wireguard-linux Ends a WireGuard VPN session using wg-quick. Replace [the name of the configuration file, excluding the .conf suffix] with the actual config name. ```bash sudo wg-quick down [the name of the configuration file, excluding the .conf suffix] ``` -------------------------------- ### Kill switch for all devices (iptables firewall script) Source: https://protonvpn.com/support/vpn-freshtomato-router Enter these lines in Administration → Scripts → Firewall to block all devices connected to the router from reaching the internet when the VPN connection fails. The script uses the WAN interface from nvram and rejects forwarded traffic with ICMP, TCP reset, and UDP reset responses. ```bash WAN_IF=`nvram get wan_iface` iptables -I FORWARD -i br0 -o $WAN_IF -j REJECT --reject-with icmp-host-prohibited iptables -I FORWARD -i br0 -p tcp -o $WAN_IF -j REJECT --reject-with tcp-reset iptables -I FORWARD -i br0 -p udp -o $WAN_IF -j REJECT --reject-with udp-reset ``` -------------------------------- ### Sign in to Proton VPN CLI Source: https://protonvpn.com/support/use-linux-cli Run this command to sign in. You will be prompted to enter your Proton password; no on-screen feedback is shown while typing. ```bash protonvpn signin [username] ``` -------------------------------- ### Uninstall Proton VPN Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Removes the Proton VPN GUI app and purges the beta release packages. Use this to completely uninstall Proton VPN from your system. ```bash sudo apt autoremove proton-vpn-gnome-desktop && sudo apt purge protonvpn-*-release ``` -------------------------------- ### Connect to a specific city Source: https://protonvpn.com/support/use-linux-cli Connects to a VPN server in a specific city. Use a single-word city name or quotes for multi-word names. ```bash protonvpn connect --city [City] ``` ```bash protonvpn connect --city miami ``` ```bash protonvpn connect --city "New York" ``` -------------------------------- ### Configure advanced VPN settings Source: https://protonvpn.com/support/use-linux-cli Sets a configuration option. Most options have one setting; all settings reset to default on sign out. ```bash protonvpn config set [option] [setting][setting 2] ``` -------------------------------- ### Enable standard kill switch via Linux CLI Source: https://protonvpn.com/support/what-is-kill-switch Run this command in a terminal to enable the standard kill switch on the Linux CLI. This is the default kill switch type. ```bash protonvpn config set kill-switch standard ``` -------------------------------- ### Turn off NetShield via Linux CLI Source: https://protonvpn.com/support/netshield Use the Proton VPN Linux CLI to disable NetShield. Run this command in a terminal window. ```bash protonvpn config set netshield off ``` -------------------------------- ### Kill switch for specific IP addresses (iptables firewall script) Source: https://protonvpn.com/support/vpn-freshtomato-router Enter these lines in Administration → Scripts → Firewall to block only devices with the specified IP addresses from reaching the internet when the VPN connection fails. Replace `ip address` with the actual IP addresses of the devices you want to restrict. The script uses the WAN interface from nvram and rejects forwarded traffic with ICMP, TCP reset, and UDP reset responses. ```bash WAN_IF=`nvram get wan_iface` iptables -I FORWARD -i br0 -s `ip address` -o $WAN_IF -j REJECT --reject-with icmp-host-prohibited iptables -I FORWARD -i br0 -s `ip address` -p tcp -o $WAN_IF -j REJECT --reject-with tcp-reset iptables -I FORWARD -i br0 -s `ip address` -p udp -o $WAN_IF -j REJECT --reject-with udp-reset ``` -------------------------------- ### Connect to a specific country Source: https://protonvpn.com/support/use-linux-cli Connects to a VPN server in a specific country. Use a country code (e.g., US) or full name in quotes (e.g., "United States"). ```bash protonvpn connect --country [Country] ``` ```bash protonvpn connect --country US ``` ```bash protonvpn connect --country "United States" ``` -------------------------------- ### Flush DNS on Windows with ipconfig /flushdns Source: https://protonvpn.com/blog/how-to-flush-dns Run this command in the Windows command prompt to flush the DNS cache. Open the Run box with Windows + R, type 'cmd', and hit Enter to open the command prompt. ```command ipconfig /flushdns ``` -------------------------------- ### Run tcpdump packet capture on Windows Source: https://protonvpn.com/support/packet-capture Use this command in Command Prompt or PowerShell (run as Administrator) to capture packets to a file. Replace with the interface name (e.g., eth0, wlan0, en0). Press Ctrl+C to stop the capture; the capture.pcap file is saved to the current directory. ```bash tcpdump -i -w capture.pcap ``` -------------------------------- ### Enable anonymous crash reports Source: https://protonvpn.com/support/use-linux-cli Enables sending anonymous crash reports to Proton VPN to help fix bugs and improve software. ```bash protonvpn config set anonymous-crash-reports on ``` -------------------------------- ### Sign out of Proton VPN CLI Source: https://protonvpn.com/support/use-linux-cli Signs out of your Proton VPN account. Recommended if other people use the computer. ```bash protonvpn signout ``` -------------------------------- ### Apply sysctl changes Source: https://protonvpn.com/support/disable-ipv6-protocol-linux Reloads the sysctl configuration to apply the IPv6 disable setting immediately. Run after saving the file. ```bash sudo sysctl -p ``` -------------------------------- ### Flush DNS on Linux for NCSD, Dnsmasq, and BIND Source: https://protonvpn.com/blog/how-to-flush-dns Use the appropriate command for your DNS management application. Each command restarts the respective service to clear its cache. ```command sudo /etc/init.d/nscd restart ``` ```command sudo /etc/init.d/dnsmasq restart ``` ```command sudo /etc/init.d/named restart ``` -------------------------------- ### Delete a NetworkManager connection Source: https://protonvpn.com/support/linux-vpn-debian-ubuntu Use this command to delete a specific connection, replacing [connection name] with the actual name (e.g., pvpn-killswitch). ```bash nmcli connection delete [connection name] ``` -------------------------------- ### Enable IPv6 via Proton VPN Linux CLI Source: https://protonvpn.com/support/prevent-ipv6-vpn-leaks Run this command in a terminal to turn on IPv6 support for the Proton VPN Linux CLI. IPv6 support is enabled by default on Linux apps, so this is only needed if you previously disabled it. ```bash protonvpn config set ipv6 on ``` -------------------------------- ### Flush DNS on macOS by version Source: https://protonvpn.com/blog/how-to-flush-dns Use the command matching your macOS version. Commands for Tiger through Sequoia are listed; some require sudo and may need your password. ```command lookupd -flushcache ``` ```command sudo lookupd -flushcache ``` ```command sudo dscacheutil -flushcache ``` ```command sudo killall -HUP mDNSResponder ``` ```command sudo discoveryutil mdnsflushcache ``` ```command sudo killall -HUP mDNSResponder ``` ```command sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder ``` -------------------------------- ### Disable custom DNS via Linux CLI Source: https://protonvpn.com/support/custom-dns Run this command to turn off custom DNS. ```bash protonvpn config set custom-dns off ``` -------------------------------- ### Set system time on Linux with sudo date -s Source: https://protonvpn.com/support/vpn-connection-problems Use this command in a terminal to correct your system time on Linux, which may be required if an incorrect time causes SSL certificate rejection and prevents Proton VPN sign-in. Replace the placeholder with the actual date and time in the format YYYY-MM-DD HH:MM:SS. ```bash sudo date -s “YYYY-MM-DD HH:MM:SS” ``` ```bash sudo date -s “2024-03-22 18:59:59” ``` -------------------------------- ### Run tcpdump packet capture on macOS and Linux Source: https://protonvpn.com/support/packet-capture Use this command in a terminal to capture packets to a file. Requires sudo. Replace with the interface name (e.g., eth0, wlan0, en0). Press Ctrl+C to stop the capture; the capture.pcap file is saved to the current directory. ```bash sudo tcpdump -i -w capture.pcap ``` -------------------------------- ### Verify ICPS removal with netsh Source: https://protonvpn.com/support/uninstall-icps Creates a filters.xml file to check for remaining ICPS-related entries. ```powershell netsh wfp show filters ``` -------------------------------- ### Flush DNS on Ubuntu with sudo systemd-resolve --flush-caches Source: https://protonvpn.com/blog/how-to-flush-dns Use this command on Ubuntu to flush the DNS cache. Note that the command uses a double dash before 'flush-caches'. ```command sudo systemd-resolve –flush-caches ``` -------------------------------- ### Disconnect WireGuard connection with nmcli Source: https://protonvpn.com/support/wireguard-linux Disconnects a WireGuard connection using nmcli. Replace [connection] with the connection name. ```bash nmcli conn down [connection] ``` -------------------------------- ### Disable VPN Accelerator via Linux CLI Source: https://protonvpn.com/support/how-to-use-vpn-accelerator Run this command in a terminal to turn off VPN Accelerator in the Proton VPN Linux CLI app. ```bash protonvpn config set vpn-accelerator off ``` -------------------------------- ### Flush DNS cache commands in Windows PowerShell Source: https://protonvpn.com/support/rpc-server-unavailable Run these commands in Windows PowerShell as administrator to flush the DNS cache and renew the IP address. Type each command and press Enter after each one, then exit PowerShell and try connecting to Proton VPN. ```powershell ipconfig /flushsdns ``` ```powershell ipconfig /renew ``` ```powershell exit ``` -------------------------------- ### Check DNS caching on Linux with systemctl is-active systemd-resolved Source: https://protonvpn.com/blog/how-to-flush-dns Run this command to check whether your Linux system is caching DNS queries. If the output is 'active', DNS caching is happening. ```command systemctl is-active systemd-resolved ``` -------------------------------- ### Disconnect VPN Source: https://protonvpn.com/support/use-linux-cli Disconnects the VPN. You remain signed in to your Proton VPN account. ```bash protonvpn disconnect ``` -------------------------------- ### Disable kill switch via Linux CLI Source: https://protonvpn.com/support/what-is-kill-switch Run this command in a terminal to turn off the kill switch on the Linux CLI. ```bash protonvpn config set kill-switch off ``` -------------------------------- ### Disable and stop the Windows Management Instrumentation service Source: https://protonvpn.com/support/fix-windows-wmi Run these commands in an Administrator Command Prompt to disable and stop the winmgmt service before repairing the WMI repository. Press Enter after each line. ```cmd sc config winmgmt start= disabled net stop winmgmt ``` -------------------------------- ### Delete ICPS drivers with pnputil Source: https://protonvpn.com/support/uninstall-icps Run for each driver entry found in drivers.txt, replacing oem[number].inf with the Published Name. ```powershell pnputil /delete-driver oem[number].inf /uninstall /force. ``` -------------------------------- ### Enable moderate NAT via Linux CLI Source: https://protonvpn.com/support/moderate-nat Run this command in a terminal to enable moderate NAT on the Proton VPN Linux CLI. This setting is useful for online gaming and peer-to-peer connections, but it slightly reduces privacy and cannot be used together with port forwarding. ```bash protonvpn config set moderate-nat on ``` -------------------------------- ### Disable anonymous crash reports Source: https://protonvpn.com/support/use-linux-cli Disables sending anonymous crash reports to Proton VPN. ```bash protonvpn config set anonymous-crash-reports off ``` -------------------------------- ### Delete ICPS services with sc Source: https://protonvpn.com/support/uninstall-icps Stops and deletes the Intel Dynamic Bandwidth Management and IntelConnect Service services. ```powershell sc stop IDBWM && sc delete IDBWM && sc stop IntelConnectService && sc delete IntelConnectService ``` -------------------------------- ### Disable IPv6 on Wi-Fi using networksetup Source: https://protonvpn.com/support/how-to-disable-ipv6-protocol-on-macos Use this Terminal command on older macOS versions to disable IPv6 on your Wi-Fi connection. Run it in Terminal after opening it from Launchpad. ```bash networksetup -setv6off Wi-Fi ``` -------------------------------- ### Remove ICPS packages with PowerShell Source: https://protonvpn.com/support/uninstall-icps Run in an elevated PowerShell to remove all remaining Intel Connectivity Performance Suite packages. ```powershell Get-AppxPackage -AllUsers *IntelConnectivityPerformanceSuite* | Remove-AppxPackage -AllUsers ``` -------------------------------- ### Disable IPv6 in sysctl.conf Source: https://protonvpn.com/support/disable-ipv6-protocol-linux Add this line to the bottom of /etc/sysctl.conf to disable IPv6 for all interfaces. Save the file after adding it. ```plaintext net.ipv6.conf.all.disable_ipv6 = 1 ``` -------------------------------- ### Disable IPv6 on Ethernet using networksetup Source: https://protonvpn.com/support/how-to-disable-ipv6-protocol-on-macos Use this Terminal command on older macOS versions to disable IPv6 on your Ethernet (wired) connection. Run it in Terminal after opening it from Launchpad. ```bash networksetup -setv6off Ethernet ``` -------------------------------- ### Disable moderate NAT via Linux CLI Source: https://protonvpn.com/support/moderate-nat Run this command in a terminal to disable moderate NAT on the Proton VPN Linux CLI. This restores strict NAT, which is the default and more privacy-preserving option. ```bash protonvpn config set moderate-nat off ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.