SSD Nodes Learn Hosting plans →
Посібники Matt ConnorВід Matt Connor · Оновлено 2026-10-30

WireGuard чи OpenVPN: що обрати для свого VPN

WireGuard швидший і має конфігурацію приблизно на 10 рядків. Дізнайтеся про 4 випадки, коли OpenVPN кращий: TCP 443, CA, 2FA та рівень 2.

Коротка відповідь

WireGuard порівняно з OpenVPN для однієї людини, яка запускає VPN-сервер на власному VPS, не залишає реального вибору: обирайте WireGuard. Він компактніший, працює всередині ядра Linux, підключається за частки секунди, а робоча конфігурація клієнта містить приблизно десять рядків. OpenVPN зберігає чотири практичні переваги. Якщо жодна з них вам не потрібна, він вам не потрібен.

Ці чотири завдання: вихід із мережі, яка дозволяє лише TCP-порт 443; підключення до наявного центру сертифікації; автентифікація іменованих користувачів за паролем або другим фактором; робота на рівні 2. Нижче наведено обґрунтування цієї рекомендації та точні умови, за яких кожен виняток починає стосуватися саме вас.

Чому WireGuard став вибором self-hosting користувачів

Кодову базу достатньо легко прочитати. Проєкт WireGuard містить реалізацію протоколу обсягом приблизно 4,000 рядків коду. OpenVPN налічує понад 100,000 рядків, якщо врахувати бібліотеку OpenSSL, від якої він залежить для кожної криптографічної операції. Розмір має значення, оскільки кожен рядок збільшує площу атаки, ані ви, ані ваш рев’юер не читатимете 100,000 рядків. 4,000 рядків прочитати можна.

Він працює в ядрі. WireGuard входить до mainline Linux починаючи з версії 5.6, тому Ubuntu 24.04 і Debian 13 постачають його без потреби щось компілювати. Пакети шифруються там, де вони вже перебувають, у просторі ядра. Їх не потрібно копіювати до процесу в userspace і назад. Перевірте це передусім:

sudo modprobe wireguard && echo ok

На KVM VPS ця команда виводить ok. У контейнерній віртуалізації зі спільним ядром хоста, наприклад OpenVZ або LXC, вона завершується помилкою Operation not supported, оскільки неможливо завантажити модуль у ядро, яке вам не належить.

Нічого узгоджувати не потрібно. WireGuard має один фіксований набір шифрів: ChaCha20-Poly1305 для даних і ключі Curve25519. Немає версії, яку можна знизити, або параметра, який можна неправильно вибрати. OpenVPN узгоджує з кожним клієнтом шифр і версію TLS (transport layer security). Це забезпечує гнучкість, але водночас створює можливості для неправильного налаштування. Сервер із параметром data-ciphers AES-256-GCM:AES-128-CBC без проблем перейде на шифр CBC для клієнта, який не пропонує нічого кращого, а журнал не позначить слабший шифр як проблему. Якщо доступне data channel offload, OpenVPN виводить повідомлення про те, що запис CBC вимкнув offload. Це попередження про швидкодію, а не про безпеку.

Порт не відповідає. Пакет WireGuard, який не проходить перевірку автентичності повідомлення, відкидається без жодної відповіді. Тому nmap -sU -p 51820 не може відрізнити сервер WireGuard від порту, який firewall мовчки відкидає: в обох випадках результатом буде open|filtered. Себе видає лише нефільтрований порт, на якому нічого не прослуховується, оскільки ядро відповідає повідомленням ICMP port unreachable, а nmap показує його як closed. Сервер OpenVPN у режимі TCP завершує TCP handshake, перш ніж вирішити, що доступ заборонено. Цього достатньо, щоб scanner визначив наявність сервісу. OpenVPN через UDP із tls-crypt майже такий самий непомітний, тому це аргумент проти запуску OpenVPN через TCP, а не проти OpenVPN загалом.

