All Projects → dagrha → Pypia

dagrha / Pypia

Licence: gpl-3.0
Configuration of Private Internet Access VPN routes for Linux

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pypia

Android App
Official ProtonVPN Android app
Stars: ✭ 547 (+619.74%)
Mutual labels:  openvpn
Netkiller.github.io
Netkiller Free ebook - 免费电子书
Stars: ✭ 861 (+1032.89%)
Mutual labels:  openvpn
Softethervpn
Cross-platform multi-protocol VPN software. Pull requests are welcome. The stable version is available at https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.
Stars: ✭ 8,531 (+11125%)
Mutual labels:  openvpn
Openvpn Install
Set up your own OpenVPN server on Debian, Ubuntu, Fedora, CentOS or Arch Linux.
Stars: ✭ 7,142 (+9297.37%)
Mutual labels:  openvpn
Vpnserver ynh
OpenVPN package for YunoHost
Stars: ✭ 17 (-77.63%)
Mutual labels:  openvpn
Lethean Vpn
Lethean Virtual Private Network (VPN)
Stars: ✭ 29 (-61.84%)
Mutual labels:  openvpn
Openpyn Nordvpn
Easily connect to and switch between, OpenVPN servers hosted by NordVPN on Linux (+patch leakes)
Stars: ✭ 544 (+615.79%)
Mutual labels:  openvpn
Tunnelblickctl
🔒 Command-line interface for Tunnelblick
Stars: ✭ 64 (-15.79%)
Mutual labels:  openvpn
Cloak
A censorship circumvention tool to evade detection against state adversaries
Stars: ✭ 942 (+1139.47%)
Mutual labels:  openvpn
Linux Cli
Linux command-line client for ProtonVPN. Written in Python.
Stars: ✭ 1,047 (+1277.63%)
Mutual labels:  openvpn
Openvpn Admin
Install and administrate OpenVPN with a web interface (logs visualisations, users managing...)
Stars: ✭ 795 (+946.05%)
Mutual labels:  openvpn
Openvpn
Stars: ✭ 5 (-93.42%)
Mutual labels:  openvpn
Docker Openvpn Client
OpenVPN Client for Docker
Stars: ✭ 30 (-60.53%)
Mutual labels:  openvpn
Openvpn Monitor
openvpn-monitor is a web based OpenVPN monitor, that shows current connection information, such as users, location and data transferred.
Stars: ✭ 636 (+736.84%)
Mutual labels:  openvpn
Obfs4proxy Openvpn Linux
Obfuscating OpenVPN traffic using obfs4proxy - Linux platform
Stars: ✭ 57 (-25%)
Mutual labels:  openvpn
Streisand
Streisand sets up a new server running your choice of WireGuard, OpenConnect, OpenSSH, OpenVPN, Shadowsocks, sslh, Stunnel, or a Tor bridge. It also generates custom instructions for all of these services. At the end of the run you are given an HTML file with instructions that can be shared with friends, family members, and fellow activists.
Stars: ✭ 22,605 (+29643.42%)
Mutual labels:  openvpn
Openvpn Bosh Release
A BOSH release to help manage an OpenVPN network.
Stars: ✭ 13 (-82.89%)
Mutual labels:  openvpn
Pi Hole Pivpn On Google Compute Engine Free Tier With Full Tunnel And Split Tunnel Openvpn Configs
Run your own privacy-first ad blocking service in the cloud for free on Google Cloud Services.
Stars: ✭ 1,141 (+1401.32%)
Mutual labels:  openvpn
Vpn At Home
1-click, self-hosted deployment of OpenVPN with DNS ad blocking sinkhole
Stars: ✭ 1,106 (+1355.26%)
Mutual labels:  openvpn
Openvpn Cms Flask
一套关于openvpn服务的后台管理系统,通过前后端分离的方式设计,便于用户通过web端进行增删用户,并查询用户的使用时间和地理位置等信息。
Stars: ✭ 40 (-47.37%)
Mutual labels:  openvpn

Private Internet Access OpenVPN configuration package for various Linux distributions

