Mesh-VPN — з тих інструментів, що тихо все спрощують: ноутбук, домашній сервер, телефон і VPS бачать одне одного за приватними адресами, де б не були. Підступ хмарних mesh-VPN — сервер координації: компанія зберігає мапу всіх ваших пристроїв. Headscale — відкрита заміна цьому серверу керування. Запускаєте його на маленькому VPS, далі користуєтеся звичайними застосунками — і мапа ваша.
Як усе пов'язано
- Headscale (на вашому VPS) роздає адреси, поширює публічні ключі й застосовує ваші ACL.
- Клієнти — стандартні застосунки Tailscale, налаштовані на ваш сервер.
- Трафік іде від пристрою до пристрою через WireGuard. Сервер керування його не передає.
Останній пункт — причина, чому вистачає крихітного тарифу: VPS відповідає лише на невеликі запити координації.
Що знадобиться
- Nano-IP ($8/міс) — 2 vCPU і 1 ГБ RAM, це значно більше, ніж потрібно Headscale.
- Виділений IPv4 і домен, наприклад
hs.example.com. Пристрої звертаються до сервера керування через HTTPS, тож VPS має приймати вхідний 443 — NAT-тарифи цього не вміють (докладніше).
Встановлення (Debian 12 / Ubuntu 24.04)
Завантажте свіжий .deb зі сторінки релізів Headscale на GitHub — підставте останню версію:
HS_VER=0.26.1
wget -O headscale.deb \
"https://github.com/juanfont/headscale/releases/download/v${HS_VER}/headscale_${HS_VER}_linux_amd64.deb"
apt install -y ./headscale.deb caddy
Відредагуйте /etc/headscale/config.yaml — важливі два рядки:
server_url: https://hs.example.com
listen_addr: 127.0.0.1:8080
Поставте Caddy попереду заради HTTPS:
cat > /etc/caddy/Caddyfile <<'EOF'
hs.example.com {
reverse_proxy 127.0.0.1:8080
}
EOF
systemctl enable --now headscale
systemctl reload caddy
Користувач і перший пристрій
headscale users create alice
headscale users list # note the user's ID
headscale preauthkeys create --user 1 --expiration 24h
Старі релізи приймають у --user ім'я користувача, а не ID; що чекає ваша версія, покаже headscale preauthkeys create --help.
На Linux-пристрої:
tailscale up --login-server https://hs.example.com --authkey YOUR_KEY
У застосунках Tailscale для телефонів і комп'ютерів власний сервер керування задається в налаштуваннях. Виконайте headscale nodes list на VPS — пристрій має з'явитися в списку.
Ретранслятори та обхід NAT
Більшість пристроїв з'єднуються напряму. Коли двоє не можуть (жорсткі мобільні мережі, подвійний NAT), трафік іде через ретранслятор DERP. З коробки Headscale використовує публічні ретранслятори Tailscale — вони бачать лише зашифровані пакети. Якщо не хочете нічого зовнішнього на шляху, увімкніть вбудований ретранслятор у config.yaml (derp.server.enabled: true) і відкрийте UDP 3478. Ретрансльований трафік тоді піде каналом вашого VPS.
Чесні обмеження
Офіційної веб-панелі немає: користувачі, ключі й маршрути — це команди CLI (з другого разу звикаєш). Нові функції хмарного сервісу потрапляють у Headscale пізніше, а то й зовсім не потрапляють. І сервер керування тепер ваша турбота: якщо він лежить, наявні з'єднання працюють далі, але нові пристрої не підключаться, і ключі не оновляться. Робіть бекап — увесь стан лежить у /var/lib/headscale.
Для домашньої лабораторії, родини чи невеликої команди, якій потрібна мапа пристроїв поза чужими серверами, це одне з найкращих застосувань VPS за $8.
Пов'язане
- Власний WireGuard VPN — чистий WireGuard, якщо потрібен один тунель
- VPS для VPN
- VPS для віддаленого доступу до Home Assistant
Коментарі
Поки немає коментарів. Будьте першим.