Роумінг не потребує додаткових налаштувань. Peer WireGuard ідентифікується відкритим ключем, а не адресою. Ноутбук переходить із домашньої мережі до мобільної точки доступу, надсилає один handshake із нової адреси, і сервер оновлює endpoint, на який надсилає відповіді. Нічого не перепідключається, оскільки підключення як такого не було. OpenVPN може працювати подібним чином із float, але клієнт зазвичай розриває та заново встановлює повну TLS-сесію. Тому після відкриття кришки ноутбука пауза помітна в OpenVPN, але відсутня у WireGuard.

Швидкість у 2026: розрив скорочується лише завдяки kernel offload

Протягом багатьох років чесне порівняння швидкості виглядало так: OpenVPN копіював кожен пакет у userspace, шифрував його там і копіював назад, тоді як WireGuard не виходив за межі kernel. На стандартному сервері Ubuntu 24.04 це й досі так, тому WireGuard значно швидший. У 2026 ситуація змінилася: OpenVPN також може перенести data path у kernel, якщо це підтримують kernel і версія OpenVPN. Порівняння без урахування цієї можливості вже застаріло.

OpenVPN 2.7, випущений у February 2026, отримав підтримку upstream ovpn kernel module, який додали до Linux 6.16. Це DCO (data channel offload): control channel залишається в userspace, а основний data path переноситься в kernel. Приблизно так само WireGuard працює від самого початку. Якщо kernel і OpenVPN достатньо нові для його використання, пропускна здатність буде в одному класі, а не на принципово іншому рівні. Перевірте, що саме встановлено у вашій системі:

uname -r
openvpn --version | head -n 1
modinfo ovpn 2>/dev/null | head -n 3

Станом на October 2026 стандартний Ubuntu 24.04 LTS постачається з OpenVPN 2.6, а не 2.7, і для ovpn module потрібна версія 2.7. У цьому випуску offload доступний лише через старіший пакет openvpn-dco-dkms. Він збирає out-of-tree module для поточного kernel, тому після кожного оновлення kernel його потрібно збирати повторно. WireGuard не має такого додаткового компонента. Ubuntu 26.04 LTS постачається з OpenVPN 2.7.0 і kernel Linux 7.0. Обидві версії достатньо нові для ovpn, тому в цьому випуску потрібно перевірити рядок modinfo вище.

Перед тим як вважати DCO аргументом на користь OpenVPN, ознайомтеся з обмеженнями. Він підтримує лише Layer 3 tunnels, приймає лише AEAD ciphers (authenticated encryption with associated data: AES-GCM або ChaCha20-Poly1305), не підтримує compression, а на сервері працює лише з topology subnet. Кожне з цих обмежень зменшує гнучкість, яка спочатку була головною перевагою OpenVPN. Швидкий OpenVPN — це OpenVPN, налаштований подібно до WireGuard.

Не покладайтеся на опубліковані показники пропускної здатності, зокрема наведені на цій сторінці. На VPS гранична швидкість зазвичай залежить від виділеного ресурсу CPU або мережевого ліміту, а не від протоколу. Виміряйте власну швидкість за допомогою iperf3 під час роботи через tunnel, а потім повторіть вимірювання поза ним і порівняйте результати.

Де OpenVPN досі виправданий

Потрібно вийти через TCP-порт 443. WireGuard працює лише через UDP, і це зроблено навмисно. Режим TCP не планується. Готельна мережа, яка фільтрує трафік лише за номером порту, зазвичай пропустить OpenVPN, налаштований із proto tcp-server і port 443. Не сприймайте це як маскування: OpenVPN через TCP використовує власне кадрування пакетів, а не звичайний TLS-сеанс. Тому корпоративний firewall або проксі, який аналізує чи завершує HTTPS-з’єднання, усе одно може розпізнати OpenVPN і заблокувати його. Для проходження через ту саму мережу WireGuard потребує обгортки на кшталт wstunnel або udp2raw. Це означає ще один процес, який потрібно запускати й регулярно оновлювати. Врахуйте конфлікт: якщо вебсервер уже використовує TCP 443 на цій IP-адресі, один із двох сервісів доведеться перенести.

