7.5 KiB
Быстрый Старт
Для стабильной работы мы сразу настроим обфускацию трафика.
Что Нужно
- VPS с публичным IP, VPN-сервер (например, WireGuard или AmneziaWG) слушает локальный порт (например,
127.0.0.1:51820/udp). - Активная ссылка VK Calls:
https://vk.com/call/join/...— создайте сами (звонок завершать нельзя). - VPN-клиент на вашем устройстве:
Endpoint = 127.0.0.1:9000(порт9000взят для примера),MTU = 1280(крайне важно для компенсации накладных расходов сети).
Шаг 1: Генерация ключа обфускации
Сгенерируйте секретный ключ (64 символа), который замаскирует ваш VPN-трафик под обычный голосовой звонок.
Вам даже не нужно ничего скачивать для этого. В любом терминале Linux/macOS просто выполните:
openssl rand -hex 32
(Если на сервере нет openssl, используйте: head -c 32 /dev/urandom | xxd -p -c 32)
Альтернативно, ключ можно сгенерировать через сам бинарник
btpкомандой./server -gen-obf-key, либо через Docker:docker run --rm ghcr.io/samosvalishe/btp:latest -gen-obf-key.
Скопируйте полученный 64-символьный ключ. Далее в примерах он будет обозначен как <ВАШ_КЛЮЧ>.
Шаг 2: Запуск Сервера на VPS
Мы настоятельно рекомендуем запускать сервер через Docker. Это гарантирует его работу в фоне 24/7 после закрытия терминала.
Вариант А: Запуск через Docker Compose (Рекомендуется)
Если Docker еще не установлен, установите его (команды установки есть в deploy.md).
Создайте файл docker-compose.yml в папке /opt/btp:
services:
vk-turn-proxy:
image: ghcr.io/samosvalishe/btp:latest
container_name: btp
network_mode: "host"
restart: unless-stopped
environment:
- CONNECT_ADDR=127.0.0.1:51820
- LISTEN_ADDR=0.0.0.0:56000
- MODE=udp
- OBF_PROFILE=rtpopus
- OBF_KEY=<ВАШ_КЛЮЧ>
Запустите сервер в фоне командой: docker compose up -d
Вариант Б: Ручной запуск бинарника (для быстрого теста)
Если вы просто хотите протестировать туннель без установки Docker, скачайте бинарник и запустите его напрямую:
sudo mkdir -p /opt/btp
sudo curl -L -o /opt/btp/server https://github.com/samosvalishe/btp/releases/latest/download/server-linux-amd64
sudo chmod +x /opt/btp/server
/opt/btp/server -listen 0.0.0.0:56000 -connect 127.0.0.1:51820 -obf-profile rtpopus -obf-key <ВАШ_КЛЮЧ>
Внимание: Команда выше запустит сервер только в текущем окне терминала. Для постоянной работы (если вы выбрали Вариант Б) настройте systemd-службу по инструкции из Развёртывания (deploy.md).
Важно про флаг
-connect: В параметре-connect 127.0.0.1:51820вы должны указать IP и порт, на котором реально работает ваш VPN-сервер (WireGuard, AmneziaWG, VLESS и т.д.).51820— это стандартный порт WireGuard, но если у вас настроен другой порт, обязательно укажите свой.
Примечание: Внешний порт прослушивания (
56000в примере) и порт клиента (9000далее по тексту) — это примеры. Вы можете использовать любые свободные порты. Убедитесь, что внешний порт (например,56000/udp) открыт в файрволе вашего VPS.
Шаг 3: Запуск Клиента и Маршруты (ПК)
Туннель замыкается сам на себя, если VPN (WireGuard) перехватывает весь трафик. Чтобы прокси btp мог общаться с TURN-серверами напрямую, нужен скрипт добавления маршрутов-исключений.
Linux:
curl -L -o client https://github.com/samosvalishe/btp/releases/latest/download/client-linux-amd64
chmod +x client
./client -listen 127.0.0.1:9000 -peer <vps_ip>:56000 -link "<vk-link>" -obf-profile rtpopus -obf-key <ВАШ_КЛЮЧ> -debug 2>&1 | ./scripts/routes.sh
Windows (PowerShell от администратора):
Invoke-WebRequest -Uri https://github.com/samosvalishe/btp/releases/latest/download/client-windows-amd64.exe -OutFile client.exe
.\client.exe -listen 127.0.0.1:9000 -peer <vps_ip>:56000 -link "<vk-link>" -obf-profile rtpopus -obf-key <ВАШ_КЛЮЧ> -debug 2>&1 | .\scripts\routes.ps1
macOS:
# Для Apple Silicon (M1/M2) скачайте client-darwin-arm64, для Intel — client-darwin-amd64
./client -listen 127.0.0.1:9000 -peer <vps_ip>:56000 -link "<vk-link>" -obf-profile rtpopus -obf-key <ВАШ_КЛЮЧ> -debug 2>&1 | ./scripts/routes-macos.sh
Когда скрипт напечатает Ensuring route to ... — включайте ваш VPN-клиент.
Шаг 4: Мобильные Устройства
На мобильных сетях есть жесткая специфика:
- Маршруты не нужны. Но приложение с клиентом (Termux) обязательно нужно добавить в исключения VPN-клиента.
- Перехват DNS. Мобильные операторы блокируют сторонние DNS, поэтому обязательно указывайте DNS оператора связи через
-dns-servers(узнать его можно в настройках APN телефона).
termux-wake-lock
# Скачивание: curl -L -o client https://github.com/samosvalishe/btp/releases/latest/download/client-android-arm64 && chmod +x client
# Обязательно укажите ваш ключ и DNS
./client -listen 127.0.0.1:9000 -peer <vps_ip>:56000 -link "<vk-link>" -obf-profile rtpopus -obf-key <ВАШ_КЛЮЧ> -dns-servers <ip_dns_мобильного_оператора>
Совет: Транспорт до TURN-реле по умолчанию происходит по протоколу TCP/TLS (это транспорт самого туннеля, внутри него может идти любой UDP-трафик WireGuard). Мы рекомендуем всегда оставлять этот TCP-транспорт по умолчанию, так как многие мобильные провайдеры и системы DPI агрессивно режут голый UDP трафик. Не используйте флаг
-transport udpбез крайней необходимости.