Files
hackdiaz-dev 513e462fc9 fix(installer): firewalld support and gum detection
Open and close ports through firewalld; detect the gum binary instead of the wrapper function
2026-10-10 16:18:38 +03:00

108 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Развёртывание сервера
## Установка скриптом (рекомендуется)
```bash
curl -fsSL https://raw.githubusercontent.com/hackdiaz-dev/free-turn-proxy/master/scripts/install.sh | sudo bash
```
Мастер спросит:
1. **VPN на сервере** - новый WireGuard (скрипт поднимет его сам) или уже установленный VPN (Amnezia, wg-easy, 3x-ui и т.п.: указываете его `host:port`).
2. **Запуск** - `docker` или `systemd`.
3. **Порт и обфускация.**
В конце - ссылка `freeturn://` для приложения (и WireGuard-конфиг, если VPN новый).
Управление:
```bash
freeturn # меню: клиенты, настройки, обновление, логи, удаление
freeturn client add phone # новый клиент и его ссылка
freeturn client list
freeturn client qr phone # показать ссылку и QR ещё раз
freeturn client remove phone
```
Без вопросов:
```bash
curl -fsSL https://raw.githubusercontent.com/hackdiaz-dev/free-turn-proxy/master/scripts/install.sh | \
sudo bash -s -- -y --backend=new --method=docker
```
Все флаги: `freeturn --help`.
## Ручная установка
Ключ обфускации (одинаковый на сервере и клиенте): `openssl rand -hex 32`.
### Docker Compose
```yaml
services:
free-turn-proxy:
image: ghcr.io/hackdiaz-dev/free-turn-proxy:latest
network_mode: host
restart: unless-stopped
environment:
- CONNECT_ADDR=127.0.0.1:51820 # ваш VPN
- LISTEN_ADDR=0.0.0.0:56000
- OBF_PROFILE=rtpopus3
- OBF_KEY=<ВАШ_КЛЮЧ>
```
| Переменная | По умолчанию | |
| --- | --- | --- |
| `CONNECT_ADDR` | обязательна | адрес вашего VPN |
| `LISTEN_ADDR` | `0.0.0.0:56000` | внешний адрес |
| `MODE` | `udp` | `udp` (WireGuard) \| `tcp` (Xray/VLESS), как на клиенте |
| `OBF_PROFILE` | `none` | `none` \| `rtpopus` \| `rtpopus2` \| `rtpopus3` |
| `OBF_KEY` | - | ключ обфускации |
| `CLIENTS_FILE` | - | список разрешённых Client ID |
| `KCP_*` | - | тюнинг `MODE=tcp`, см. `docs/flags.md` |
| `DEBUG` | `false` | подробные логи |
### systemd
```bash
sudo mkdir -p /opt/free-turn-proxy
sudo curl -L -o /opt/free-turn-proxy/server \
https://github.com/hackdiaz-dev/free-turn-proxy/releases/latest/download/server-linux-amd64
sudo chmod +x /opt/free-turn-proxy/server
```
`/etc/systemd/system/free-turn-proxy.service`:
```ini
[Unit]
Description=Free Turn Proxy
After=network-online.target
[Service]
ExecStart=/opt/free-turn-proxy/server -listen 0.0.0.0:56000 -connect 127.0.0.1:51820 -obf-profile rtpopus3 -obf-key <ВАШ_КЛЮЧ>
Restart=on-failure
[Install]
WantedBy=multi-user.target
```
```bash
sudo systemctl enable --now free-turn-proxy
```
### Доступ по Client ID
Без списка подключиться может любой, у кого есть ключ обфускации. Список:
```bash
sudo CLIENTS_FILE=/opt/free-turn-proxy/clients.json \
/opt/free-turn-proxy/server clients add $(openssl rand -hex 16) phone
```
Запуск с `-clients-file /opt/free-turn-proxy/clients.json` (Docker: `CLIENTS_FILE` + volume). На клиенте - `-client-id` или ссылка `freeturn://`.
## Порт
Откройте внешний порт по **UDP** (при `MODE=tcp` тоже): `sudo ufw allow 56000/udp` (firewalld: `sudo firewall-cmd --permanent --add-port=56000/udp && sudo firewall-cmd --reload`). Скрипт делает это сам.