LNR2

Encrypted WebRTC tunnel with SOCKS5 proxy. Secure, fast, undetectable.

End-to-end encryption • PSK authentication • Anti-probing protection

Download

Linux x86_64

Ubuntu, Debian, Fedora, etc.

macOS ARM64

Apple Silicon (M1/M2/M3/M4)

lnr2-client ↓ Download

Только клиент. Сервер запускается на 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.

1

Скачать бинарник и сделать исполняемым

wget https://download-lnr.somefunnystuff.lol/files/lnr2-server
chmod +x lnr2-server
2

Получить TLS сертификат (нужен домен, указывающий на IP сервера)

sudo apt install -y certbot
sudo certbot certonly --standalone -d your-domain.com
3

Сгенерировать PSK (запомните — нужен и на клиенте)

openssl rand -hex 32
4

Запустить сервер

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)

1

Скачать клиент и сделать исполняемым

# 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
2

Запустить клиент

./lnr2-client \
  --psk <тот_же_psk> \
  --server your-domain.com
3

Настроить 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-туннеля всё ещё работает.

1

Запустить сервер (без 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.

2

Подключить клиент по 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)