Развернуть собственный VPN-сервер — задача, которая решается за 15 минут. OpenVPN остаётся стандартом индустрии для создания защищённых туннелей: он проверен временем, поддерживает любые платформы и даёт полный контроль над инфраструктурой. В этой статье — инструкция по установке OpenVPN на VPS с нуля.
Что такое OpenVPN
OpenVPN — open-source решение для организации виртуальных частных сетей. Работает на транспортном уровне (SSL/TLS), поддерживает TCP и UDP, использует OpenSSL для шифрования. Сервер может обслуживать сотни клиентов одновременно, а конфигурация гибко настраивается под любые сценарии: от доступа к корпоративной сети до обхода региональных блокировок.
В отличие от WireGuard, OpenVPN сложнее в настройке, но даёт больше возможностей: разные порты, протоколы, методы аутентификации и фильтрации трафика.
Зачем self-hosted
Облачные VPN-сервисы удобны, но имеют минусы:
- Логирование трафика (многие сервисы хранят метаданные)
- Ограничения по скорости и числу устройств
- Цена за подписку часто превышает стоимость VPS
Self-hosted OpenVPN даёт:
- Полную приватность — никто, кроме вас, не видит логи
- Неограниченное число клиентов (зависит от мощности VPS)
- Экономию при регулярном использовании — VPS за $2-3/мес дешевле любого платного сервиса
- Возможность кастомизации: свои сертификаты, порты, протоколы
Минимальные требования
- CPU: 1 ядро (x86 или ARM)
- RAM: 256 МБ (рекомендуется 512 МБ для 10+ клиентов)
- Диск: 2 ГБ (система + конфиги)
- ОС: Ubuntu 20.04/22.04/24.04 или Debian 11/12
- Сеть: публичный IP, открытые порты (по умолчанию 1194/udp)
Для 50+ одновременных подключений — 2 ядра и 1 ГБ RAM.
Какой VPS выбрать
Для запуска подойдёт любой VPS с Linux. Рекомендуем:
- Timeweb Cloud — российское облако, NVMe, от 800 ₽/мес
- RackNerd — от $21.99/год, зарубежная локация
Установка на Ubuntu/Debian
Все команды выполняются от root или через sudo. Проверьте версию ОС:
```bash lsb_release -a ```
Шаг 1. Обновление системы и установка зависимостей
```bash apt update && apt upgrade -y apt install wget curl iptables-persistent -y ```
Шаг 2. Загрузка скрипта установки OpenVPN
Используем официальный скрипт от Nyr — самый простой и проверенный способ:
```bash wget https://git.io/vpn -O openvpn-install.sh chmod +x openvpn-install.sh ```
Шаг 3. Запуск интерактивной установки
```bash bash openvpn-install.sh ```
Скрипт задаст несколько вопросов:
- IP-адрес — ваш публичный IP (можно оставить автоопределение)
- Порт — по умолчанию 1194, можно изменить (например, 443 для обхода DPI)
- Протокол — UDP (рекомендуется) или TCP
- DNS — выберите провайдера (Cloudflare, Google или кастомный)
- Имя клиента — первое клиентское подключение (например, `client1`)
После ответов скрипт:
- Установит OpenVPN
- Сгенерирует сертификаты CA и сервера
- Создаст конфигурационный файл сервера
- Сгенерирует клиентский .ovpn файл
Шаг 4. Открытие порта в файрволе
Если используется ufw:
```bash ufw allow 1194/udp ufw enable ```
Если iptables:
```bash iptables -A INPUT -p udp --dport 1194 -j ACCEPT netfilter-persistent save ```
Шаг 5. Запуск и включение автозагрузки
```bash systemctl start openvpn-server@server systemctl enable openvpn-server@server systemctl status openvpn-server@server ```
Если статус `active (running)` — всё работает.
Шаг 6. Настройка форвардинга трафика (NAT)
Чтобы клиенты могли выходить в интернет через VPN:
```bash echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf sysctl -p ```
Проверьте правило NAT в iptables (скрипт Nyr добавляет его автоматически):
```bash iptables -t nat -L POSTROUTING ```
Должно быть правило `MASQUERADE` для сети 10.8.0.0/24.
Шаг 7. Создание дополнительных клиентов
Если нужно добавить ещё пользователей:
```bash bash openvpn-install.sh ```
Выберите опцию "Add a new client", введите имя. Скрипт создаст новый `.ovpn` файл в `/root/`.
Шаг 8. Получение клиентского файла
Конфигурационные файлы клиентов лежат в `/root/`:
```bash ls /root/*.ovpn ```
Скачайте файл, например, через SCP:
```bash scp root@ваш-сервер:/root/client1.ovpn . ```
Или скопируйте содержимое и сохраните локально:
```bash cat /root/client1.ovpn ```
Что получите в итоге
- Рабочий VPN-сервер на OpenVPN с поддержкой до 100+ одновременных клиентов (зависит от мощности VPS)
- Клиентские конфиги в формате .ovpn — совместимы с Windows, macOS, Linux, Android, iOS
- Полный контроль над логами — можно включить или отключить логирование
- Базовую защиту от DPI — если сменить порт на 443/tcp или 53/udp
Частые вопросы
1. Как обновить OpenVPN на сервере?
```bash apt update && apt upgrade openvpn -y systemctl restart openvpn-server@server ```
Скрипт Nyr ставит пакет из репозитория, поэтому обновления приходят через `apt upgrade`. Если нужна свежая версия из исходников — компилируйте вручную.
2. Как отозвать доступ клиента?
Запустите скрипт:
```bash bash openvpn-install.sh ```
Выберите "Revoke a client", укажите имя пользователя. После этого клиентский сертификат добавится в CRL (Certificate Revocation List), и подключение станет невозможным.
3. Почему клиент подключается, но интернет не работает?
Причины:
- Не включён форвардинг трафика (`net.ipv4.ip_forward=1`)
- Отсутствует правило NAT (проверьте `iptables -t nat -L POSTROUTING`)
- В клиентском конфиге не указан редирект всего трафика — добавьте `redirect-gateway def1` вручную
- DNS не настроен — проверьте `push "dhcp-option DNS 1.1.1.1"` в `/etc/openvpn/server.conf`
После исправлений перезапустите сервер:
```bash systemctl restart openvpn-server@server ```