MAATRIX / Блог / OpenVPN на VPS: ставим свой сервер правильно

OpenVPN на VPS: ставим свой сервер правильно

OpenVPN на VPS: установка и настройка сервера
Блог MAATRIX · 2026-07-07

OpenVPN — проверенный годами протокол: работает почти везде, умеет TCP на 443 порту (когда UDP режут) и гибко настраивается. Разберём два пути — быстрый скрипт за 3 минуты и ручную настройку для тех, кто хочет понимать каждый шаг.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Когда выбирать OpenVPN

OpenVPN тяжелее и медленнее WireGuard, но у него есть козырь: он умеет маскироваться под обычный HTTPS-трафик на TCP-443. Там, где UDP-туннели глушат, OpenVPN на 443 часто продолжает работать.

  • Нужна работа в жёстких сетях, где режут всё, кроме 443.
  • Нужна совместимость со старым софтом и корпоративными клиентами.
  • Нужны сложные политики: сертификаты, отзыв доступа, TLS-auth.

Для личного быстрого VPN обычно берут WireGuard, а OpenVPN — когда важнее «пролезть», чем «быстро». Ещё один плюс OpenVPN — зрелая экосистема: клиенты под любую ОС, интеграция с двухфакторной аутентификацией, готовые GUI-панели вроде OpenVPN Access Server для тех, кто не хочет возиться с конфигами вручную.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS для OpenVPN

Быстрый способ: install-скрипт

Самый простой путь — известный скрипт angristan/openvpn-install. Он сам ставит пакеты, генерирует сертификаты и выдаёт готовый .ovpn.

curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh

Скрипт задаст вопросы (протокол, порт, DNS) — можно жать Enter на дефолтах. В конце появится файл client.ovpn, который скачиваете на устройство.

Добавить ещё одного клиента позже — запустить скрипт снова, он предложит пункт меню.

Ручная установка: пакеты и easy-rsa

Для контроля над каждым шагом ставим руками. Начинаем с пакетов и центра сертификации.

apt update && apt install openvpn easy-rsa -y
make-cadir ~/easy-rsa
cd ~/easy-rsa
./easyrsa init-pki
./easyrsa build-ca nopass

Генерируем сертификат и ключ сервера, параметры Диффи-Хеллмана и TLS-ключ:

./easyrsa build-server-full server nopass
./easyrsa gen-dh
openvpn --genkey secret ta.key

Конфиг сервера

Копируем ключи в /etc/openvpn/server/ и создаём /etc/openvpn/server/server.conf:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
server 10.9.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-GCM
user nobody
group nogroup
persist-key
persist-tun

Включаем форвардинг и NAT (замените eth0 на свой интерфейс из ip route):

echo 'net.ipv4.ip_forward=1' | tee -a /etc/sysctl.conf
sysctl -p
iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE
ufw allow 1194/udp
systemctl enable --now openvpn-server@server

Клиентский .ovpn

Для клиента генерируем сертификат и собираем один файл со всеми ключами внутри — так удобнее переносить.

cd ~/easy-rsa
./easyrsa build-client-full client1 nopass

В .ovpn прописываете remote и вставляете содержимое ca.crt, client1.crt, client1.key и ta.key между соответствующими тегами:

client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
cipher AES-256-GCM
auth-nocache
remote-cert-tls server
<ca>...</ca>
<cert>...</cert>
<key>...</key>
<tls-auth>...</tls-auth>

Импортируете этот файл в приложение OpenVPN Connect (есть под Windows, macOS, iOS, Android).

Режим TCP-443 для жёстких сетей

Если UDP режут, переводим OpenVPN на TCP и порт 443 — трафик становится неотличим от обычного HTTPS. В server.conf меняете proto udp на proto tcp и port 1194 на port 443, в клиенте — то же самое.

proto tcp
port 443

Учтите: TCP-в-TCP медленнее, зато проходит почти везде. Эффект «TCP meltdown» — когда два уровня повторной передачи начинают мешать друг другу — заметен на нестабильных каналах, поэтому держите TCP-режим как запасной, а по умолчанию сидите на UDP.

Дополнительно можно поднять OpenVPN за stunnel или обфускацию, чтобы даже handshake выглядел как чистый TLS. Но если задача именно в глубокой маскировке, честнее сразу смотреть в сторону Shadowsocks или XRay — они спроектированы под это.

Частые ошибки

  • TLS handshake failed — не совпадают ta.key или направление (0 на сервере, 1 на клиенте). При inline-tls-auth добавьте key-direction 1 в клиент.
  • Подключилось, сайтов нет — забыли MASQUERADE или ip_forward.
  • Порт закрыт — проверьте ufw и firewall в панели хостинга.

OpenVPN считает нагрузку на CPU при шифровании — на слабом железе это узкое место. AMD EPYC у MAATRIX держит AES-256-GCM с аппаратным ускорением, так что даже TCP-режим не проседает.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS для OpenVPN

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

OpenVPN или WireGuard для новичка?

Для простого личного VPN проще и быстрее WireGuard. OpenVPN берут, когда нужна маскировка под HTTPS на 443 или совместимость с корпоративным софтом.

Почему мой OpenVPN медленный?

Скорее всего вы в режиме TCP. UDP всегда быстрее; переходите на TCP только если UDP в вашей сети режут.

Как отозвать доступ у клиента?

Через easy-rsa: ./easyrsa revoke client1, затем gen-crl и подключение crl-verify в конфиге. Скомпрометированный сертификат перестанет работать.