mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
fix: собственный iface для awg
This commit is contained in:
+5
-2
@@ -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() {
|
||||
|
||||
+7
-4
@@ -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 в стек хоста).
|
||||
|
||||
+23
-10
@@ -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 <<EOF | gum style --border rounded --border-foreground "$MD_SUCCESS" --padding "1 2"
|
||||
# ✔ Установка успешно завершена!
|
||||
|
||||
$([ "$INSTALL_FREETURN" = "1" ] && echo "- **Сервер FreeTurn:** \`${ext_ip}:${LISTEN_PORT}\` (\`${OBF_PROFILE}\`)")
|
||||
$([ "$INSTALL_AWG" = "1" ] && echo "- **AmneziaWG 3.1:** порт \`${BACKEND_PORT}\` $([ "$AWG_DIRECT_PORT" = "1" ] && echo "(прямой доступ открыт)"))
|
||||
local summary="# ✔ Установка успешно завершена!
|
||||
|
||||
"
|
||||
if [ "$INSTALL_FREETURN" = "1" ]; then
|
||||
summary+="- **Сервер FreeTurn:** \`${ext_ip}:${LISTEN_PORT}\` (\`${OBF_PROFILE}\`)
|
||||
"
|
||||
fi
|
||||
if [ "$INSTALL_AWG" = "1" ]; then
|
||||
summary+="- **AmneziaWG 3.1:** порт \`${BACKEND_PORT}\`"
|
||||
[ "$AWG_DIRECT_PORT" = "1" ] && summary+=" (прямой доступ открыт)"
|
||||
summary+="
|
||||
"
|
||||
fi
|
||||
summary+="
|
||||
---
|
||||
### Управление клиентами
|
||||
\`sudo bash install.sh client add [name]\` - добавить клиента
|
||||
\`sudo bash install.sh client list\` - список клиентов
|
||||
\`sudo bash install.sh client qr [name]\` - показать QR-код
|
||||
EOF
|
||||
\`sudo bash install.sh client qr [name]\` - показать QR-код"
|
||||
|
||||
if [ "$HAS_GUM" = 1 ]; then
|
||||
printf '%s\n' "$summary" | gum format | gum style --border rounded --border-foreground "$MD_SUCCESS" --padding "1 2"
|
||||
else
|
||||
echo "========================================================"
|
||||
echo " Установка успешно завершена!"
|
||||
|
||||
Reference in New Issue
Block a user