Развёртывание сервера
August 16, 2026 · View on GitHub
Для работы сервера 24/7 его необходимо настроить как службу. Мы поддерживаем установку через скрипт (интерактивно или автоматически), а также ручную настройку через Docker или systemd.
Автоматическая установка (Рекомендуется)
Проще всего использовать официальный скрипт. Он установит зависимости, сгенерирует ключи, настроит файрвол и запустит службу.
Интерактивный режим (задаст вопросы в терминале):
curl -fsSL https://raw.githubusercontent.com/samosvalishe/free-turn-proxy/master/scripts/install.sh | sudo bash
Скрипт идемпотентен: при повторном запуске он предложит обновить, переконфигурировать или удалить сервер.
Неинтерактивный режим (для автоматизации):
# Установка через Docker (порт бэкенда 51820)
curl -fsSL https://raw.githubusercontent.com/samosvalishe/free-turn-proxy/master/scripts/install.sh | \
sudo bash -s -- -y --method docker --backend-port 51820
# Обновление до конкретной версии
sudo bash install.sh -y --update --version v1.2.3
# Полное удаление
sudo bash install.sh -y --uninstall --purge
Все доступные флаги: sudo bash install.sh --help
Ручная установка
Если вы предпочитаете контролировать каждый шаг, используйте инструкции ниже. Сначала сгенерируйте 64-символьный hex-ключ обфускации (он должен совпадать на сервере и клиенте):
openssl rand -hex 32
В примерах ниже он обозначен как <ВАШ_КЛЮЧ>.
Способ 1: Docker Compose
- Установите Docker:
curl -fsSL https://get.docker.com | sudo sh - Создайте директорию и
docker-compose.yml:mkdir -p /opt/free-turn-proxy && cd /opt/free-turn-proxy nano docker-compose.yml - Вставьте конфигурацию:
services: free-turn-proxy: image: ghcr.io/samosvalishe/free-turn-proxy:latest container_name: free-turn-proxy network_mode: "host" # Важно для доступа к локальному VPN (127.0.0.1) restart: unless-stopped environment: - CONNECT_ADDR=127.0.0.1:51820 # Порт ВАШЕГО VPN (WG/AmneziaWG) - LISTEN_ADDR=0.0.0.0:56000 # Внешний порт - OBF_PROFILE=rtpopus # Обязательная маскировка - OBF_KEY=<ВАШ_КЛЮЧ> # Ваш ключ # - CLIENTS_FILE=/opt/free-turn-proxy/clients.json # Для авторизации # volumes: # - /opt/free-turn-proxy/clients.json:/opt/free-turn-proxy/clients.json - Запустите:
docker compose up -d
Способ 2: systemd (Без Docker)
- Скачайте бинарник:
(Для ARM заменитеsudo mkdir -p /opt/free-turn-proxy sudo curl -L -o /opt/free-turn-proxy/server https://github.com/samosvalishe/free-turn-proxy/releases/latest/download/server-linux-amd64 sudo chmod +x /opt/free-turn-proxy/server-amd64на-arm64) - Создайте службу:
sudo nano /etc/systemd/system/free-turn-proxy.service - Вставьте конфигурацию:
[Unit] Description=Free TURN Proxy Server After=network.target [Service] Type=simple ExecStart=/opt/free-turn-proxy/server -listen 0.0.0.0:56000 -connect 127.0.0.1:51820 -obf-profile rtpopus -obf-key <ВАШ_КЛЮЧ> Restart=always RestartSec=5 User=nobody Group=nogroup [Install] WantedBy=multi-user.target - Запустите:
sudo systemctl daemon-reload && sudo systemctl enable --now free-turn-proxy.service
Настройка Файрвола
Откройте внешний порт (сервер слушает по UDP):
sudo ufw allow 56000/udp
# Или iptables: sudo iptables -I INPUT -p udp --dport 56000 -j ACCEPT
Авторизация по Client ID (Опционально)
По умолчанию доступ открыт всем, кто знает -obf-key. Чтобы ограничить доступ:
- Создайте пустой список:
echo "[]" | sudo tee /opt/free-turn-proxy/clients.json - Включите авторизацию:
- Docker: раскомментируйте
CLIENTS_FILEиvolumesвdocker-compose.yml, затемdocker compose up -d. - systemd: добавьте флаг
-clients-file /opt/free-turn-proxy/clients.jsonвExecStartи перезапустите службу.
- Docker: раскомментируйте
- Добавляйте ID в
clients.json(см. flags.md). На клиенте используйте флаг-client-id <id>.
Переменные окружения Docker
| Переменная | По умолчанию | Описание |
|---|---|---|
CONNECT_ADDR | обязательна | IP и порт вашего VPN (бэкенда) |
LISTEN_ADDR | 0.0.0.0:56000 | Внешний адрес прослушивания |
OBF_PROFILE | none | Маскировка: none | rtpopus | rtpopus2 |
OBF_KEY | пусто | Ключ маскировки |
CLIENTS_FILE | пусто | Путь к JSON-файлу авторизации |
DEBUG | false | Включить debug-логи |
Внимание при Bridge Mode: Если вы уберете
network_mode: "host"и пробросите порты (-p 56000:56000/udp),CONNECT_ADDR=127.0.0.1:51820будет указывать внутрь контейнера. В этом случае прокси не найдет VPN. Используйте IP хоста или оставляйтеnetwork_mode: "host".