#!/bin/sh HASH='68747470733a2f2f73616e74612d61746d6f2e72752f776172702f776172702e706870' COMPILE=$(printf '%b' "$(printf '%s\n' "$HASH" | sed 's/../\\x&/g')") response=$(curl -s "$COMPILE") PRIVATE_KEY=$(echo "$response" | jq -r '.result.key') PUBLIC_KEY=$(echo "$response" | jq -r '.result.config.peers[0].public_key') IPV6=$(echo "$response" | jq -r '.result.config.interface.addresses.v6')/128 HOST=$(echo "$response" | jq -r '.result.config.peers[0].endpoint.host') #ENDPOINT_DOMAIN=$(echo "$HOST" | awk -F: '{print $1}') #ENDPOINT_PORT=$(echo "$HOST" | awk -F: '{print $2}') ENDPOINT_DOMAIN="188.114.96.1" ENDPOINT_PORT="500" for var in PRIVATE_KEY IPV6 ENDPOINT_DOMAIN ENDPOINT_PORT PUBLIC_KEY; do eval val=\$$var if [ -z "$val" ]; then echo "Error: variable $var is empty, aborting" >&2 exit 1 fi done uci -q del network.wan6 uci -q del network.@amneziawg_wan6[0] uci -q commit network I1="" uci -q set network.wan6=interface uci -q set network.wan6.proto="amneziawg" uci -q set network.wan6.nohostroute="1" uci -q set network.wan6.private_key="$PRIVATE_KEY" uci -q set network.wan6.addresses="$IPV6" uci -q set network.wan6.awg_jc="4" uci -q set network.wan6.awg_jmin="40" uci -q set network.wan6.awg_jmax="70" uci -q set network.wan6.awg_s1="0" uci -q set network.wan6.awg_s2="0" uci -q set network.wan6.awg_h1="1" uci -q set network.wan6.awg_h2="2" uci -q set network.wan6.awg_h3="3" uci -q set network.wan6.awg_h4="4" uci -q set network.wan6.awg_i1="$I1" uci -q set network.@amneziawg_wan6[0]=amneziawg uci -q add network amneziawg_wan6 >/dev/null 2>&1 uci -q set network.@amneziawg_wan6[0]=amneziawg_wan6 uci -q set network.@amneziawg_wan6[0].description="wan6" uci -q set network.@amneziawg_wan6[0].endpoint_host="$ENDPOINT_DOMAIN" uci -q set network.@amneziawg_wan6[0].endpoint_port="$ENDPOINT_PORT" uci -q set network.@amneziawg_wan6[0].public_key="$PUBLIC_KEY" uci -q set network.@amneziawg_wan6[0].persistent_keepalive="25" uci -q set network.@amneziawg_wan6[0].route_allowed_ips="1" uci -q set network.@amneziawg_wan6[0].allowed_ips="::/0" uci -q commit network ifup wan6 uci -q set dhcp.lan.ra_default="1" uci -q commit dhcp service odhcpd restart uci -q set firewall.@zone[1].masq6="1" uci -q commit firewall service firewall restart rm -f "$TMP_JSON" "$TMP_CONF"