↓ Download
Linux x86_64
Ubuntu, Debian, Fedora, etc.
macOS ARM64
Apple Silicon (M1/M2/M3/M4)
Только клиент. Сервер запускается на Linux VPS.
⚡ Как это работает
Сервер (VPS)
lnr2-server на VPS за пределами РФ принимает зашифрованные WebRTC-соединения
Шифрование
X25519 + ChaCha20-Poly1305. PSK аутентификация. Трафик неотличим от видеозвонка
Клиент
lnr2-client создаёт локальный SOCKS5 прокси на 127.0.0.1:1080
1 Настройка сервера (VPS)
Нужен VPS за пределами РФ (DigitalOcean, Hetzner, Vultr и т.д.) с Ubuntu/Debian.
Скачать бинарник и сделать исполняемым
wget https://download-lnr.somefunnystuff.lol/files/lnr2-server
chmod +x lnr2-server
Получить TLS сертификат (нужен домен, указывающий на IP сервера)
sudo apt install -y certbot
sudo certbot certonly --standalone -d your-domain.com
Сгенерировать PSK (запомните — нужен и на клиенте)
openssl rand -hex 32
Запустить сервер
sudo ./lnr2-server \
--psk <ваш_psk> \
--public-ip <ip_сервера> \
--tls-cert /etc/letsencrypt/live/your-domain.com/fullchain.pem \
--tls-key /etc/letsencrypt/live/your-domain.com/privkey.pem
Сервер слушает на :443 (HTTPS signaling) и :3478 (UDP WebRTC data).
2 Настройка клиента (MacBook / Linux)
Скачать клиент и сделать исполняемым
# Linux x64:
wget https://download-lnr.somefunnystuff.lol/files/lnr2-client
# macOS ARM64 (Apple Silicon):
wget https://download-lnr.somefunnystuff.lol/files/lnr2-client-macos-arm64
mv lnr2-client-macos-arm64 lnr2-client
chmod +x lnr2-client
Запустить клиент
./lnr2-client \
--psk <тот_же_psk> \
--server your-domain.com
Настроить SOCKS5 прокси в системе
🍎 macOS
Системные настройки → Сеть → Wi-Fi → Подробнее → Прокси → SOCKS-прокси
Сервер: 127.0.0.1 Порт: 1080
🐧 Linux
В браузере (Firefox): Settings → Network → SOCKS5 proxy
127.0.0.1:1080
🌐 Для всей системы через терминал
export ALL_PROXY=socks5://127.0.0.1:1080
export HTTP_PROXY=socks5://127.0.0.1:1080
export HTTPS_PROXY=socks5://127.0.0.1:1080
🔓 Insecure mode (тестирование)
Для быстрого тестирования можно запустить без домена и без TLS — по голому IP.
⚠️ Только для тестирования! Трафик signaling не шифруется на уровне TLS. E2E шифрование WebRTC-туннеля всё ещё работает.
Запустить сервер (без TLS, на любом порту)
./lnr2-server \
--psk <ваш_psk> \
--public-ip <ip_сервера> \
--bind-signaling 0.0.0.0:8080 \
--bind-udp 0.0.0.0:3478 \
--insecure
Флаг --insecure запускает plain HTTP. Не нужны --tls-cert / --tls-key.
Подключить клиент по IP
./lnr2-client \
--psk <тот_же_psk> \
--server <ip_сервера> \
--server-port 8080 \
--insecure
Клиент подключается по http:// вместо https://. Принимает IP-адреса.
⚙️ Сборка из исходников (опционально)
Если нет готового бинарника для вашей платформы — соберите из исходников.
# 1. Установить Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
# 2. Клонировать/скопировать исходники
# (получите папку lnr2 от администратора)
# 3. Собрать
cd lnr2
cargo build --release
# 4. Бинарники будут в:
# target/release/lnr2-client
# target/release/lnr2-server
⚠️ Безопасность
- • PSK должен быть одинаковым на сервере и клиенте — это ваш общий секрет
- • Не передавайте PSK через незащищённые каналы
- • Сервер выглядит как обычный сайт конференций при зондировании
- • Весь трафик зашифрован E2E (X25519 + ChaCha20-Poly1305)