Mesh VPN е от инструментите, които тихо улесняват всичко: лаптопът, домашният сървър, телефонът и VPS-ите ти се виждат на частни адреси, където и да са. Проблемът с хостваните mesh VPN-и е координиращият сървър: фирма държи картата на всяко твое устройство. Headscale е заместител с отворен код на този контролен сървър. Пусни го на малък VPS, продължи да ползваш обикновените клиентски приложения и картата става твоя.
Как се сглобяват частите
- Headscale (на твоя VPS) раздава адреси, разпространява публични ключове и налага твоите ACLs.
- Клиентите са стандартните приложения на Tailscale, насочени към твоя сървър.
- Трафикът върви от устройство до устройство през WireGuard. Контролният сървър никога не го пренася.
Последното е причината мъничък план да работи: VPS-ът отговаря само на малки координиращи заявки.
Какво ти трябва
- Nano-IP ($8/месец): 2 vCPU и 1 GB RAM са много повече, отколкото ползва Headscale.
- Dedicated 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-а и устройството ти трябва да е там.
Relays и преминаване през NAT
Повечето устройства се свързват директно. Когато две не могат (строги мобилни мрежи, двоен NAT), трафикът минава през DERP relay. По подразбиране Headscale ползва публичните relays на Tailscale, които виждат само криптирани пакети. Ако не искаш нищо външно по пътя, включи вградения relay в config.yaml (derp.server.enabled: true) и отвори UDP 3478. Тогава препредаденият трафик се брои към трафика на твоя VPS.
Ограничения, честно
Няма официално уеб табло: потребители, ключове и маршрути са CLI команди (лесно, след като го направиш два пъти). По-новите функции на хостваната услуга се появяват в Headscale по-късно, ако изобщо се появят. И контролният сървър вече е твоя отговорност: ако падне, съществуващите връзки продължават да работят, но нови устройства не могат да се присъединят и ключовете не се подновяват. Прави му бекъп: цялото състояние е в /var/lib/headscale.
За домашна лаборатория, семейство или малък екип, който иска картата на устройствата му да не е на чужди сървъри, това е едно от най-добрите приложения на VPS за $8.
Свързани
- Self-host на WireGuard VPN: обикновен WireGuard, ако ти трябва само един тунел
- VPS за VPN
- VPS за отдалечен достъп до Home Assistant
Коментари
Още няма коментари. Бъди първият.