This commit is contained in:
4kord 2024-10-09 02:54:01 +09:00 committed by GitHub
commit 065ce48ed8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -109,11 +109,11 @@ auto_su() {
get_real_interface() { get_real_interface() {
local interface diff local interface diff
wg show interfaces >/dev/null awg show interfaces >/dev/null
[[ -f "/var/run/amneziawg/$INTERFACE.name" ]] || return 1 [[ -f "/var/run/amneziawg/$INTERFACE.name" ]] || return 1
interface="$(< "/var/run/amneziawg/$INTERFACE.name")" interface="$(< "/var/run/amneziawg/$INTERFACE.name")"
[[ -n $interface && -S "/var/run/amneziawg/$interface.sock" ]] || return 1 [[ -n $interface && -S "/var/run/amneziawg/$interface.sock" ]] || return 1
diff=$(( $(stat -f %m "/var/run/amneziawg/$interface.sock" 2>/dev/null || echo 200) - $(stat -f %m "/var/run/wireguard/$INTERFACE.name" 2>/dev/null || echo 100) )) diff=$(( $(stat -f %m "/var/run/amneziawg/$interface.sock" 2>/dev/null || echo 200) - $(stat -f %m "/var/run/amneziawg/$INTERFACE.name" 2>/dev/null || echo 100) ))
[[ $diff -ge 2 || $diff -le -2 ]] && return 1 [[ $diff -ge 2 || $diff -le -2 ]] && return 1
REAL_INTERFACE="$interface" REAL_INTERFACE="$interface"
echo "[+] Interface for $INTERFACE is $REAL_INTERFACE" >&2 echo "[+] Interface for $INTERFACE is $REAL_INTERFACE" >&2
@ -153,8 +153,8 @@ del_routes() {
} }
del_if() { del_if() {
[[ -z $REAL_INTERFACE ]] || cmd rm -f "/var/run/wireguard/$REAL_INTERFACE.sock" [[ -z $REAL_INTERFACE ]] || cmd rm -f "/var/run/amneziawg/$REAL_INTERFACE.sock"
cmd rm -f "/var/run/wireguard/$INTERFACE.name" cmd rm -f "/var/run/amneziawg/$INTERFACE.name"
} }
up_if() { up_if() {
@ -212,7 +212,7 @@ collect_endpoints() {
while read -r _ endpoint; do while read -r _ endpoint; do
[[ $endpoint =~ ^\[?([a-z0-9:.]+)\]?:[0-9]+$ ]] || continue [[ $endpoint =~ ^\[?([a-z0-9:.]+)\]?:[0-9]+$ ]] || continue
ENDPOINTS+=( "${BASH_REMATCH[1]}" ) ENDPOINTS+=( "${BASH_REMATCH[1]}" )
done < <(wg show "$REAL_INTERFACE" endpoints) done < <(awg show "$REAL_INTERFACE" endpoints)
} }
declare -A SERVICE_DNS declare -A SERVICE_DNS
@ -369,7 +369,7 @@ add_route() {
} }
set_config() { set_config() {
cmd wg setconf "$REAL_INTERFACE" <(echo "$WG_CONFIG") cmd awg setconf "$REAL_INTERFACE" <(echo "$WG_CONFIG")
} }
save_config() { save_config() {
@ -399,7 +399,7 @@ save_config() {
done done
old_umask="$(umask)" old_umask="$(umask)"
umask 077 umask 077
current_config="$(cmd wg showconf "$REAL_INTERFACE")" current_config="$(cmd awg showconf "$REAL_INTERFACE")"
trap 'rm -f "$CONFIG_FILE.tmp"; exit' INT TERM EXIT trap 'rm -f "$CONFIG_FILE.tmp"; exit' INT TERM EXIT
echo "${current_config/\[Interface\]$'\n'/$new_config}" > "$CONFIG_FILE.tmp" || die "Could not write configuration file" echo "${current_config/\[Interface\]$'\n'/$new_config}" > "$CONFIG_FILE.tmp" || die "Could not write configuration file"
sync "$CONFIG_FILE.tmp" sync "$CONFIG_FILE.tmp"
@ -460,7 +460,7 @@ cmd_up() {
done done
set_mtu set_mtu
up_if up_if
for i in $(while read -r _ i; do for i in $i; do [[ $i =~ ^[0-9a-z:.]+/[0-9]+$ ]] && echo "$i"; done; done < <(wg show "$REAL_INTERFACE" allowed-ips) | sort -nr -k 2 -t /); do for i in $(while read -r _ i; do for i in $i; do [[ $i =~ ^[0-9a-z:.]+/[0-9]+$ ]] && echo "$i"; done; done < <(awg show "$REAL_INTERFACE" allowed-ips) | sort -nr -k 2 -t /); do
add_route "$i" add_route "$i"
done done
[[ $AUTO_ROUTE4 -eq 1 || $AUTO_ROUTE6 -eq 1 ]] && set_endpoint_direct_route [[ $AUTO_ROUTE4 -eq 1 || $AUTO_ROUTE6 -eq 1 ]] && set_endpoint_direct_route
@ -471,7 +471,7 @@ cmd_up() {
} }
cmd_down() { cmd_down() {
if ! get_real_interface || [[ " $(wg show interfaces) " != *" $REAL_INTERFACE "* ]]; then if ! get_real_interface || [[ " $(awg show interfaces) " != *" $REAL_INTERFACE "* ]]; then
die "\`$INTERFACE' is not a WireGuard interface" die "\`$INTERFACE' is not a WireGuard interface"
fi fi
execute_hooks "${PRE_DOWN[@]}" execute_hooks "${PRE_DOWN[@]}"
@ -481,7 +481,7 @@ cmd_down() {
} }
cmd_save() { cmd_save() {
if ! get_real_interface || [[ " $(wg show interfaces) " != *" $REAL_INTERFACE "* ]]; then if ! get_real_interface || [[ " $(awg show interfaces) " != *" $REAL_INTERFACE "* ]]; then
die "\`$INTERFACE' is not a WireGuard interface" die "\`$INTERFACE' is not a WireGuard interface"
fi fi
save_config save_config