From 82907f3cc60cdb5a59aafe2633ec99c519f916bb Mon Sep 17 00:00:00 2001 From: samosvalishe Date: Mon, 7 Sep 2026 08:39:54 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D1=81=D0=BE=D0=B1=D1=81=D1=82=D0=B2?= =?UTF-8?q?=D0=B5=D0=BD=D0=BD=D1=8B=D0=B9=20iface=20=D0=B4=D0=BB=D1=8F=20a?= =?UTF-8?q?wg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/awg/start.sh | 7 +++++-- docs/deploy.md | 11 +++++++---- scripts/install.sh | 33 +++++++++++++++++++++++---------- 3 files changed, 35 insertions(+), 16 deletions(-) diff --git a/docker/awg/start.sh b/docker/awg/start.sh index c3fef0f..f162078 100644 --- a/docker/awg/start.sh +++ b/docker/awg/start.sh @@ -3,8 +3,11 @@ # `ft-awg-start sync` - применить правки conf к живому интерфейсу (docker exec с хоста). set -euo pipefail -CONF="${AWG_CONF:-/etc/awg/awg0.conf}" -IFACE="${AWG_IFACE:-awg0}" +IFACE="${AWG_IFACE:-ftawg0}" +CONF="${AWG_CONF:-/etc/awg/${IFACE}.conf}" +if [ ! -f "$CONF" ] && [ -f "/etc/awg/awg0.conf" ]; then + CONF="/etc/awg/awg0.conf" +fi # Значения ключа из [Interface] (до первого [Peer]), по одному на строку. _iface_vals() { diff --git a/docs/deploy.md b/docs/deploy.md index 1acdc43..86e629d 100644 --- a/docs/deploy.md +++ b/docs/deploy.md @@ -88,13 +88,16 @@ openssl rand -hex 32 image: ghcr.io/samosvalishe/freeturn-awg:latest container_name: freeturn-awg network_mode: "host" + environment: + - AWG_IFACE=ftawg0 + - AWG_LOG_LEVEL=verbose cap_add: - NET_ADMIN devices: - /dev/net/tun restart: unless-stopped volumes: - - /opt/free-turn-proxy/awg/awg0.conf:/etc/awg/awg0.conf:ro + - /opt/free-turn-proxy/awg/ftawg0.conf:/etc/awg/ftawg0.conf:ro ``` 4. Включите IP forwarding на хосте: ```bash @@ -170,12 +173,12 @@ DisableCookies = on ``` - **Прямой туннель (Direct AWG):** откройте порт `51820/udp` в файрволе, чтобы клиенты AmneziaWG могли подключаться напрямую к серверу без задержек релея. -- **Горячая синхронизация пиров:** добавьте `[Peer]` в `awg0.conf` и выполните `docker exec freeturn-awg ft-awg-start sync`. Существующие соединения не прерываются! +- **Горячая синхронизация пиров:** добавьте `[Peer]` в `ftawg0.conf` и выполните `docker exec freeturn-awg ft-awg-start sync`. Существующие соединения не прерываются! | Переменная | По умолчанию | Описание | | --- | --- | --- | -| `AWG_CONF` | `/etc/awg/awg0.conf` | Путь к конфигу в контейнере | -| `AWG_IFACE` | `awg0` | Имя интерфейса | +| `AWG_CONF` | `/etc/awg/ftawg0.conf` | Путь к конфигу в контейнере | +| `AWG_IFACE` | `ftawg0` | Имя интерфейса | | `AWG_LOG_LEVEL` | `error` | Логи демона: `error` \| `verbose` \| `silent` | NAT настраивается только для IPv4 (контейнер использует network_mode: host и добавляет правила iptables в стек хоста). diff --git a/scripts/install.sh b/scripts/install.sh index c42f16b..07093ea 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -37,7 +37,7 @@ GUM_VERSION="0.17.0" # AmneziaWG и WireGuard AWG_DIR="${PREFIX}/awg" -AWG_IFACE="awg0" +AWG_IFACE="${FT_AWG_IFACE:-ftawg0}" AWG_CONF="${AWG_DIR}/${AWG_IFACE}.conf" AWG_NET="10.13.13" WG_DIR="${FT_WG_DIR:-/etc/wireguard}" @@ -1506,13 +1506,17 @@ apply_docker() { echo " image: ${AWG_IMAGE}" echo " container_name: ${AWG_CONTAINER}" echo " network_mode: \"host\"" + echo " environment:" + echo " - AWG_IFACE=${AWG_IFACE}" + echo " - AWG_CONF=/etc/awg/${AWG_IFACE}.conf" + echo " - AWG_LOG_LEVEL=verbose" echo " cap_add:" echo " - NET_ADMIN" echo " devices:" echo " - /dev/net/tun" echo " restart: unless-stopped" echo " volumes:" - echo " - ${AWG_CONF}:/etc/awg/awg0.conf:ro" + echo " - ${AWG_CONF}:/etc/awg/${AWG_IFACE}.conf:ro" fi } > "$COMPOSE_FILE" chmod 0600 "$COMPOSE_FILE" @@ -2372,19 +2376,28 @@ apply() { print_summary() { local ext_ip; ext_ip="$(get_public_ip)" echo - if [ "$HAS_GUM" = 1 ]; then - gum format <