У меня используется такой скрипт автозапуска «S99amneziawg-warp-proton» в 5-й версии прошивки для двух одновременных подключений через awg сразу к warp и proton, можно взять за основу и изменить под свои нужды.
В «INTERFACES» скрипта содержаться интерфейсы, пути к файлам конфигураций и значения максимальных MTU подобранные опытным путём для warp и proton в моём случае, у других могут отличаться! Больше 2х одновременных подключений не проверял, но по идее можно засунуть и больше.
Естественно, заранее подняты «OpkgTun0» и «OpkgTun1», обоим интерфейсам заранее назначены IP адреса, это важно т.к. в моём скрипте автозапуска я их не назначаю.
#!/bin/sh
ENABLED=yes
PROCS=/opt/bin/amneziawg-go
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DESC="amneziawg-go multi-interface launcher"
LOGFILE="/opt/var/log/amneziawg.log"
# Подключения в формате: "интерфейс:конфиг:mtu"
INTERFACES="
opkgtun0:/opt/etc/awg/warp.conf:1440
opkgtun1:/opt/etc/awg/proton.conf:1500
"
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') $1" >> "$LOGFILE"
}
start_interface() {
IFACE=$1
CONF=$2
MTU=$3
log "Starting $IFACE with config $CONF"
$PROCS "$IFACE" &
sleep 2
ip link set dev "$IFACE" down 2>>"$LOGFILE"
sleep 2
if [ -d "/sys/class/net/$IFACE" ]; then
awg setconf "$IFACE" "$CONF" 2>>"$LOGFILE"
ip link set dev "$IFACE" mtu "$MTU" 2>>"$LOGFILE"
ip link set dev "$IFACE" up 2>>"$LOGFILE"
log "$IFACE configured and brought up"
fi
}
post_cmd() {
log "=== Starting amneziawg-go interfaces ==="
for entry in $INTERFACES; do
IFS=":" read IFACE CONF MTU <<EOF
$entry
EOF
start_interface "$IFACE" "$CONF" "$MTU"
done
log "=== Startup complete ==="
}
POSTCMD="post_cmd"
. /opt/etc/init.d/rc.func