Как установить и настроить OpenVPN на VPS
OpenVPN — проверенный годами способ поднять личный VPN на своём сервере: зрелый протокол, работает почти в любой сети, легко проходит там, где UDP режут. Ниже — как установить и настроить OpenVPN на VPS с нуля, получить рабочий клиентский конфиг и не наступить на типовые грабли с фаерволом и маршрутизацией.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что нужно перед установкой
Понадобится VPS с чистым публичным IP и root-доступом. Подойдёт минимальная конфигурация: 1 ядро и 1 ГБ RAM с запасом хватает на десяток клиентов, потому что вся работа OpenVPN — это шифрование и пересылка трафика, а не тяжёлые вычисления. Система — свежая Ubuntu 22.04/24.04 или Debian 12. Сначала обновите пакеты, чтобы дальше не ловить конфликты версий:
apt update && apt upgrade -y
Заранее решите, какой транспорт использовать. UDP быстрее и лучше подходит для повседневного трафика; TCP медленнее из-за двойного контроля доставки, но надёжнее пролезает через строгие сети и корпоративные прокси. По умолчанию берите UDP на порту 1194, а TCP на порту 443 держите в уме как запасной вариант для сетей, где VPN-порты блокируют. Ещё до установки проверьте, что у сервера есть корректное системное время (timedatectl) — рассинхрон часов ломает проверку сертификатов и даёт непонятные ошибки подключения.
Быстрая установка скриптом
Ручная сборка PKI, серверного и клиентских конфигов занимает время и легко приводит к ошибкам в цепочке сертификатов. Практичнее использовать проверенный установочный скрипт openvpn-install, который сам поднимет центр сертификации, сгенерирует ключи и отдаст готовый профиль .ovpn. Это не «магия ради магии»: скрипт делает ровно то, что вы сделали бы руками, только без опечаток.
wget https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh
Скрипт задаст несколько вопросов: внешний IP или домен, протокол (UDP/TCP), порт, DNS для клиентов и имя первого клиента. На всё, кроме имени клиента, в большинстве случаев можно оставлять значения по умолчанию. Если сервер за NAT и вы знаете только внешний адрес, укажите его вручную, когда скрипт спросит про публичный IP. По завершении в домашней директории появится файл вида client.ovpn — это и есть готовый профиль для подключения, в нём уже зашиты сертификаты и настройки.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для OpenVPNЧто делает скрипт под капотом
Полезно понимать, что именно настроено, чтобы потом не гадать при отладке. Скрипт создаёт PKI на базе easy-rsa, кладёт серверный конфиг в /etc/openvpn/server.conf, включает IP-форвардинг в /etc/sysctl.conf и добавляет правило NAT, чтобы трафик клиентов выходил в интернет через внешний интерфейс сервера. Также он поднимает системный сервис openvpn-server@server и ставит его в автозапуск, поэтому после перезагрузки VPN поднимется сам. Проверить состояние службы можно так:
systemctl status openvpn-server@server
journalctl -u openvpn-server@server -n 30 --no-pager
Если статус active (running) и в логе нет строк с ERROR или TLS handshake failed — сервер готов принимать подключения. В логе также видно, какие клиенты подключаются и с каких адресов, что удобно для контроля.
Фаервол и порты
Даже при рабочем сервисе клиент не подключится, если порт закрыт. Откройте порт OpenVPN и, при UDP-транспорте, укажите именно UDP, а заодно не забудьте оставить открытым SSH, чтобы не потерять доступ к серверу:
ufw allow 1194/udp
ufw allow OpenSSH
ufw enable
Отдельно проверьте облачную панель провайдера: во многих облаках есть внешние security groups, и правило для порта 1194 нужно добавить и там. Локальный ufw про них не знает, и это самая частая причина ситуации «сервер работает, статус active, а подключиться не могу». Убедитесь также, что порт действительно слушается процессом OpenVPN:
ss -lunp | grep 1194
Если строки нет, сервис не поднялся — смотрите лог. Если строка есть, но клиент всё равно висит на Connecting, проблема почти наверняка во внешнем фаерволе облака.
Подключение клиента и новые профили
Скачайте client.ovpn на устройство любым безопасным способом, например через scp, и импортируйте в клиент OpenVPN — есть приложения под Windows, macOS, Linux, Android и iOS. Каждому устройству лучше выдавать отдельный профиль: так проще отозвать доступ конкретного гаджета, не трогая остальных, и понятнее, кто именно подключён. Чтобы добавить нового клиента или отозвать старый сертификат, запустите скрипт повторно — он покажет меню с пунктами «добавить» и «отозвать»:
./openvpn-install.sh
Раздавать один и тот же профиль на несколько устройств технически можно, но при одновременном подключении с одинаковым сертификатом возможны разрывы и конфликты, поэтому для каждого гаджета делайте свой .ovpn. Профили — это ключи доступа, храните их как пароли и не пересылайте по открытым каналам.
Проверка и тонкая настройка
После подключения убедитесь, что трафик действительно идёт через сервер: на клиенте откройте любой сервис проверки IP — он должен показать адрес вашего VPS, а не домашний. Если IP изменился, но сайты по именам не открываются, дело в DNS: в серверном конфиге проверьте строки push "dhcp-option DNS ..." и при необходимости подставьте рабочий резолвер. Для повышения устойчивости в сложных сетях переведите сервер на TCP-порт 443 — трафик станет неотличим от обычного HTTPS и пройдёт даже там, где стандартные VPN-порты режут; платой будет чуть большая задержка. Отдельно стоит проверить утечку DNS: даже при рабочем туннеле некоторые системы продолжают спрашивать имена у провайдерского резолвера в обход VPN. Если тест на DNS-утечки показывает адрес вашего провайдера, добавьте в клиентский конфиг строку block-outside-dns (для Windows) или задайте DNS явно в настройках сети. Ещё один нюанс — MTU: если крупные страницы и загрузки виснут, а лёгкие открываются, добавьте в конфиг tun-mtu 1400 и проверьте снова, это классический симптом фрагментации пакетов в мобильных и PPPoE-сетях.
Для стабильной работы под нагрузкой важен и сам сервер: под постоянный VPN берите VPS с гарантированной полосой и чистым IP. У MAATRIX такой можно арендовать в США или Европе с оплатой из России картой, СБП или криптой, поэтому иностранная карта для оплаты не нужна.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для OpenVPNОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
UDP или TCP выбрать для OpenVPN?
По умолчанию UDP — он быстрее. TCP, лучше на порту 443, берите, если сеть режет VPN-трафик: он маскируется под обычный HTTPS, но добавляет небольшую задержку.
Подключился, но интернета нет — в чём дело?
Не работает NAT или форвардинг. Проверьте net.ipv4.ip_forward=1 и правило MASQUERADE на внешнем интерфейсе сервера, имя интерфейса узнайте через ip route get 8.8.8.8.
Как добавить второе устройство?
Запустите openvpn-install.sh повторно и выберите пункт добавления клиента — скрипт выдаст отдельный .ovpn для нового устройства.
Хватит ли минимального тарифа VPS?
Да, для личного VPN на несколько клиентов достаточно 1 ядра и 1 ГБ RAM — OpenVPN только шифрует и пересылает трафик, тяжёлых вычислений нет.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.