−25%

cho Windows trả theo năm, đến 31/10. Xem các gói

EQVPS

VPS cho Headscale: máy chủ điều khiển Tailscale tự lưu trữ

Chạy Headscale trên một VPS nhỏ và giữ máy chủ điều phối của mesh VPN trong tầm kiểm soát của bạn. Cài đặt, người dùng đầu tiên, kết nối thiết bị và các giới hạn.

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

Đ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ì

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

Sẵn sàng triển khai? Thanh toán bằng crypto, không KYC — trực tuyến trong khoảng một phút.

Triển khai ngay →

FAQ

Máy chủ Headscale thực sự thấy những gì?

Siêu dữ liệu: những thiết bị nào tồn tại, khóa công khai, địa chỉ của chúng và lần cuối chúng trực tuyến. Bản thân lưu lượng đi thẳng giữa các thiết bị qua WireGuard (hoặc qua relay nếu chúng không kết nối được với nhau) và được mã hóa đầu cuối. Tự lưu trữ nghĩa là siêu dữ liệu đó nằm trên máy chủ của bạn thay vì của người khác.

Tôi có cần ứng dụng khách đặc biệt không?

Không. Bạn dùng các ứng dụng Tailscale thông thường trên Linux, macOS, Windows, iOS và Android rồi trỏ chúng tới URL máy chủ của bạn. Trên Linux chỉ cần một cờ: --login-server.

Gói nào là đủ?

Headscale rất nhẹ: Nano-IP ($8/tháng) dễ dàng phục vụ một gia đình hoặc một nhóm nhỏ. Bạn cần IP riêng vì thiết bị phải truy cập máy chủ điều khiển qua HTTPS; gói NAT không nhận cổng 443 đi vào.

Nếu hai thiết bị không kết nối trực tiếp được thì sao?

Chúng sẽ chuyển sang dùng relay (DERP). Mặc định Headscale dùng các relay công khai của Tailscale, vốn chỉ thấy các gói tin đã mã hóa. Bạn có thể bật relay tích hợp của Headscale thay thế; nó cần mở UDP 3478 và dùng băng thông VPS của bạn cho lưu lượng chuyển tiếp.

So với dịch vụ Tailscale được lưu trữ sẵn thì thiếu gì?

Không có bảng quản trị web chính thức: bạn quản lý người dùng và khóa qua dòng lệnh (có giao diện do cộng đồng làm). Một số tính năng mới của dịch vụ lưu trữ sẵn đến Headscale muộn hơn hoặc không bao giờ. Với mạng cá nhân hoặc nhóm nhỏ, phần cốt lõi (mesh, ACL, MagicDNS, exit node) hoạt động tốt.

Bình luận

Chưa có bình luận nào. Hãy là người đầu tiên.

Để lại bình luận

Bình luận được kiểm duyệt trước khi hiển thị.