Быстрый старт сервера
Запустите сервер менее чем за 10 минут.
Предварительные требования
Заголовок раздела «Предварительные требования»- Машина с публичным IP-адресом (Linux, macOS или FreeBSD)
- Открытый порт 443 в брандмауэре/группе безопасности
- Доступ root или sudo
1. Установка
Заголовок раздела «1. Установка»Универсальный установщик берёт на себя всё:
curl -fsSL https://assets.rvpn.org/install.sh | sudo bash -s -- --setup --serverОн автоматически определит вашу платформу, скачает нужный бинарник, проверит контрольную сумму и проведёт вас через настройку сервера (ключи, TLS, TUN-режим и т. д.).
Или вручную:
# Linux x86_64 (большинство VPS)curl -LO https://assets.rvpn.org/1.3.1/rvpn-server-x86_64-linux-gnuchmod +x rvpn-server-x86_64-linux-gnusudo mv rvpn-server-x86_64-linux-gnu /usr/local/bin/rvpn-server
# Linux ARM64curl -LO https://assets.rvpn.org/1.3.1/rvpn-server-aarch64-linux-gnuchmod +x rvpn-server-aarch64-linux-gnusudo mv rvpn-server-aarch64-linux-gnu /usr/local/bin/rvpn-server
# FreeBSDfetch https://assets.rvpn.org/1.3.1/rvpn-server-x86_64-freebsdchmod +x rvpn-server-x86_64-freebsdsudo mv rvpn-server-x86_64-freebsd /usr/local/bin/rvpn-serverСм. Установка сервера для полного списка бинарников и проверки контрольных сумм.
Проверьте работу:
rvpn-server --help2. Сгенерируйте ключи сервера
Заголовок раздела «2. Сгенерируйте ключи сервера»Обе команды пишут в пути, заданные в server.toml. Направьте их в /etc/rvpn/, создав сначала минимальный конфиг, затем выполните:
sudo mkdir -p /etc/rvpnsudo tee /etc/rvpn/server.toml <<'EOF' >/dev/null[server]identity_key_file = "/etc/rvpn/server_identity.key"prekey_bundle_file = "/etc/rvpn/prekey-bundle.json"EOF
sudo rvpn-server -c /etc/rvpn/server.toml keygensudo rvpn-server -c /etc/rvpn/server.toml prekey-bundleЭто создаст три файла в /etc/rvpn/:
| Файл | Назначение |
|---|---|
server_identity.key | Долгосрочный ключ идентификации сервера (Ed25519) — храните в секрете |
prekey-bundle.json | Публичный набор prekey — распространяйте среди клиентов |
prekey-bundle.private.json | Приватный prekey-материал — храните в секрете |
Без флага -c обе команды пишут в текущий рабочий каталог (server_identity.key / prekey-bundle.json), что подходит для тестов, но легко потерять.
Важно: Храните
server_identity.keyиprekey-bundle.private.jsonв безопасности. Делайте резервные копии. При утере клиентам понадобится новый набор prekey.
3. Автоматический TLS
Заголовок раздела «3. Автоматический TLS»rvpn-server сам получает и продлевает сертификат Let’s Encrypt по TLS-ALPN-01-challenge. Тот же слушатель :443, без порта :80, без certbot, без внешнего таймера — вся машина состояний живёт внутри процесса сервера.
Добавьте в /etc/rvpn/server.toml:
[server.acme]enabled = truedomains = ["your-domain.com"]cache_dir = "/var/lib/rvpn/acme"Создайте каталог кэша (он должен переживать рестарты, чтобы не бить в rate limits Let’s Encrypt после каждой перезагрузки):
sudo mkdir -p /var/lib/rvpn/acmesudo chmod 700 /var/lib/rvpn/acmeПредусловия — проверьте, прежде чем включать:
your-domain.comдолжен резолвиться (A/AAAA) на публичный IP этого сервера.- Входящий TCP
:443должен быть доступен валидаторам Let’s Encrypt. - На
:443не должно быть ничего другого (challenge использует тот же слушатель).
Первый запуск? На первом старте поставьте staging = true в [server.acme], чтобы прогнать всю цепочку через staging-окружение Let’s Encrypt без rate limits. Если в логах появилось ACME event: CertCacheStore — переключайтесь на staging = false и возьмите свежий cache_dir для production. Полный workflow, три важные для нас LE rate limits и ритм продлений — в reference → [server.acme].
Хотите использовать свой сертификат — например, из существующего certbot или обратного прокси? Пропустите этот раздел и укажите tls_cert_file / tls_key_file в [server], как описано в reference → server-config. ACME и статические сертификаты взаимоисключающие; сервер откажется стартовать, если заданы оба.
4. Включите IP-форвардинг
Заголовок раздела «4. Включите IP-форвардинг»rVPN нужен IP-форвардинг для маршрутизации трафика от имени клиентов:
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.confsudo sysctl -p5. Запустите сервер
Заголовок раздела «5. Запустите сервер»sudo rvpn-server -c /etc/rvpn/server.tomlВы должны увидеть вывод вроде:
INFO Starting rVPN Server on 0.0.0.0:443INFO Server listening on wss://0.0.0.0:443INFO WebSocket endpoint: /api/v1/wsINFO WebSocket endpoint (desktop SOCKS): /api/v1/wsINFO WebSocket endpoint (mobile TUN): /api/v1/ws/tunINFO WebSocket endpoint (DNS proxy): /api/v1/ws/dnsINFO WebSocket endpoint (SOCKS5 mux): /api/v1/ws/muxУбедившись, что всё работает, настройте systemd-сервис для автозапуска.
6. Распространите набор prekey
Заголовок раздела «6. Распространите набор prekey»Клиентам нужен prekey-bundle.json для подключения. Передайте его вашим пользователям безопасно (шифрованная электронная почта, безопасный мессенджер и т. д.) — этот файл публичный и не требует секретности, но должен быть настоящим файлом с вашего сервера.
Дальнейшие шаги
Заголовок раздела «Дальнейшие шаги»- Запуск как systemd-сервис
- Настройка обратного прокси — Caddy, nginx, HAProxy, сайт-приманка
- Полные опции конфигурации сервера
- TUN-режим — полнотуннельный VPN с NAT
- Сценарии использования — практические руководства для типичных развёртываний
- Устранение неполадок — решения типичных проблем