Private Internet Access (PIA) provides high quality and inexpensive VPN services, but installing VPN routes on linux can be tedious or require the installation of third party applets. The purpose of this repository is to host and maintain a configuration package that will automatically populate NetworkManager keyfiles for use with PIA OpenVPN service on various Linux distributions and to avoid the installation of any third party applets.

Quickstart

Install with pip install pypia

On first run, start with pypia -i.

Currently supported distributions

The pypia package has been designed to automatically detect your operating system. Currently the supported distros are:

  • Fedora
  • Manjaro
  • Ubuntu (various flavors, e.g. Lubuntu, should also work)
  • Elementary OS
  • Antergos
  • Linuxmint
  • openSUSE
  • Kali
  • Arch
  • Solus
  • CentOS

*For other distros, please see note at end of this README

Requirements

  • System

    • Python 3. This script is written in Python 3. Python 2 is not supported.
    • network manager
    • openvpn
      The script installs the network-manager-openvpn package (name of package may be different depending on your distribution).
  • General

    • PIA subscription (which is a pay service).

Other information

PIA certificate, which is automatically downloaded by the script, is provided by PIA here. Route/VPN server information is downloaded from this page.

Installation

  1. You can use pip to install this module: pip install pypia Note: in some distros pip points to python2. In those distros, it may be required to use pip3 or python3 -m pip instead of plain pip. In some cases, pip installs packages to a user path. It may be required to add PATH=$PATH:~/.local/bin to your ~/.bashrc file to be able to invoke pypia directly from the command line.
  2. Once installed via pip, you should do pypia -i to initialize, which will configure the NetworkManager keyfiles. Root permissions are required to install dependencies via the package manager and to write the VPN config files to /etc/NetworkManager/system-connections/, so you will be prompted to enter the root password.
    If you can't or don't want to use pip, alternatively you can clone this repository and run python3 pypia/pypia.py -i to configure the keyfiles.
  3. At some point in the installation process you will be prompted for your PIA-issued user ID (typically starts with a "p" and is followed by a bunch of numbers). You will also be prompted for your password, which is simply saved to the config files (in plain text, but only root user can view/edit those files).

If everything goes as intended, the VPN routes will be accessible from the VPN Connections menu in the NetworkManager applet or via the nmcli command line tool.

Other features
usage: pypia [-h] [-i] [-p] [-s] [-r {us,all,int}] [-f] [-d]

optional arguments:
  -h, --help            show this help message and exit
  -i, --initialize      configure pia vpn routes as networkmanager keyfiles.
                        requires sudo priveleges. use this flag on first run
                        and anytime you want to refresh pia vpn routes
  -p, --ping            ping each vpn server and list latencies
  -s, --shuffle         connect to or shuffle a random vpn
  -r {us,all,int}, --region {us,all,int}
                        "us" for US only, "int" for non-US, "all" for
                        worldwide
  -f, --fastest         connect to network with lowest ping latency
  -d, --disconnect      disconnect current PIA vpn connection

Contributions

If your distribution of choice is not currently listed as supported, please take a minute to help me add support! To add it, I'll need to know:

  1. The specific name of the network-manager-openvpn package in your particular package manager. Usually searching the package database for "openvpn" is enough to find it.
  2. The install command for your package manager (e.g. apt install or dnf install, etc.)
  3. At a python (3+) prompt, enter the following commands and let me know what the string returned from the get_distro() function is:
import subprocess
def get_distro():
    os_release = subprocess.check_output(['cat', '/etc/os-release']).decode('utf-8').splitlines()
    os_dict = {i.split('=')[0]: i.split('=')[1].strip('"') for i in os_release if '=' in i}
    distro = os_dict['ID'].lower()
    return distro
get_distro()

With that information, I can update the package_info.json file to include your distro. Or feel free to submit a pull request.

License

The python code in this project is distributed under GPLv3.

If you want to sign up for PIA, feel free to use my affiliate link. If you'd rather not use that link, no worries! This is free software that I hope you continue to use and enjoy.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].