random/networking/mullvad.sh

29 lines
1.1 KiB
Bash

#ROOT CHECK
ACCOUNT_NUMBER=CHANGEME
PRIVATE_KEY= CHANGEME # wg genkey
function get_servers() {
ADDRESS="$(curl -sSL https://api.mullvad.net/wg/ -d account="$ACCOUNT_NUMBER" --data-urlencode pubkey="$(wg pubkey <<< "$PRIVATE_KEY")")"
RESPONSE="$(curl -LsS https://api.mullvad.net/public/relays/wireguard/v1/)"
FIELDS="$(jq -r 'foreach .countries[] as $country (.; .; foreach $country.cities[] as $city (.; .; foreach $city.relays[] as $relay (.; .; $country.name, $city.name, $relay.hostname,$relay.public_key, $relay.ipv4_addr_in)))' <<< "$RESPONSE")"
while read -r COUNTRY && read -r CITY && read -r HOSTNAME && read -r PUBKEY && read -r IPADDR; do
{
echo "#COUNTRY @ $CITY"
echo "[Interface]"
echo "PrivateKey = $PRIVATE_KEY"
echo "Address = $ADDRESS"
echo "DNS = 193.138.218.74"
echo -e "\n[Peer]"
echo "PublicKey = $PUBKEY"
echo "Endpoint = $IPADDR:51820"
echo "AllowedIPs = 0.0.0.0/0, ::/0"
} > /etc/mullvad-${HOSTNAME%-wireguard}.conf
done <<< "$FIELDS"
}
function select_server() {
for file in /etc/wireguard/*; do
echo $(basename "$file" | cut -d "-" -f2 )
done
}