OpenVPN на VPS: ставим свой сервер правильно
OpenVPN — проверенный годами протокол: работает почти везде, умеет TCP на 443 порту (когда UDP режут) и гибко настраивается. Разберём два пути — быстрый скрипт за 3 минуты и ручную настройку для тех, кто хочет понимать каждый шаг.
Содержание
Когда выбирать OpenVPN
['OpenVPN тяжелее и медленнее WireGuard, но у него есть козырь: он умеет маскироваться под обычный HTTPS-трафик на TCP-443. Там, где UDP-туннели глушат, OpenVPN на 443 часто продолжает работать.', '- Нужна работа в жёстких сетях, где режут всё, кроме 443.
- Нужна совместимость со старым софтом и корпоративными клиентами.
- Нужны сложные политики: сертификаты, отзыв доступа, TLS-auth.
Нужен сервер под эту задачу?
Разверните 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\nchmod +x openvpn-install.sh\n./openvpn-install.sh', 'Скрипт задаст вопросы (протокол, порт, DNS) — можно жать Enter на дефолтах. В конце появится файл client.ovpn, который скачиваете на устройство.', 'Добавить ещё одного клиента позже — запустить скрипт снова, он предложит пункт меню.']
Ручная установка: пакеты и easy-rsa
['Для контроля над каждым шагом ставим руками. Начинаем с пакетов и центра сертификации.', 'apt update && apt install openvpn easy-rsa -y\nmake-cadir ~/easy-rsa\ncd ~/easy-rsa\n./easyrsa init-pki\n./easyrsa build-ca nopass', 'Генерируем сертификат и ключ сервера, параметры Диффи-Хеллмана и TLS-ключ:', './easyrsa build-server-full server nopass\n./easyrsa gen-dh\nopenvpn --genkey secret ta.key']
Конфиг сервера
['Копируем ключи в/etc/openvpn/server/ и создаём /etc/openvpn/server/server.conf:', 'port 1194\nproto udp\ndev tun\nca ca.crt\ncert server.crt\nkey server.key\ndh dh.pem\ntls-auth ta.key 0\nserver 10.9.0.0 255.255.255.0\npush "redirect-gateway def1"\npush "dhcp-option DNS 1.1.1.1"\nkeepalive 10 120\ncipher AES-256-GCM\nuser nobody\ngroup nogroup\npersist-key\npersist-tun', 'Включаем форвардинг и NAT (замените eth0 на свой интерфейс из ip route):', "echo 'net.ipv4.ip_forward=1' | tee -a /etc/sysctl.conf\nsysctl -p\niptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE", 'ufw allow 1194/udp\nsystemctl enable --now openvpn-server@server']
Клиентский .ovpn
['Для клиента генерируем сертификат и собираем один файл со всеми ключами внутри — так удобнее переносить.', 'cd ~/easy-rsa\n./easyrsa build-client-full client1 nopass', 'В .ovpn прописываете remote и вставляете содержимое ca.crt, client1.crt, client1.key и ta.key между соответствующими тегами:', 'client\ndev tun\nproto udp\nremote YOUR_SERVER_IP 1194\ncipher AES-256-GCM\nauth-nocache\nremote-cert-tls server\n<ca>...</ca>\n<cert>...</cert>\n<key>...</key>\n<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\nport 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 в панели хостинга.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для OpenVPNЧастые вопросы
OpenVPN или WireGuard для новичка?
Для простого личного VPN проще и быстрее WireGuard. OpenVPN берут, когда нужна маскировка под HTTPS на 443 или совместимость с корпоративным софтом.
Почему мой OpenVPN медленный?
Скорее всего вы в режиме TCP. UDP всегда быстрее; переходите на TCP только если UDP в вашей сети режут.
Как отозвать доступ у клиента?
Через easy-rsa: ./easyrsa revoke client1, затем gen-crl и подключение crl-verify в конфиге. Скомпрометированный сертификат перестанет работать.