diff options
author | Conor Anderson | 2019-01-28 21:17:11 -0500 |
---|---|---|
committer | Conor Anderson | 2019-01-28 21:17:11 -0500 |
commit | 3f60ad638ba9c7c683bb2a8ef2ff8d0dbcd8c4f4 (patch) | |
tree | cc23dc0314fb44d03e5bfe75ceb12977bc85878e | |
parent | eff4279178e901e04c93f0c586499d537dc621f6 (diff) | |
download | aur-3f60ad638ba9c7c683bb2a8ef2ff8d0dbcd8c4f4.tar.gz |
Fixes and some futureproofing
-rw-r--r-- | .SRCINFO | 7 | ||||
-rw-r--r-- | PKGBUILD | 19 | ||||
-rwxr-xr-x[-rw-r--r--] | purevpn | 187 | ||||
-rw-r--r-- | vpn-list.csv | 169 |
4 files changed, 135 insertions, 247 deletions
@@ -1,11 +1,12 @@ pkgbase = purevpn-networkmanager pkgdesc = A script to generate template-based PureVPN configuration files for NetworkManager - pkgver = 2019.01.07 + pkgver = 2019.01.28 pkgrel = 1 url = https://www.purevpn.com/ install = purevpn-networkmanager.install arch = any license = GPL + makedepends = curl depends = bash optdepends = networkmanager-openvpn: for the OpenVPN protocol optdepends = networkmanager-pptp: for the PPTP protocol @@ -15,12 +16,10 @@ pkgbase = purevpn-networkmanager source = template-ovpn source = template-pptp source = purevpn - source = vpn-list.csv sha256sums = 0c2fecda247c34003468d35b74438443b47fef0e4debdfa7cb1a6a88d2e93bb9 sha256sums = 336a901c88e406c05f1ec6d192bf7461145299b3c631eb203cebdc94b63c26d6 sha256sums = eb63f1730a807726e906d6c2e2362ee402f39d3b554bea225d0303a33b19ea58 - sha256sums = 8de488f0d3de21711afa19f3a2d61c5405d4c6104363d5c7b6516eb892e66dd8 - sha256sums = 1c8de4640f8f358aaa8df53660516e155f29c1a42fde1f2f7f226b775e77e463 + sha256sums = e647fee6c5600f05d5f90329f63dbd788df0771c3d92973bd10e87d872c62730 pkgname = purevpn-networkmanager @@ -1,6 +1,6 @@ # Maintainer: Conor Anderson <conor@conr.ca> pkgname=purevpn-networkmanager -pkgver=2019.01.07 +pkgver=2019.01.28 pkgrel=1 pkgdesc='A script to generate template-based PureVPN configuration files for NetworkManager' arch=('any') @@ -9,17 +9,16 @@ license=('GPL') depends=('bash') optdepends=("networkmanager-openvpn: for the OpenVPN protocol" "networkmanager-pptp: for the PPTP protocol") +makedepends=("curl") replaces=('purevpn-openvpn') source=("linux-files.zip::https://s3-us-west-1.amazonaws.com/heartbleed/linux/linux-files.zip" "template-ovpn" "template-pptp" - "purevpn" - "vpn-list.csv") + "purevpn") sha256sums=('0c2fecda247c34003468d35b74438443b47fef0e4debdfa7cb1a6a88d2e93bb9' '336a901c88e406c05f1ec6d192bf7461145299b3c631eb203cebdc94b63c26d6' 'eb63f1730a807726e906d6c2e2362ee402f39d3b554bea225d0303a33b19ea58' - '8de488f0d3de21711afa19f3a2d61c5405d4c6104363d5c7b6516eb892e66dd8' - '1c8de4640f8f358aaa8df53660516e155f29c1a42fde1f2f7f226b775e77e463') + 'e647fee6c5600f05d5f90329f63dbd788df0771c3d92973bd10e87d872c62730') noextract=("linux-files.zip") install="${pkgname}".install @@ -28,6 +27,16 @@ prepare() { msg2 "Extracting Certifications..." bsdtar -xf linux-files.zip -s'|[^/]*/||' "*.key" "*.crt" + + msg2 "Getting latest list of VPN servers..." + + ## Lots of credit to: https://stackoverflow.com/a/10189130/6047155 + curl "https://support.purevpn.com/vpn-servers" 2>/dev/null | \ + grep -i -e '</\?TABLE\|</\?TD\|</\?TR\|</\?TH' | \ + sed 's/^[\ \t]*//g' | tr -d '\n' | \ + sed 's/<\/TR[^>]*>/\n/Ig;s/<\/\?\(TABLE\|TR\)[^>]*>//Ig' | \ + sed 's/^<T[DH][^>]*>\|<\/\?T[DH][^>]*>$//Ig;s/<\/T[DH][^>]*><T[DH][^>]*>/\t/Ig' | \ + sed 's/<[^<>]*>//g;s/\s*\t\s*/\t/g;1d' > vpn-list.tsv } package() { diff --git a/purevpn b/purevpn index 2d54aed5cfe7..9e52d883193a 100644..100755 --- a/purevpn +++ b/purevpn @@ -5,73 +5,94 @@ normal=$(tput sgr0) if [ "$EUID" -ne 0 ] then - echo "This script must be run as root." + printf "This script must be run as root.\n" exit 1 fi +if [ ! -d "$DIRECTORY" ]; then mkdir -p /etc/purevpn; fi +if [ ! -f /etc/purevpn/vpn-list.tsv ]; then ln -s /usr/lib/purevpn/vpn-list.tsv /etc/purevpn/; fi + usage() { cat <<EOF usage: ${0##*/} [OPTION] Options: - -h Print this help message - -l List the available cities files + -h Print this help message and exit + -l List the available cities files and exit -c [city] Choose a city for which to install the OpenVPN config - (NOTE: just use the city name, the part that is ${bold}bold - ${normal}when you run "purevpn -l") + This option can be used multiple times. e.g. -c Lima -c New\ York + (NOTE: just use the city name, the part that is ${bold}bold or + coloured${normal} (if supported) when you run "purevpn -l") -t [protocol] Choose the protocol to install (either "pptp" or "ovpn") - -u [username] Set the username - -p [password] Set the password - -x Purge all the PureVPN files in /etc/NetworkManager + This option can be used multiple times. e.g. -t pptp -t ovpn + -u [username] Set the username in all PureVPN files in /etc/NetworkManager + -p [password] Set the password in all PureVPN files in /etc/NetworkManager + -x Purge all the PureVPN files in /etc/NetworkManager and exit + -z Attempt to update the VPN server list from + https://support.purevpn.com/vpn-servers and exit If 'OPTION' is unspecified, ${0##*/} will not make any changes. EOF } -list() { +updlist() { + printf "==> Updating the list of VPN servers from https://support.purevpn.com/vpn-servers\n" + rm -v /etc/purevpn/vpn-list.tsv + + ## Lots of credit to: https://stackoverflow.com/a/10189130/6047155 + curl "https://support.purevpn.com/vpn-servers" 2>/dev/null | \ + grep -i -e '</\?TABLE\|</\?TD\|</\?TR\|</\?TH' | \ + sed 's/^[\ \t]*//g' | tr -d '\n' | \ + sed 's/<\/TR[^>]*>/\n/Ig;s/<\/\?\(TABLE\|TR\)[^>]*>//Ig' | \ + sed 's/^<T[DH][^>]*>\|<\/\?T[DH][^>]*>$//Ig;s/<\/T[DH][^>]*><T[DH][^>]*>/\t/Ig' | \ + sed 's/<[^<>]*>//g;s/\s*\t\s*/\t/g;1d' > /etc/purevpn/vpn-list.tsv + printf "==> New server list contains $(wc -l < /etc/purevpn/vpn-list.tsv) lines.\n" +} - echo "==> The following VPN locations are available" - while IFS=, read region country city pptp udp tcp +list() { + printf "==> The following VPN locations are available\n" + while IFS=$'\t' read region country city pptp udp tcp do - echo "$region/$country, ${bold}$city${normal}" - done < /usr/lib/purevpn/vpn-list.csv + echo "$region/$country, ${bold}\""$city\""${normal}" + done < /etc/purevpn/vpn-list.tsv } get_pptp_url() { - while IFS=, read region country city pptp udp tcp + while IFS=$'\t' read region country city pptp udp tcp do if [ "${city}" == "${config}" ]; then - echo "$pptp" + printf "$pptp" fi - done < /usr/lib/purevpn/vpn-list.csv + done < /etc/purevpn/vpn-list.tsv } get_tcp_url() { - while IFS=, read region country city pptp udp tcp + while IFS=$'\t' read region country city pptp udp tcp do if [ "${city}" == "${config}" ]; then - echo "$tcp" + printf "$tcp" fi - done < /usr/lib/purevpn/vpn-list.csv + done < /etc/purevpn/vpn-list.tsv } get_upd_url() { - while IFS=, read region country city pptp udp tcp + while IFS=$'\t' read region country city pptp udp tcp do if [ "${city}" == "${config}" ]; then - echo "$udp" + printf "$udp" fi - done < /usr/lib/purevpn/vpn-list.csv + done < /etc/purevpn/vpn-list.tsv } process_ovpn() { - echo "Creating OpenVPN config for $config" + printf "Creating OpenVPN config for $config\n" + cleanconfig=$(echo $config | tr -d '[:punct:]|[:space:]') mkdir -p /tmp/purevpn for proto in TCP UDP do - filename=$(echo "${config}-${proto}" | tr '[:lower:]' '[:upper:]') - cp "/usr/lib/purevpn/template-ovpn" "/tmp/purevpn/${filename}-PUREVPN" + filename=$(printf "PureVPN-${cleanconfig}-${proto}") + cp "/usr/lib/purevpn/template-ovpn" "/tmp/purevpn/${filename}" if [ "$proto" == "UDP" ] then host=$(get_upd_url) @@ -80,41 +101,42 @@ process_ovpn() { then host=$(get_tcp_url) port=80 - sed -i '/port=/a \proto-tcp=yes' "/tmp/purevpn/${filename}-PUREVPN" + sed -i '/port=/a \proto-tcp=yes' "/tmp/purevpn/${filename}" fi if [[ $host == "" ]]; then - echo "Looks like there is no host for this city and protocol." + printf "Looks like there is no host for this city and protocol.\n" exit 1 fi - sed -i "s/\bid=/&${filename}/" "/tmp/purevpn/${filename}-PUREVPN" #id - sed -i "s/\buuid=/&$(uuidgen)/" "/tmp/purevpn/${filename}-PUREVPN" #uuid - sed -i "s/\bport=/&${port}/" "/tmp/purevpn/${filename}-PUREVPN" #port - sed -i "s/\bremote=/&$host:${port}/" "/tmp/purevpn/${filename}-PUREVPN" #host - chmod 600 "/tmp/purevpn/${filename}-PUREVPN" #permissions - mv "/tmp/purevpn/${filename}-PUREVPN" /etc/NetworkManager/system-connections + sed -i "s/\bid=/&${filename}/" "/tmp/purevpn/${filename}" #id + sed -i "s/\buuid=/&$(uuidgen)/" "/tmp/purevpn/${filename}" #uuid + sed -i "s/\bport=/&${port}/" "/tmp/purevpn/${filename}" #port + sed -i "s/\bremote=/&$host:${port}/" "/tmp/purevpn/${filename}" #host + chmod 600 "/tmp/purevpn/${filename}" #permissions + mv "/tmp/purevpn/${filename}" /etc/NetworkManager/system-connections done } process_pptp() { - echo "Creating PPTP config for $config" + printf "Creating PPTP config for $config\n" mkdir -p /tmp/purevpn - filename=$(echo "${config}-PPTP" | tr '[:lower:]' '[:upper:]') - cp "/usr/lib/purevpn/template-pptp" "/tmp/purevpn/${filename}-PUREVPN" + cleanconfig=$(echo $config | tr -d '[:punct:]|[:space:]') + filename=$(printf "PureVPN-${cleanconfig}-PPTP") + cp "/usr/lib/purevpn/template-pptp" "/tmp/purevpn/${filename}" host=$(get_pptp_url) if [[ $host == "" ]]; then - echo "Looks like there is no host for this city and protocol." + printf "Looks like there is no host for this city and protocol.\n" exit 1 fi - sed -i "s/\bid=/&${filename}/" "/tmp/purevpn/${filename}-PUREVPN" #id - sed -i "s/\buuid=/&$(uuidgen)/" "/tmp/purevpn/${filename}-PUREVPN" #uuid - sed -i "s/\bgateway=/&$host/" "/tmp/purevpn/${filename}-PUREVPN" #host - chmod 600 "/tmp/purevpn/${filename}-PUREVPN" #permissions - mv "/tmp/purevpn/${filename}-PUREVPN" /etc/NetworkManager/system-connections + sed -i "s/\bid=/&${filename}/" "/tmp/purevpn/${filename}" #id + sed -i "s/\buuid=/&$(uuidgen)/" "/tmp/purevpn/${filename}" #uuid + sed -i "s/\bgateway=/&$host/" "/tmp/purevpn/${filename}" #host + chmod 600 "/tmp/purevpn/${filename}" #permissions + mv "/tmp/purevpn/${filename}" /etc/NetworkManager/system-connections } addpass() { cd /etc/NetworkManager/system-connections - find *-PUREVPN -print0 | while read -d $'\0' file + find -iname "*PureVPN*" -print0 | while read -d $'\0' file do sed -i "s/\bpassword=.*/password=${passw}/g" "$file" done @@ -122,7 +144,7 @@ addpass() { adduser() { cd /etc/NetworkManager/system-connections - find *-PUREVPN -print0 | while read -d $'\0' file + find -iname "*PureVPN*" -print0 | while read -d $'\0' file do if [[ $file == *"PPTP"* ]]; then sed -i "s/\buser=.*/user=${uname}/g" "$file" @@ -133,11 +155,11 @@ adduser() { } clean() { - echo "Purging all PUREVPN files!" - find /etc/NetworkManager/system-connections -name "*PUREVPN" -exec rm -v {} \; + printf "Purging all PureVPN files!\n" + find /etc/NetworkManager/system-connections -iname "*PureVPN*" -exec rm -v {} \; } -while getopts "hlc:t:u:p:x" opt +while getopts "hlc:t:u:p:xz" opt do case $opt in h) @@ -149,21 +171,25 @@ while getopts "hlc:t:u:p:x" opt exit 0 ;; c) - config=$OPTARG + configs+=("${OPTARG}") ;; t) - protoc=$OPTARG + protocs+=("${OPTARG}") ;; u) uname=$OPTARG ;; p) passw=$OPTARG - ;; + ;; x) clean exit 0 ;; + z) + updlist + exit 0 + ;; \?) usage exit 1 @@ -173,42 +199,65 @@ while getopts "hlc:t:u:p:x" opt ## Main script -if [ -z "$protoc" ]; +if [ -z "$protocs" ]; then - echo "No protocol was specified. No files will be installed." - exit 1; + if [[ -v uname ]] || [[ -v passw ]]; + then + SKIPCITY="true" + else + printf "No protocol was specified. No files will be installed.\n" + exit 1; + fi fi -if [ -z "$config" ]; +if [ -z "$configs" ]; then - echo "No city specified. No files will be installed." -elif list | grep "${config}" > /dev/null; then - if [ "$protoc" == "pptp" ]; + if [[ -v uname ]] || [[ -v passw ]]; then - process_pptp + SKIPCITY="true" else - process_ovpn + printf "No city specified. No files will be installed.\n" + exit 1; fi -else - echo "We couldn't find that city." - echo "Try running purevpn -l to list available cities." - exit 1; fi - + +if [ -z "$SKIPCITY" ]; +then + for config in "${configs[@]}"; do + if list | grep "${config}" > /dev/null; then + for protoc in "${protocs[@]}"; do + if [ "$protoc" == "pptp" ]; then + process_pptp + elif [ "$protoc" == "ovpn" ]; then + process_ovpn + else + printf "$protoc does not seem to be a valid protocol. Choose pptp or ovpn.\n" + warn; + fi + done + else + printf "We couldn't find a city called $config.\n" + printf "Try running purevpn -l to list available cities.\n" + exit 1; + fi + done +fi + if [[ -z "$uname" ]]; then - echo "No username was specified" + printf "No username was specified.\n" else - echo "Adding the username to the installed config files." + printf "Adding the username to the installed config files.\n" adduser fi if [[ -z "$passw" ]]; then - echo "No password was specified." + printf "No password was specified.\n" else - echo "Adding the password to the installed config files." + printf "Adding the password to the installed config files.\n" addpass fi -echo "Restarting NetworkManager" +printf "Restarting NetworkManager.\n" systemctl restart NetworkManager +exit 0 diff --git a/vpn-list.csv b/vpn-list.csv deleted file mode 100644 index 6683be407406..000000000000 --- a/vpn-list.csv +++ /dev/null @@ -1,169 +0,0 @@ -Region Name,Country,City,"PPTP, L2TP, SSTP, IKEv2",OpenVPN-UDP,OpenVPN-TCP -Africa,Ghana,Accra,gh1.pointtoserver.com,gh1-ovpn-udp.pointtoserver.com,gh1-ovpn-tcp.pointtoserver.com -Africa,Ethiopia,Addis Ababa,et1.pointtoserver.com,et1-ovpn-udp.pointtoserver.com,et1-ovpn-tcp.pointtoserver.com -Middle East,Yemen,Aden,ym1.pointtoserver.com,ym1-ovpn-udp.pointtoserver.com,ym1-ovpn-tcp.pointtoserver.com -Asia,Syria,Aleppo,sy1.pointtoserver.com,sy1-ovpn-udp.pointtoserver.com,sy1-ovpn-tcp.pointtoserver.com -Africa,Algeria,Algiers,vlus-dz1.pointtoserver.com,vlus-dz1-ovpn-udp.pointtoserver.com,vlus-dz1-ovpn-tcp.pointtoserver.com -Asia,Kazakhstan,Almaty,vlus-kz1.pointtoserver.com,vlus-kz1-ovpn-udp.pointtoserver.com,vlus-kz1-ovpn-tcp.pointtoserver.com -Middle East,Jordan,Amman,vlus-jo1.pointtoserver.com,vlus-jo1-ovpn-udp.pointtoserver.com,vlus-jo1-ovpn-tcp.pointtoserver.com -Europe,Netherlands,Amsterdam,nl1.pointtoserver.com,nl1-ovpn-udp.pointtoserver.com,nl1-ovpn-tcp.pointtoserver.com -Africa,Madagascar,Antananarivo,vlus-mg1.pointtoserver.com,vlus-mg1-ovpn-udp.pointtoserver.com,vlus-mg1-ovpn-tcp.pointtoserver.com -North America,United States,Ashburn,usva.pointtoserver.com,usva-ovpn-udp.pointtoserver.com,usva-ovpn-tcp.pointtoserver.com -Asia,Turkmenistan,Ashgabat,vlus-tm1.pointtoserver.com,vlus-tm1-ovpn-udp.pointtoserver.com,vlus-tm1-ovpn-tcp.pointtoserver.com -South America,Paraguay,Asuncion,vleu-py.pointtoserver.com,vleu-py-ovpn-udp.pointtoserver.com,vleu-py-ovpn-tcp.pointtoserver.com -Oceania,New Zealand,Auckland,nz.pointtoserver.com,nz-ovpn-udp.pointtoserver.com,nz-ovpn-tcp.pointtoserver.com -Asia,Azerbaijan,Baku,az1.pointtoserver.com,az1-ovpn-udp.pointtoserver.com,az1-ovpn-tcp.pointtoserver.com -North America,Turks and Caicos Islands,Balfour Town,vleu-tc.pointtoserver.com,vleu-tc-ovpn-udp.pointtoserver.com,vleu-tc-ovpn-tcp.pointtoserver.com -Asia,Brunei Darussalam,Bandar Seri Begawan,bn1.pointtoserver.com,bn1-ovpn-udp.pointtoserver.com,bn1-ovpn-tcp.pointtoserver.com -Asia,Thailand,Bangkok,vlap-th1.pointtoserver.com,vlap-th1-ovpn-udp.pointtoserver.com,vlap-th1-ovpn-tcp.pointtoserver.com -Europe,Spain,Barcelona,es1.pointtoserver.com,es-ovpn-udp.pointtoserver.com,es-ovpn-tcp.pointtoserver.com -Asia,China,Beijing,cn1.pointtoserver.com,cn1-ovpn-udp.pointtoserver.com,cn1-ovpn-tcp.pointtoserver.com -North America,Belize,Belmopan,bz1.pointtoserver.com,bz1-ovpn-udp.pointtoserver.com,bz1-ovpn-tcp.pointtoserver.com -Africa,Angola,Benguela,vlus-ao1.pointtoserver.com,vlus-ao1-ovpn-udp.pointtoserver.com,vlus-ao1-ovpn-tcp.pointtoserver.com -Asia,Macao,Beyrouth,mo1.pointtoserver.com,mo1-ovpn-udp.pointtoserver.com,mo1-ovpn-tcp.pointtoserver.com -Asia,Kyrgyzstan,Bishkek,vlus-kg1.pointtoserver.com,vlus-kg1-ovpn-udp.pointtoserver.com,vlus-kg1-ovpn-tcp.pointtoserver.com -South America,Colombia,Bogota,co1.pointtoserver.com,co1-ovpn-udp.pointtoserver.com,co1-ovpn-tcp.pointtoserver.com -Europe,Slovakia,Bratislava,sk1.pointtoserver.com,sk1-ovpn-udp.pointtoserver.com,sk1-ovpn-tcp.pointtoserver.com -North America,Barbados,Bridgetown,vleu-bb.pointtoserver.com,vleu-bb-ovpn-udp.pointtoserver.com,vleu-bb-ovpn-tcp.pointtoserver.com -Oceania,Australia,Brisbane,au-bn.pointtoserver.com,au-bn-ovpn-udp.pointtoserver.com,au-bn-ovpn-tcp.pointtoserver.com -Europe,Belgium,Brussels,vleu-be1.pointtoserver.com,vleu-be1-ovpn-udp.pointtoserver.com,vleu-be1-ovpn-tcp.pointtoserver.com -Europe,Romania,Bucharest,ro1.pointtoserver.com,ro1-ovpn-udp.pointtoserver.com,ro1-ovpn-tcp.pointtoserver.com -Europe,Hungary,Budapest,hu1.pointtoserver.com,hu1-ovpn-udp.pointtoserver.com,hu1-ovpn-tcp.pointtoserver.com -South America,Argentina,Buenos Aires,vlus-ar1.pointtoserver.com,vlus-ar1-ovpn-udp.pointtoserver.com,vlus-ar1-ovpn-tcp.pointtoserver.com -Africa,Egypt,Cairo,vlus-eg1.pointtoserver.com,vlus-eg1-ovpn-udp.pointtoserver.com,vlus-eg1-ovpn-tcp.pointtoserver.com -South America,Venezuela,Caracas,ve1.pointtoserver.com,ve1-ovpn-udp.pointtoserver.com,ve1-ovpn-tcp.pointtoserver.com -North America,Saint Lucia,Castries,vleu-lc.pointtoserver.com,vleu-lc-ovpn-udp.pointtoserver.com,vleu-lc-ovpn-tcp.pointtoserver.com -Asia,India,Chennai,in1.pointtoserver.com,in1-ovpn-udp.pointtoserver.com,in1-ovpn-tcp.pointtoserver.com -North America,United States,Chicago,usil1.pointtoserver.com,usil1-ovpn-udp.pointtoserver.com,usil1-ovpn-tcp.pointtoserver.com -Europe,Moldova,Chisinau,md1.pointtoserver.com,md1-ovpn-udp.pointtoserver.com,md1-ovpn-tcp.pointtoserver.com -Asia,Sri Lanka,Colombo,vlus-lk1.pointtoserver.com,vlus-lk1-ovpn-udp.pointtoserver.com,vlus-lk1-ovpn-tcp.pointtoserver.com -North America,United States,Columbus,usoh1.pointtoserver.com,usoh1-ovpn-udp.pointtoserver.com,usoh1-ovpn-tcp.pointtoserver.com -Europe,Denmark,Copenhagen,vleu-dk1.pointtoserver.com,vleu-dk1-ovpn-udp.pointtoserver.com,vleu-dk1-ovpn-tcp.pointtoserver.com -Africa,Senegal,Dakar,vlus-sn1.pointtoserver.com,vlus-sn1-ovpn-udp.pointtoserver.com,vlus-sn1-ovpn-tcp.pointtoserver.com -Africa,Tanzania,Dar Es Salaam,vlus-tz1.pointtoserver.com,vlus-tz1-ovpn-udp.pointtoserver.com,vlus-tz1-ovpn-tcp.pointtoserver.com -Asia,Bangladesh,Dhaka,vlus-bd1.pointtoserver.com,vlus-bd1-ovpn-udp.pointtoserver.com,vlus-bd1-ovpn-tcp.pointtoserver.com -Middle East,Qatar,Doha,qa1.pointtoserver.com,qa1-ovpn-udp.pointtoserver.com,qa1-ovpn-tcp.pointtoserver.com -Middle East,United Arab Emirates,Dubai,ae1.pointtoserver.com,ae1-ovpn-udp.pointtoserver.com,ae1-ovpn-tcp.pointtoserver.com -Europe,Ireland,Dublin,ie1.pointtoserver.com,ie1-ovpn-udp.pointtoserver.com,ie1-ovpn-tcp.pointtoserver.com -Asia,Tajikistan,Dushanbe,vlus-tj1.pointtoserver.com,vlus-tj-ovpn-udp.pointtoserver.com,vlus-tj-ovpn-tcp.pointtoserver.com -Europe,Finland,Espoo,fi1.pointtoserver.com,, -Asia,Hong Kong (SAR),Fanling,hkf1.pointtoserver.com,, -Europe,Germany,Frankfurt,de1.pointtoserver.com,de-ovpn-udp.pointtoserver.com,de-ovpn-tcp.pointtoserver.com -North America,The Bahamas,Freeport,bs1.pointtoserver.com,bs1-ovpn-udp.pointtoserver.com,bs1-ovpn-tcp.pointtoserver.com -North America,Cayman Islands,George Town,vleu-ky.pointtoserver.com,vleu-ky-ovpn-udp.pointtoserver.com,vleu-ky-ovpn-tcp.pointtoserver.com -South America,Guyana,Georgetown,vleu-gy.pointtoserver.com,vleu-gy-ovpn-udp.pointtoserver.com,vleu-gy-ovpn-tcp.pointtoserver.com -North America,United States,Georgia,usga1.pointtoserver.com,usga1-ovpn-udp.pointtoserver.com,usga1-ovpn-tcp.pointtoserver.com -Europe,United Kingdom,Gosport,ukg1.pointtoserver.com,ukg1-ovpn-udp.pointtoserver.com,ukg1-ovpn-tcp.pointtoserver.com -North America,Guatemala,Guatemala,vleu-gt.pointtoserver.com,vleu-gt-ovpn-udp.pointtoserver.com,vleu-gt-ovpn-tcp.pointtoserver.com -North America,Bermuda,Hamilton,vleu-bm.pointtoserver.com,vleu-bm-ovpn-udp.pointtoserver.com,vleu-bm-ovpn-tcp.pointtoserver.com -Asia,Vietnam,Hanoi,vlap-vn1.pointtoserver.com,vlap-vn1-ovpn-udp.pointtoserver.com,vlap-vn1-ovpn-tcp.pointtoserver.com -North America,Cuba,Havana,cu1.pointtoserver.com,cu1-ovpn-udp.pointtoserver.com,cu1-ovpn-tcp.pointtoserver.com -Asia,Hong Kong (SAR),Hong Kong,hk1.pointtoserver.com,hk1-ovpn-udp.pointtoserver.com,hk1-ovpn-tcp.pointtoserver.com -North America,United States,Houston,ustx1.pointtoserver.com,ustx1-ovpn-udp.pointtoserver.com,ustx1-ovpn-tcp.pointtoserver.com -Asia,Pakistan,Islamabad,pk1.pointtoserver.com,pk1-ovpn-udp.pointtoserver.com,pk1-ovpn-tcp.pointtoserver.com -Asia,Turkey,Istanbul,tr1.pointtoserver.com,vlus-tr1-ovpn-udp.pointtoserver.com,vlus-tr1-ovpn-tcp.pointtoserver.com -Asia,Indonesia,Jakarta,idn1.pointtoserver.com,idn1-ovpn-udp.pointtoserver.com,idn1-ovpn-tcp.pointtoserver.com -Middle East,Saudi Arabia,Jeddah,sa1.pointtoserver.com,sa1-ovpn-udp.pointtoserver.com,sa1-ovpn-tcp.pointtoserver.com -Africa,South Africa,Johannesburg,za1.pointtoserver.com,za1-ovpn-udp.pointtoserver.com,za1-ovpn-tcp.pointtoserver.com -Asia,Malaysia,Johor Baharu,my1.pointtoserver.com,, -Asia,Afghanistan,Kabul,vlus-af1.pointtoserver.com,vlus-af1-ovpn-udp.pointtoserver.com,vlus-af1-ovpn-tcp.pointtoserver.com -North America,Jamaica,Kingston,jm1.pointtoserver.com,jm1-ovpn-udp.pointtoserver.com,jm1-ovpn-tcp.pointtoserver.com -Asia,Malaysia,Kuala Lumpur,my-kl1.pointtoserver.com,my-kl1-ovpn-udp.pointtoserver.com,my-kl1-ovpn-tcp.pointtoserver.com -Middle East,Kuwait,Kuwait,vlus-kw1.pointtoserver.com,vlus-kw1-ovpn-udp.pointtoserver.com,vlus-kw1-ovpn-tcp.pointtoserver.com -South America,Peru,Lima,pe1.pointtoserver.com,pe1-ovpn-udp.pointtoserver.com,pe1-ovpn-tcp.pointtoserver.com -Europe,Portugal,Lisbon,pt1.pointtoserver.com,pt1-ovpn-udp.pointtoserver.com,pt1-ovpn-tcp.pointtoserver.com -Europe,Slovenia,Ljubljana,si1.pointtoserver.com,si1-ovpn-udp.pointtoserver.com,si1-ovpn-tcp.pointtoserver.com -Europe,United Kingdom,London,ukl1.pointtoserver.com,ukl1-ovpn-udp.pointtoserver.com,ukl1-ovpn-tcp.pointtoserver.com -North America,United States,Los Angeles,usla1.pointtoserver.com,usla1-ovpn-udp.pointtoserver.com,usla1-ovpn-tcp.pointtoserver.com -Europe,Luxembourg,Luxembourg,lu1.pointtoserver.com,lu1-ovpn-udp.pointtoserver.com,lu1-ovpn-tcp.pointtoserver.com -Europe,United Kingdom,Maidenhead,ukm1.pointtoserver.com,ukm1-ovpn-udp.pointtoserver.com,ukm1-ovpn-tcp.pointtoserver.com -North America,Nicaragua,Managua,vleu-ni.pointtoserver.com,vleu-ni-ovpn-udp.pointtoserver.com,vleu-ni-ovpn-tcp.pointtoserver.com -Middle East,Bahrain,Manama,bh.pointtoserver.com,bh-ovpn-udp.pointtoserver.com,bh-ovpn-tcp.pointtoserver.com -Europe,United Kingdom,Manchester,vlus-uk-man1.pointtoserver.com,vlus-uk-man1-ovpn-udp.pointtoserver.com,vlus-uk-man1-ovpn-tcp.pointtoserver.com -Asia,Philippines,Manila,vlap-ph1.pointtoserver.com,vlap-ph1-ovpn-udp.pointtoserver.com,vlap-ph1-ovpn-tcp.pointtoserver.com -Oceania,Australia,Melbourne,au-me1.pointtoserver.com,au-me1-ovpn-udp.pointtoserver.com,au-me1-ovpn-tcp.pointtoserver.com -North America,Mexico,Mexico City,vlus-mx1.pointtoserver.com,vlus-mx1-ovpn-udp.pointtoserver.com,vlus-mx1-ovpn-tcp.pointtoserver.com -North America,United States,Miami,usfl1.pointtoserver.com,usfl1-ovpn-udp.pointtoserver.com,usfl1-ovpn-tcp.pointtoserver.com -Europe,Italy,Milano,it1.pointtoserver.com,vlus-it1-ovpn-udp.pointtoserver.com,vlus-it1-ovpn-tcp.pointtoserver.com -Africa,Kenya,Mombasa,ke1.pointtoserver.com,ke1-ovpn-udp.pointtoserver.com,ke1-ovpn-tcp.pointtoserver.com -Europe,Monaco,Monaco,mn1.pointtoserver.com,mn1-ovpn-udp.pointtoserver.com,mn1-ovpn-tcp.pointtoserver.com -North America,Canada,Montreal,caq1.pointtoserver.com,caq1-ovpn-udp.pointtoserver.com,caq1-ovpn-tcp.pointtoserver.com -Europe,Russia,Moscow,ru1.pointtoserver.com,vlus-ru1-ovpn-udp.pointtoserver.com,vlus-ru1-ovpn-tcp.pointtoserver.com -Europe,Germany,Munich,de1.pointtoserver.com,de1-ovpn-udp.pointtoserver.com,de1-ovpn-tcp.pointtoserver.com -North America,United States,New Jersey,usnj1.pointtoserver.com,usnj1-ovpn-udp.pointtoserver.com,usnj1-ovpn-tcp.pointtoserver.com -North America,United States,New York,usny1.pointtoserver.com,usny1-ovpn-udp.pointtoserver.com,usny1-ovpn-tcp.pointtoserver.com -Africa,Niger,Niamey,vlus-ne1.pointtoserver.com,vlus-ne1-ovpn-udp.pointtoserver.com,vlus-ne1-ovpn-tcp.pointtoserver.com -Europe,Cyprus,Nicosia,cy1.pointtoserver.com,cy1-ovpn-udp.pointtoserver.com,cy1-ovpn-tcp.pointtoserver.com -Europe,Serbia,Niš,rs1.pointtoserver.com,rs1-ovpn-udp.pointtoserver.com,rs1-ovpn-tcp.pointtoserver.com -Africa,Mauritania,Nouakchott,vlus-mr1.pointtoserver.com,vlus-mr1-ovpn-udp.pointtoserver.com,vlus-mr1-ovpn-tcp.pointtoserver.com -Europe,Germany,Nuremberg,de-ao1.pointtoserver.com,de-ao1-ovpn-udp.pointtoserver.com,de-ao1-ovpn-tcp.pointtoserver.com -Europe,Ukraine,Odessa,ua1.pointtoserver.com,ua1-ovpn-udp.pointtoserver.com,ua1-ovpn-tcp.pointtoserver.com -Europe,Isle of Man,Onchan,im1.pointtoserver.com,im1-ovpn-udp.pointtoserver.com,im1-ovpn-tcp.pointtoserver.com -North America,Aruba,Oranjestad,aw1.pointtoserver.com,aw1-ovpn-udp.pointtoserver.com,aw1-ovpn-tcp.pointtoserver.com -Europe,Norway,Oslo,vleu-no1.pointtoserver.com,vleu-no1-ovpn-udp.pointtoserver.com,vleu-no1-ovpn-tcp.pointtoserver.com -North America,Haiti,PORT-AU-PRINCE,vleu-ht1.pointtoserver.com,vleu-ht1-ovpn-udp.pointtoserver.com,vleu-ht1-ovpn-tcp.pointtoserver.com -South America,Panama,Panama City,vlus-pa1.pointtoserver.com,vlus-pa1-ovpn-udp.pointtoserver.com,vlus-pa1-ovpn-tcp.pointtoserver.com -South America,Suriname,Paramaribo,vleu-sr.pointtoserver.com,vleu-sr-ovpn-udp.pointtoserver.com,vleu-sr-ovpn-tcp.pointtoserver.com -Europe,France,Paris,fr1.pointtoserver.com,fr1-ovpn-udp.pointtoserver.com,fr1-ovpn-tcp.pointtoserver.com -Oceania,Australia,Perth,au-pe1.pointtoserver.com,au-pe1-ovpn-udp.pointtoserver.com,au-pe1-ovpn-tcp.pointtoserver.com -Asia,Cambodia,Phnom Penh,kh1.pointtoserver.com,kh1-ovpn-udp.pointtoserver.com,kh1-ovpn-tcp.pointtoserver.com -North America,United States,Phoenix,usphx1.pointtoserver.com,usphx1-ovpn-udp.pointtoserver.com,usphx1-ovpn-tcp.pointtoserver.com -Europe,Montenegro,Podgorica,vleu-me1.pointtoserver.com,vleu-me1-ovpn-udp.pointtoserver.com,vleu-me1-ovpn-tcp.pointtoserver.com -Africa,Mauritius,Port Louis,mu1.pointtoserver.com,mu1-ovpn-udp.pointtoserver.com,mu1-ovpn-tcp.pointtoserver.com -Asia,Papua New Guinea,Port Moresby,vlus-pg1.pointtoserver.com,vlus-pg1-ovpn-udp.pointtoserver.com,vlus-pg1-ovpn-tcp.pointtoserver.com -North America,Trinidad and Tobago,Port of Spain,vleu-tt.pointtoserver.com,vleu-tt-ovpn-udp.pointtoserver.com,vleu-tt-ovpn-tcp.pointtoserver.com -Europe,Czech Republic,Prague,cz.pointtoserver.com,, -Africa,Cape Verde,Praia,vleu-cv.pointtoserver.com,vleu-cv-ovpn-udp.pointtoserver.com,vleu-cv-ovpn-tcp.pointtoserver.com -South America,Ecuador,Quito,ec1.pointtoserver.com,ec1-ovpn-udp.pointtoserver.com,ec1-ovpn-tcp.pointtoserver.com -Europe,Latvia,RIGA,lv1.pointtoserver.com,lv1-ovpn-udp.pointtoserver.com,lv1-ovpn-tcp.pointtoserver.com -Africa,Morocco,Rabat,ma1.pointtoserver.com,ma1-ovpn-udp.pointtoserver.com,ma1-ovpn-tcp.pointtoserver.com -Asia,Myanmar,Rangoon,vlus-mm1.pointtoserver.com,vlus-mm1-ovpn-udp.pointtoserver.com,vlus-mm1-ovpn-tcp.pointtoserver.com -Europe,Iceland,Reykjavik,is1.pointtoserver.com,is1-ovpn-udp.pointtoserver.com,is1-ovpn-tcp.pointtoserver.com -South America,British Virgin Islands,Road Town,vg1.pointtoserver.com,vg1-ovpn-udp.pointtoserver.com,vg1-ovpn-tcp.pointtoserver.com -North America,Dominica,Roseau,vleu-dm.pointtoserver.com,vleu-dm-ovpn-udp.pointtoserver.com,vleu-dm-ovpn-tcp.pointtoserver.com -Middle East,Oman,Salalah,om1.pointtoserver.com,om1-ovpn-udp.pointtoserver.com,om1-ovpn-tcp.pointtoserver.com -North America,United States,Salt Lake City,usut.pointtoserver.com,usut-ovpn-udp.pointtoserver.com,usut-ovpn-tcp.pointtoserver.com -North America,United States,San Francisco,ussf.pointtoserver.com,vlsa-ussf1-ovpn-udp.pointtoserver.com,vlsa-ussf1-ovpn-tcp.pointtoserver.com -North America,Costa Rica,San Jose,vlus-cr1.pointtoserver.com,vlus-cr1-ovpn-udp.pointtoserver.com,vlus-cr1-ovpn-tcp.pointtoserver.com -North America,Puerto Rico,San Juan,pr1.pointtoserver.com,pr1-ovpn-udp.pointtoserver.com,pr1-ovpn-tcp.pointtoserver.com -North America,El Salvador,San Salvador,vleu-sv.pointtoserver.com,vleu-sv-ovpn-udp.pointtoserver.com,vleu-sv-ovpn-tcp.pointtoserver.com -South America,Chile,Santiago,vlbr-cl.pointtoserver.com,vlbr-cl-ovpn-udp.pointtoserver.com,vlbr-cl-ovpn-tcp.pointtoserver.com -North America,Dominican Republic,Santo Domingo,vleu-do.pointtoserver.com,vleu-do-ovpn-udp.pointtoserver.com,vleu-do-ovpn-tcp.pointtoserver.com -South America,Brazil,Sao Paulo,br1.pointtoserver.com,br1-ovpn-udp.pointtoserver.com,br1-ovpn-tcp.pointtoserver.com -Europe,Bosnia and Herzegovina,Sarajevo,ba1.pointtoserver.com,ba1-ovpn-udp.pointtoserver.com,ba1-ovpn-tcp.pointtoserver.com -North America,United States,Seattle,ussa.pointtoserver.com,ussa-ovpn-udp.pointtoserver.com,ussa-ovpn-tcp.pointtoserver.com -Asia,"Korea, South",Seoul,kr1.pointtoserver.com,kr1-ovpn-udp.pointtoserver.com,kr1-ovpn-tcp.pointtoserver.com -Asia,China,Shanghai,cn-hn1.pointtoserver.com,cn-hn1-ovpn-udp.pointtoserver.com,cn-hn1-ovpn-tcp.pointtoserver.com -Asia,Singapore,Singapore,sg1.pointtoserver.com.,sg1-ovpn-udp.pointtoserver.com,sg1-ovpn-tcp.pointtoserver.com -Europe,Malta,Sliema,mt1.pointtoserver.com,mt1-ovpn-udp.pointtoserver.com,mt1-ovpn-tcp.pointtoserver.com -Europe,Bulgaria,Sofia,bg1.pointtoserver.com,bg1-ovpn-udp.pointtoserver.com,bg1-ovpn-tcp.pointtoserver.com -North America,Grenada,St George's,vleu-gd.pointtoserver.com,vleu-gd-ovpn-udp.pointtoserver.com,vleu-gd-ovpn-tcp.pointtoserver.com -Europe,Sweden,Stockholm,se1.pointtoserver.com,se1-ovpn-udp.pointtoserver.com,vlus-se1-ovpn-tcp.pointtoserver.com -South America,Bolivia,Sucre,vleu-bo.pointtoserver.com,vleu-bo-ovpn-udp.pointtoserver.com,vleu-bo-ovpn-tcp.pointtoserver.com -Africa,Nigeria,Suleja,ng1.pointtoserver.com,ng1-ovpn-udp.pointtoserver.com,ng1-ovpn-tcp.pointtoserver.com -Oceania,Australia,Sydney,au-sd1.pointtoserver.com,au-sd1-ovpn-udp.pointtoserver.com,au-sd1-ovpn-tcp.pointtoserver.com -North America,Honduras,TEGUCIGALPA,vleu-hn.pointtoserver.com,vleu-hn-ovpn-udp.pointtoserver.com,vleu-hn-ovpn-tcp.pointtoserver.com -Asia,Taiwan,Taipei,vlap-tw1.pointtoserver.com,vlap-tw1-ovpn-udp.pointtoserver.com,vlap-tw1-ovpn-tcp.pointtoserver.com -Europe,Estonia,Tallinn,ee1.pointtoserver.com,ee1-ovpn-udp.pointtoserver.com,ee1-ovpn-tcp.pointtoserver.com -Asia,Uzbekistan,Tashkent,vlus-uz1.pointtoserver.com,vlus-uz-ovpn-udp.pointtoserver.com,vlus-uz-ovpn-tcp.pointtoserver.com -Europe,Georgia,Tbilisi,vlus-ge1.pointtoserver.com,vlus-ge1-ovpn-udp.pointtoserver.com,vlus-ge1-ovpn-tcp.pointtoserver.com -Europe,Greece,Thessaloniki,gr1.pointtoserver.com,gr1-ovpn-udp.pointtoserver.com,gr1-ovpn-tcp.pointtoserver.com -Europe,Albania,Tirane,al1.pointtoserver.com,al1-ovpn-udp.pointtoserver.com,al1-ovpn-tcp.pointtoserver.com -Asia,Japan,Tokyo,jp-tk1.pointtoserver.com,jp-tk1-ovpn-udp.pointtoserver.com,jp-tk1-ovpn-tcp.pointtoserver.com -North America,Canada,Toronto,cato.pointtoserver.com,cato-ovpn-udp.pointtoserver.com,cato-ovpn-tcp.pointtoserver.com -Middle East,Lebanon,Tripoli,lb1.pointtoserver.com,lb1-ovpn-udp.pointtoserver.com,lb1-ovpn-tcp.pointtoserver.com -Africa,Tunisia,Tunis,vlus-tn1.pointtoserver.com,vlus-tn1-ovpn-udp.pointtoserver.com,vlus-tn1-ovpn-tcp.pointtoserver.com -Asia,Mongolia,Ulaanbaatar,vlus-mn1.pointtoserver.com,vlus-mn1-ovpn-udp.pointtoserver.com,vlus-mn1-ovpn-tcp.pointtoserver.com -Europe,Liechtenstein,Vaduz,li1.pointtoserver.com,li1-ovpn-udp.pointtoserver.com,li1-ovpn-tcp.pointtoserver.com -North America,Canada,Vancouver,cav1.pointtoserver.com,cav1-ovpn-udp.pointtoserver.com,cav1-ovpn-tcp.pointtoserver.com -Africa,Seychelles,Victoria,sc1.pointtoserver.com,sc1-ovpn-udp.pointtoserver.com,sc1-ovpn-tcp.pointtoserver.com -Europe,Austria,Vienna,at1.pointtoserver.com,at1-ovpn-udp.pointtoserver.com,at1-ovpn-tcp.pointtoserver.com -Asia,Laos,Vientiane,vlus-la1.pointtoserver.com,vlus-la1-ovpn-udp.pointtoserver.com,vlus-la1-ovpn-tcp.pointtoserver.com -Europe,Lithuania,Vilnius,lt1.pointtoserver.com,lt1-ovpn-udp.pointtoserver.com,lt1-ovpn-tcp.pointtoserver.com -Europe,Poland,Warsaw,pl1.pointtoserver.com,pl1-ovpn-udp.pointtoserver.com,pl1-ovpn-tcp.pointtoserver.com -North America,United States,"Washington, D.C.",uswdc1.pointtoserver.com,uswdc1-ovpn-udp.pointtoserver.com,uswdc1-ovpn-tcp.pointtoserver.com -Europe,Armenia,Yerevan,vleu-am1.pointtoserver.com,vleu-am1-ovpn-udp.pointtoserver.com,vleu-am1-ovpn-tcp.pointtoserver.com -Europe,Croatia,Zagreb,vlus-hr1.pointtoserver.com,vlus-hr1-ovpn-udp.pointtoserver.com,vlus-hr1-ovpn-tcp.pointtoserver.com -Europe,Switzerland,Zurich,ch1.pointtoserver.com,ch1-ovpn-udp.pointtoserver.com,ch1-ovpn-tcp.pointtoserver.com -North America,Montserrat,plymouth,vleu-ms.pointtoserver.com,vleu-ms-ovpn-udp.pointtoserver.com,vleu-ms-ovpn-tcp.pointtoserver.com -Asia,Myanmar,Rangoon,vlus-mm1.pointtoserver.com,vlus-mm1-ovpn-udp.pointtoserver.com,vlus-mm1-ovpn-tcp.pointtoserver.com |