Ви вже використовуєте центр сертифікації. OpenVPN автентифікує клієнтів за сертифікатами X.509, тому легко інтегрується в наявну PKI (public key infrastructure). Сертифікати автоматично стають недійсними після завершення строку дії. Окремий сертифікат можна відкликати, додавши його до списку відкликаних сертифікатів, який сервер читає через crl-verify. У WireGuard немає сертифікатів, строку дії або списку відкликаних сертифікатів. Щоб видалити peer, потрібно змінити конфігурацію сервера та повторно завантажити її. Для десяти peer це нормально. Для чотирьохсот peer за наявності вимог до аудиту модель із сертифікатами справді спрощує адміністрування.

Потрібні іменовані користувачі, а не лише ключі. OpenVPN може передати автентифікацію зовнішній системі через auth-user-pass-verify або плагін на кшталт openvpn-plugin-auth-pam.so. Так підключають LDAP або другий фактор із одноразовим паролем. WireGuard взагалі не має поняття користувача. Ключ або є в конфігурації, або його там немає. Якщо вимога полягає в тому, що «Sara має ввести код із телефона», WireGuard не може самостійно це реалізувати.

Потрібен Layer 2 або клієнт для застарілої системи. OpenVPN із dev tap з’єднує Ethernet-кадри в bridge-режимі. Це важливо для протоколів широкомовлення та старих ігор у локальній мережі. WireGuard працює лише на Layer 3 і не підтримуватиме Layer 2. OpenVPN також має клієнти для обладнання та операційних систем, де застосунок WireGuard ніколи не з’явиться. Обидві причини поступово втрачають актуальність. Крім того, dev tap несумісний із DCO, тому bridge-режим працює повільніше.

Скільки насправді коштують вам обидва варіанти

Ідентифікатор WireGuard створюється однією командою. Дужки мають значення, оскільки вони встановлюють режим доступу до файлу до створення ключа:

(umask 077; wg genkey > private.key)
wg pubkey < private.key > public.key

Еквівалент OpenVPN — це центр сертифікації, за який ви відповідаєте протягом усього часу роботи VPN:

sudo apt install -y easy-rsa
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-req server nopass
./easyrsa sign-req server server

Жоден із цих переліків не є упередженим. Центр сертифікації дає змогу встановлювати строк дії та відкликати сертифікати. Водночас вам потрібен приватний ключ, який треба захищати роками, не можна забувати про поновлення, а в разі його втрати доведеться все налаштовувати заново. Якщо ви не використовуєте ці можливості, ви платите ні за що. Повна процедура налаштування WireGuard, включно з переспрямуванням, NAT (перетворенням мережевих адрес) і помилками рукостискання, через які можна втратити цілий робочий день, описана в посібнику зі самостійного розгортання WireGuard VPN на VPS.

Що кожен із них потребує від вашого брандмауера

WireGuard потребує лише одного вхідного правила для UDP на порту, указаному в ListenPort:

sudo ufw allow 51820/udp
sudo ufw status verbose

OpenVPN за замовчуванням потребує UDP 1194 або TCP 443, якщо ви вибрали цей варіант. Для обох протоколів також потрібно ввімкнути пересилання IP і додати правило source NAT, оскільки Linux відкидає пакети, адресовані не цьому серверу. Ця частина однакова для обох протоколів. Саме тут виникає більшість повідомлень про те, що «тунель підключається, але інтернету немає». Якщо ви раніше не працювали з ufw, почніть із основ брандмауера ufw на VPS і пам’ятайте, що більшість провайдерів використовує додатковий мережевий брандмауер у панелі керування: правило, додане на сервері, не працює, якщо пакет не доходить до сервера. Розуміння того, що таке порт і як Linux прослуховує порт допоможе швидше виконати обидві перевірки.

Як вибрати в одному абзаці

Використовуйте WireGuard, якщо не можете назвати конкретну функцію, якої вам бракує. Якщо для обходу обмежень мережі потрібно використовувати TCP 443, налаштуйте там OpenVPN і розгляньте можливість запуску обох рішень: вони використовують різні порти та можуть працювати на одному сервері без конфліктів. Якщо вам потрібні облікові записи окремих користувачів або другий фактор автентифікації, не намагайтеся реалізувати це засобами WireGuard. Натомість додайте над ним рівень ідентифікації. Власний сервер керування Headscale використовує WireGuard на нижньому рівні та додає модель облікових записів, розповсюдження ключів і підтвердження пристроїв, які звичайний WireGuard залишає на ваш розсуд.

Перехід з OpenVPN без переривання роботи

Перетворення не виконується. PKI OpenVPN не перетворюється на ключі WireGuard, оскільки WireGuard не використовує сертифікати, які можна перетворити. Кожен клієнт отримує нову пару ключів, згенеровану так само, як пара ключів сервера.

Виконуйте міграцію паралельно, а не перемикайтеся одразу. WireGuard на UDP 51820 і OpenVPN на 1194 можуть одночасно працювати на одному сервері. Запустіть wg0, перевірте його за допомогою sudo wg show, переглянувши нещодавній latest handshake, а потім переміщуйте клієнтів по одному. Коли список однорангових вузлів OpenVPN перестане змінюватися, зупиніть службу за допомогою sudo systemctl disable --now openvpn-server@server. Зберігайте файли CA, доки не переконаєтеся, що вони більше не потрібні. Відновити відкликаного клієнта за допомогою видаленого CA неможливо.

Дані облікових записів із іменами користувачів і паролями, а також журнал відкликання, пов’язаний із ними, не переносяться. Визначте, де вони зберігатимуться, перш ніж вимкнути старий сервер, а не після цього.

FAQ

WireGuard швидший за OpenVPN?

На стандартному сервері Ubuntu 24.04 — так, і з великим відривом, оскільки WireGuard шифрує дані в ядрі, тоді як OpenVPN 2.6 передає кожен пакет через процес у userspace. В OpenVPN 2.7 і з модулем ядра ovpn у Linux 6.16 шлях передавання даних також працює в ядрі, тому вони належать до одного класу. Виміряйте власну швидкість за допомогою iperf3 через тунель, а не покладайтеся на число з блогу, оскільки на VPS обмеженням зазвичай є ваш CPU або доступна пропускна здатність.

WireGuard може працювати через TCP-порт 443?

Сам по собі — ні. WireGuard за задумом працює лише через UDP, і режим TCP не планується. Щоб пройти через мережу, яка дозволяє лише TCP 443, обгорніть його в тунель, наприклад wstunnel або udp2raw. На обох кінцях для цього потрібно запускати й оновлювати додатковий процес. Якщо це ваше звичайне робоче середовище, OpenVPN із proto tcp-server і port 443 буде простішим рішенням у мережі, яка фільтрує трафік лише за портом. Проте проксі, який аналізує HTTPS, усе одно може виявити та заблокувати його.

OpenVPN тепер небезпечний?

Ні. Актуальний OpenVPN із шифром AEAD, наприклад AES-256-GCM, і ввімкненим tls-crypt є надійним VPN. Перевага WireGuard полягає в іншому: OpenVPN містить значно більше коду та параметрів, тому адміністратор, який працює неуважно, має набагато більше способів неправильно його налаштувати. Менше варіантів означає менше помилкових рішень.

Що вибрати для особистого VPN на VPS?

WireGuard. Одна пара ключів для кожного пристрою, один конфігураційний файл приблизно на десять рядків, один відкритий UDP-порт і handshake, який завершується ще до того, як ви помітите його початок. Обирайте OpenVPN лише якщо регулярно підключаєтеся з мереж, які блокують UDP, або якщо потрібно використовувати наявний certificate authority чи каталог користувачів.

Чи була ця стаття корисною?