Mesh VPN là một trong những công cụ âm thầm khiến mọi thứ dễ dàng hơn: máy tính xách tay, máy chủ ở nhà, điện thoại và các VPS của bạn thấy nhau qua địa chỉ riêng, dù chúng ở đâu. Vấn đề của các mesh VPN lưu trữ sẵn là máy chủ điều phối: một công ty nắm bản đồ của mọi thiết bị bạn sở hữu. Headscale là phần mềm mã nguồn mở thay thế cho máy chủ điều khiển đó. Hãy chạy nó trên một VPS nhỏ, tiếp tục dùng các ứng dụng khách quen thuộc, và bản đồ sẽ là của bạn.
Các thành phần kết hợp thế nào
- Headscale (trên VPS của bạn) cấp địa chỉ, phân phối khóa công khai và thực thi ACL của bạn.
- Ứng dụng khách là các ứng dụng Tailscale tiêu chuẩn, được trỏ tới máy chủ của bạn.
- Lưu lượng đi từ thiết bị tới thiết bị qua WireGuard. Máy chủ điều khiển không bao giờ mang nó.
Điểm cuối cùng này giải thích vì sao một gói rất nhỏ là đủ: VPS chỉ trả lời các yêu cầu điều phối nhỏ.
Bạn cần gì
- Nano-IP ($8/tháng): 2 vCPU và 1 GB RAM là nhiều hơn hẳn mức Headscale sử dụng.
- Một IPv4 riêng và một tên miền, ví dụ
hs.example.com. Thiết bị nói chuyện với máy chủ điều khiển qua HTTPS, nên VPS phải nhận cổng 443 đi vào; gói NAT không làm được (chi tiết).
Cài đặt (Debian 12 / Ubuntu 24.04)
Tải tệp .deb hiện hành từ trang phát hành của Headscale trên GitHub, thay phiên bản bằng bản mới nhất:
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
Sửa /etc/headscale/config.yaml; hai dòng quan trọng:
server_url: https://hs.example.com
listen_addr: 127.0.0.1:8080
Đặt Caddy phía trước để có HTTPS:
cat > /etc/caddy/Caddyfile <<'EOF'
hs.example.com {
reverse_proxy 127.0.0.1:8080
}
EOF
systemctl enable --now headscale
systemctl reload caddy
Thêm người dùng và thiết bị
headscale users create alice
headscale users list # note the user's ID
headscale preauthkeys create --user 1 --expiration 24h
Các bản phát hành cũ yêu cầu tên người dùng thay vì ID trong --user; headscale preauthkeys create --help sẽ cho bạn biết phiên bản của mình cần gì.
Trên thiết bị Linux:
tailscale up --login-server https://hs.example.com --authkey YOUR_KEY
Trên điện thoại và máy tính, ứng dụng Tailscale cho phép đặt máy chủ điều khiển tùy chỉnh trong phần cài đặt. Chạy headscale nodes list trên VPS và thiết bị của bạn sẽ xuất hiện ở đó.
Relay và vượt NAT
Hầu hết thiết bị kết nối trực tiếp. Khi hai thiết bị không làm được (mạng di động khắt khe, NAT kép), lưu lượng đi qua một relay DERP. Mặc định Headscale dùng các relay công khai của Tailscale, vốn chỉ thấy gói tin đã mã hóa. Nếu bạn không muốn bất cứ thứ gì bên ngoài nằm trên đường đi, hãy bật relay tích hợp trong config.yaml (derp.server.enabled: true) và mở UDP 3478. Khi đó lưu lượng chuyển tiếp sẽ tính vào băng thông VPS của bạn.
Những giới hạn thật lòng
Không có bảng điều khiển web chính thức: người dùng, khóa và tuyến đường đều là lệnh CLI (dễ thôi sau hai lần làm). Các tính năng mới của dịch vụ lưu trữ sẵn đến Headscale muộn hơn, nếu có. Và máy chủ điều khiển giờ là trách nhiệm của bạn: nếu nó ngừng hoạt động, các kết nối hiện có vẫn chạy, nhưng thiết bị mới không thể tham gia và khóa không thể làm mới. Hãy sao lưu nó: toàn bộ trạng thái nằm trong /var/lib/headscale.
Với một home lab, một gia đình hoặc một nhóm nhỏ muốn đưa bản đồ thiết bị của mình ra khỏi máy chủ bên thứ ba, đây là một trong những cách dùng tốt nhất cho một VPS $8.
Liên quan
- Tự lưu trữ VPN WireGuard: WireGuard thuần, nếu bạn chỉ cần một đường hầm
- VPS cho VPN
- VPS để truy cập Home Assistant từ xa
Bình luận
Chưa có bình luận nào. Hãy là người đầu tiên.