Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PIA_USER="pXXXXX"
- PIA_PASS="xxxxxx"
- PUB_KEY="xxxxxx="
- PRIV_KEY="xxxxxx="
- #select region from list
- #curl -s "https://serverlist.piaservers.net/vpninfo/servers/v6" | head -1 | jq -r '.regions[] | "Name: \(.name) ID: \(.id)"' | sort
- selectedRegion="swiss"
- VPN_IF="wg0_pia"
- ifdown ${VPN_IF}
- serverlist_url='https://serverlist.piaservers.net/vpninfo/servers/v6'
- # Get all region data
- all_region_data=$(curl -s "$serverlist_url" | head -1)
- regionData="$( echo "$all_region_data" |
- jq --arg REGION_ID "$selectedRegion" -r \
- '.regions[] | select(.id==$REGION_ID)')"
- WG_SERVER_IP=$(echo "$regionData" | jq -r '.servers.wg[0].ip')
- WG_HOSTNAME=$(echo "$regionData" | jq -r '.servers.wg[0].cn')
- echo $WG_SERVER_IP
- echo $WG_HOSTNAME
- TOKEN_RES=`wget -O - --post-data="username=$PIA_USER&password=$PIA_PASS" https://www.privateinternetaccess.com/api/client/v2/token`
- TOKEN=`echo $TOKEN_RES | jq -r '.token'`
- echo "$TOKEN"
- echo "${#TOKEN}"
- if [ ${#TOKEN} != 128 ]; then
- echo "Couldn't get token"
- exit
- else
- echo "Got token"
- fi
- wireguard_json=`curl -k -G --data-urlencode "pt=${TOKEN}" --data-urlencode "pubkey=$PUB_KEY" "https://${WG_SERVER_IP}:1337/addKey"`
- echo $wireguard_json
- dnsServer=$(echo "$wireguard_json" | jq -r '.dns_servers[0]')
- dnsSettingForVPN="DNS = $dnsServer"
- VPN_ADDR=$(echo "$wireguard_json" | jq -r '.peer_ip')
- VPN_PORT=$(echo "$wireguard_json" | jq -r '.server_port')
- VPN_PUB=$(echo "$wireguard_json" | jq -r '.server_key')
- uci set network.${VPN_IF}.addresses="${VPN_ADDR}"
- uci set network.@wireguard_wg0_pia[0].endpoint_host="${WG_SERVER_IP}"
- uci set network.@wireguard_wg0_pia[0].endpoint_port="${VPN_PORT}"
- uci set network.@wireguard_wg0_pia[0].public_key="${VPN_PUB}"
- uci commit
- ifdown ${VPN_IF}
- ifup ${VPN_IF}
- echo "
- [Interface]
- Address = $(echo "$wireguard_json" | jq -r '.peer_ip')
- PrivateKey = $PRIV_KEY
- $dnsSettingForVPN
- [Peer]
- PersistentKeepalive = 25
- PublicKey = $(echo "$wireguard_json" | jq -r '.server_key')
- AllowedIPs = 0.0.0.0/0
- Endpoint = ${WG_SERVER_IP}:$(echo "$wireguard_json" | jq -r '.server_port')
- "
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement