SSD Nodes Learn 8GB RAM — $66/рік
Посібники Matt ConnorВід Matt Connor · Оновлено 2026-08-01

WireGuard, Tailscale чи Headscale: що обрати

Tailscale додає до WireGuard сервер координації, NAT traversal і політики доступу. Порівнюємо ціну, контроль і вибір для VPS між WireGuard, Tailscale та Headscale.

WireGuard проти Tailscale: коротка відповідь

WireGuard проти Tailscale — це не вибір між двома протоколами, оскільки Tailscale працює на основі WireGuard. Tailscale використовує те саме шифрування й той самий тунель, а потім додає площину керування: сервер координації, який обмінюється відкритими ключами, призначає адреси, пробиває отвори через NAT (перетворення мережевих адрес) і застосовує політику доступу. Ви обираєте, яку частину цієї координації хочете виконувати самостійно.

Є три чесні відповіді. Використовуйте звичайний WireGuard, якщо у вас є один сервер і кілька клієнтів, які підключаються до нього. Використовуйте Tailscale, якщо хочете, щоб кожна машина могла підключатися до будь-якої іншої без файлу конфігурації, який потрібно підтримувати. Використовуйте Headscale, якщо хочете таку mesh-мережу, але не хочете, щоб список вузлів зберігала стороння організація.

Що насправді дає площина керування

У звичайного WireGuard немає механізму виявлення. Кожен вузол — це блок тексту, який ви створюєте вручну: відкритий ключ, рядок AllowedIPs і Endpoint, якщо цей вузол доступний. Додавання однієї машини до мережі з десяти машин означає редагування десяти конфігураційних файлів, оскільки кожна сторона має знати ключ іншої сторони. Тому майже кожна self-hosted конфігурація WireGuard використовує топологію hub-and-spoke: один сервер із публічною IP-адресою та клієнти, які взаємодіють лише з ним.

Площина керування усуває потребу в ручному редагуванні. Кожен вузол реєструється один раз, отримує адресу з діапазону 100.64.0.0/10 CGNAT (carrier grade NAT), а також відкриті ключі вузлів, до яких йому дозволено підключатися. Тунель між двома вузлами й надалі є прямим з'єднанням WireGuard, а ваш трафік не проходить через сервер координації. Сервер передає метадані: які вузли існують, який ключ належить кожному з них і яким вузлам дозволено взаємодіяти між собою.

Це дає три конкретні переваги.

Обхід NAT. Два ноутбуки за двома домашніми маршрутизаторами не мають спільної публічної IP-адреси. Tailscale використовує STUN (session traversal utilities for NAT), щоб визначити зовнішню адресу та порт кожної сторони. Потім обидві сторони одночасно надсилають пакети, щоб кожен маршрутизатор спочатку побачив вихідний потік і прийняв відповідь. Якщо це не вдається, трафік переходить на ретранслятор DERP — зашифрований ретранслятор, яким керує Tailscale. Дані залишаються зашифрованими наскрізно під час проходження через ретранслятор, оскільки ретранслятор не має ключів. Виконайте tailscale status — у рядку кожного вузла буде зазначено direct або relay. Виконайте tailscale netcheck, щоб перевірити, який ретранслятор є найближчим і чи дозволяє ваша мережа UDP взагалі.

Ротація ключів із терміном дії. Ключі WireGuard не мають терміну дії. Ключ, виданий три роки тому, працюватиме безстроково, якщо вручну не видалити блок вузла. Натомість Tailscale встановлює термін дії ключів вузлів, і станом на July 2026 стандартний термін дії для нового tailnet становить 180 днів. Машина, яка не пройшла повторну автентифікацію, припиняє підключатися. Для сервера або маршрутизатора підмережі, на який ніхто не входитиме для автентифікації, термін дії можна вимкнути окремо.

Політики замість маршрутизації. У звичайному WireGuard AllowedIPs одночасно є таблицею маршрутизації та списком контролю доступу, тому правило «alice може отримувати доступ до бази даних» доводиться виражати через діапазон IP-адрес. Tailscale зберігає окремий файл політик, у якому правила містять імена користувачів, груп і тегів. Правило може дозволити tag:laptop доступ до tag:db через порт 5432 і заборонити будь-який інший доступ. Це правило зберігає чинність навіть після отримання машиною нової адреси.

Вартість площини керування

Сервер координації знає вашу мережу. Він зберігає відкритий ключ кожного вузла, ім’я кожного вузла, видані адреси та політику. У разі використання розміщеного Tailscale цим сервером керує компанія, яка не підпорядковується вам. Вона не може прочитати ваші пакети, оскільки закриті ключі WireGuard залишаються на ваших комп’ютерах. Проте вона бачить структуру вашої мережі. Крім того, можливість підключення залежить від доступності її сервісу та належного стану вашого облікового запису.

Є ще одна витрата, яку легко не помітити. Tailscale працює як daemon на кожному комп’ютері. Тому вам потрібно підтримувати його в актуальному стані та встановлювати виправлення на кожному комп’ютері. Звичайний WireGuard в Ubuntu 24.04 — це модуль ядра, який постачається разом із дистрибутивом і оновлюється разом із ядром.

Третя витрата — оплата. Станом на July 2026 план Personal безкоштовний і підтримує необмежену кількість пристроїв для не більш як 6 користувачів. План Standard коштує $8 за користувача на місяць, а Premium — $18 за користувача на місяць. Для родини використання залишається безкоштовним. Для команди з десяти осіб — ні.

Коли звичайний WireGuard є правильним вибором

Обирайте звичайний WireGuard, коли топологія справді має структуру «центр і вузли». Один VPS із публічною IP-адресою, три або чотири пристрої, які підключаються до нього, і відсутність потреби, щоб ці пристрої обмінювалися даними між собою. Конфігурація вміщується на одному екрані. Не потрібно оновлювати окрему службу, немає облікового запису, який можна втратити, і жодна зовнішня служба не є посередником між вами та сервером.

Це також правильний вибір, якщо ви хочете зрозуміти рівень, на якому побудовано все інше. Самостійне розгортання WireGuard VPN на VPS описує створення ключів, wg0.conf, пересилання IP-пакетів, NAT і помилки рукостискання. Усі ці механізми продовжують працювати під рівнем tailnet. Якщо ви все ще розглядаєте старіший варіант, у матеріалі WireGuard проти OpenVPN описано чотири випадки, у яких OpenVPN зберігає перевагу.

Встановлення коротке:

sudo apt update && sudo apt install -y wireguard
sudo modprobe wireguard && echo ok

Звичайний WireGuard стає незручним, щойно кожен пристрій має отримувати доступ до всіх інших пристроїв. Повна mesh-топологія з N вузлів потребує N помножити на N мінус один блоків peer. Для шести пристроїв це тридцять блоків, які потрібно вручну підтримувати синхронізованими. Дубльований запис AllowedIPs непомітно спрямовує трафік не тому peer, який отримав його першим. При цьому жодної помилки ніде не виводиться.

Коли Tailscale є правильним вибором

Обирайте Tailscale, якщо машини змінюють мережу. Це ноутбуки в готельних мережах, телефон із мобільним передаванням даних або домашній сервер за маршрутизатором, яким ви не керуєте. Саме в таких випадках звичайний WireGuard працює погано, оскільки жодна зі сторін не має стабільної загальнодоступної кінцевої точки, яку можна вказати в Endpoint.

Встановлення клієнта виконується однією командою з офіційного інсталятора:

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
tailscale status

tailscale up виводить URL. Відкрийте його, увійдіть у систему — і машина приєднається до мережі. Не потрібно копіювати ключ або відкривати вхідний порт, оскільки демон встановлює вихідне з’єднання із сервером координації та підтримує його відкритим. Саме тому вузол Tailscale працює навіть у мережі, де ви взагалі не керуєте брандмауером.

Після цього основну роботу виконують два параметри. Маршрутизатор підмережі оголошує цілу LAN у мережі, тому не потрібно встановлювати клієнт на кожен пристрій:

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
sudo tailscale set --advertise-routes=192.0.2.0/24

Маршрут залишається неактивним, доки ви не схвалите його в консолі адміністратора. Це зроблено навмисно: вузол не може самостійно додати маршрут у вашу мережу. Клієнтам Linux також потрібен sudo tailscale set --accept-routes, оскільки Linux за замовчуванням не приймає оголошені маршрути. Тому маршрут, який на боці сервера виглядає схваленим, усе одно не працюватиме на ноутбуці Linux, доки ви не встановите цей параметр.

Вузол виходу спрямовує весь трафік клієнта через одну машину. Це повна тунельна поведінка, яку зазвичай мають на увазі під словом «VPN»:

sudo tailscale set --advertise-exit-node

Коли Headscale є правильним вибором

Headscale — це реалізація сервера координації з відкритим вихідним кодом, яка працює на VPS, що належить вам. Офіційні клієнти Tailscale підключаються до нього замість розміщеного сервісу:

sudo tailscale up --login-server https://headscale.example.com

Усе, що стосується шляху передавання даних, залишається без змін. Це й далі WireGuard, а за наявності відповідних мережевих умов з’єднання між вузлами й далі встановлюються напряму. Змінюється лише те, що список вузлів, ключі та політики зберігаються у файлі SQLite на диску, який належить вам. Ніхто ззовні не може бачити структуру вашої мережі, вимкнути ваш обліковий запис або стягувати з вас плату за кожного користувача.

Це потребує реальної роботи. Тепер ви адмініструєте загальнодоступний сервіс HTTPS, а отже, потрібні DNS-ім’я, сертифікат і reverse proxy, який правильно передає оновлення WebSocket. Ви відповідаєте за його доступність, а недоступність сервера координації означає, що нові вузли не можуть зареєструватися, а наявні вузли не можуть дізнатися про зміни. Headscale також має версію нижче 1.0, а його мінорні випуски містили несумісні зміни, тому перед кожним оновленням читайте журнал змін. У матеріалі Розгортання Headscale як власного сервера керування Tailscale описано встановлення, config.yaml, попередньо авторизовані ключі та порти, які потрібно відкрити.

Є один нюанс, який часто виявляється запізно. Headscale не має глобальної мережі ретрансляторів Tailscale. Якщо два вузли не можуть з’єднатися напряму, ви або вмикаєте вбудований ретранслятор на власному сервері, або вказуєте в конфігурації інший. У такому разі ретранслятор працює на одному сервері в одному регіоні, а не у світовій мережі серверів. Вузли, розташовані на іншому боці планети, відчують цю різницю.

Як прийняти рішення за один крок

Визначте, скільки машин мають з’єднуватися між собою. Якщо всі вони лише обмінюються даними із сервером, звичайний WireGuard потребує менше програмного забезпечення й дає той самий результат.

Визначте, чи мають машини стабільні публічні адреси. Якщо більшість із них працює за NAT, яким ви не керуєте, вам потрібна площина керування, оскільки встановлення прямого з’єднання через NAT є складною частиною. Відтворювати її самостійно недоцільно.

Визначте, кому дозволено знати структуру вашої мережі. Якщо сторонні компанії не повинні мати до неї доступу або кількість користувачів робить оплату за кожне робоче місце надто дорогою, розгорніть Headscale. У такому разі ви самостійно адмініструватимете сервер керування.

Ви можете недорого змінити рішення. Оскільки площина передавання даних у всіх трьох варіантах використовує той самий протокол, перехід від звичайного WireGuard до скоординованої mesh-мережі потребує лише встановлення клієнта, а не перепроєктування. Перехід від Tailscale до Headscale полягає в повторній реєстрації кожного вузла на іншому сервері автентифікації.

Чого не забезпечує жоден із трьох варіантів

Жоден із них не є firewall. Тунель визначає, які пакети передаються, але не визначає, які служби прослуховують порти. Сервер, доступний через тунель, усе одно доступний з інтернету через будь-який порт, який ви залишили відкритим. Тому не вимикайте правила firewall UFW на VPS, які виконують свою функцію. Файл політик Tailscale обмежує доступ інших вузлів і не впливає на публічний інтерфейс.

Жоден із них не забезпечує автентифікацію для окремих служб. Жоден також не веде журнал аудиту дій користувача після підключення. Розглядайте всі три варіанти лише як транспорт. Перевірку облікових даних реалізуйте в застосунку.

FAQ

Чи є Tailscale просто WireGuard із додатковими кроками?

Tailscale використовує протокол WireGuard для передавання даних, тому шифрування й тунель однакові. Додатково він забезпечує координацію: обмін ключами, призначення адрес, обхід NAT за допомогою ретрансляторів STUN і DERP, завершення дії ключів і файл політик, у якому вказано користувачів, а не діапазони IP-адрес. У звичайному WireGuard ці завдання залишаються на вас. Вони ускладнюються, коли машини переходять між мережами.

Чи проходить мій трафік через сервери Tailscale?

Зазвичай ні. Після того як сервер координації познайомить вузли, вони підключаються безпосередньо один до одного, а tailscale status показує direct у рядках цих вузлів. Якщо прямий шлях установити неможливо, трафік переходить на ретранслятор DERP, і в рядку відображається relay. Навіть у цьому разі ретранслятор передає зашифровані пакети й не має ваших приватних ключів WireGuard, тому не може прочитати їхній вміст. Виконайте tailscale netcheck, щоб перевірити, чи не блокує ваша мережа UDP, потрібний для прямих підключень.

Чи можна використовувати Headscale з офіційними програмами Tailscale?

Так. Headscale використовує той самий протокол керування, тому офіційні клієнти підключаються за допомогою sudo tailscale up --login-server https://headscale.example.com. У настільних і мобільних програмах також можна вказати власний сервер входу. Налаштування розташоване в різних місцях на різних платформах, а для мобільних програм найчастіше потрібна конкретна версія. Перевірте спочатку один телефон, перш ніж переносити всю мережу.

Чи потрібно відкривати порти для Tailscale або Headscale?

Клієнту Tailscale не потрібен вхідний порт, оскільки він сам встановлює вихідне підключення до сервера координації та підтримує його відкритим. Для власного сервера Headscale потрібні вхідні порти: 443 для протоколу керування, 80, якщо ви використовуєте перевірку сертифіката HTTP-01, і 3478/udp лише в разі ввімкнення вбудованого ретранслятора. Для звичайного WireGuard на сервері та в окремому мережевому брандмауері провайдера, якщо він використовується, потрібно відкрити UDP-порт прослуховування, зазвичай 51820.

Який із трьох варіантів найшвидший?

Пропускна здатність однакова, оскільки всі три варіанти передають пакети за допомогою WireGuard. Відмінність проявляється під час установлення підключення та залежить від якості шляху. Звичайний WireGuard із правильно налаштованим Endpoint щоразу підключається безпосередньо. Tailscale і Headscale здебільшого підключаються безпосередньо, але переходять на ретранслятор, якщо мережа блокує встановлення прямого з’єднання через NAT. Ретрансляція збільшує затримку. Перевірте власний шлях за допомогою tailscale ping <node>, який показує, чи є маршрут прямим або ретрансльованим, або за допомогою iperf3 через тунель.