mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
513e462fc9
Open and close ports through firewalld; detect the gum binary instead of the wrapper function
108 lines
3.7 KiB
Markdown
108 lines
3.7 KiB
Markdown
# Развёртывание сервера
|
||
|
||
## Установка скриптом (рекомендуется)
|
||
|
||
```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`). Скрипт делает это сам.
|