Tailscale với Proxmox: quản trị homelab và backup từ xa

Chia sẻ bài viết

Mục lục
Tailscale với Proxmox: quản trị homelab và backup từ xa

Trả lời nhanh: Cách gọn nhất: cài Tailscale thẳng lên host Proxmox (nền Debian, dùng đúng script chuẩn), web UI https://100.x.y.z:8006 truy cập từ xa an toàn, không mở port. Muốn tách bạch hơn thì chạy trong một LXC (cần cấp quyền /dev/net/tun). Nâng cấp đáng giá nhất cho homelab: đẩy backup Proxmox Backup Server offsite lên VPS qua tailnet.

Proxmox là trái tim của phong trào homelab Việt (từ khóa homelab 880 lượt/tháng và vẫn tăng): một máy cũ chạy chục VM, LXC là cả phòng thí nghiệm. Nhưng trái tim đó thường bị nhốt sau CGNAT, ra khỏi nhà là mù. Bài này nối Proxmox vào tailnet đúng cách (host hay LXC, kèm cái bẫy tun kinh điển), và giải bài toán lớn nhất của mọi homelab: bản backup nằm ngoài căn nhà.

Tóm tắt nhanh
  • Cài ở host Proxmox (Debian) là đơn giản và bền nhất; LXC khi muốn tách vai, nhớ cấp tun
  • Web UI 8006, console VM, SSH, tất cả qua tailnet, đóng cửa với internet
  • LXC bẫy kinh điển: thiếu /dev/net/tun, sửa bằng 2 dòng trong file cấu hình container
  • VM/LXC bên trong muốn vào tailnet: cài từng cái như máy thường, hoặc subnet router cả dải ảo
  • Backup offsite: PBS remote sync / rsync dump lên VPS qua tailnet, cháy nhà không mất lab

Cài ở host: đường thẳng cho đa số

Proxmox VE đứng trên Debian nên script quen thuộc chạy thẳng:

curl -fsSL https://tailscale.com/install.sh | sh
tailscale up --ssh --hostname=pve-nha

Từ đó giao diện quản trị mở qua https://pve-nha:8006 (hoặc IP 100.x) từ bất cứ đâu, console VM, migrate, tạo máy đều chạy trong đường mã hóa; cờ --ssh cho luôn Tailscale SSH vào host. Việc nên làm ngay sau đó: chặn 8006 và 22 khỏi internet công cộng nếu router đang NAT chúng ra ngoài, và bật Disable key expiry cho node này trong console. Ai theo trường phái giữ host tối giản tuyệt đối thì sang phương án LXC bên dưới; còn lại, cài host là lựa chọn ít bất ngờ nhất, sống qua update Proxmox, không phụ thuộc container nào.

Phương án LXC và cái bẫy /dev/net/tun

Chạy Tailscale trong một LXC riêng giúp vai mạng tách khỏi host, nhưng LXC unprivileged mặc định không có thiết bị tun, và đây là ca lỗi Proxmox + Tailscale phổ biến nhất. Sửa bằng cách thêm vào /etc/pve/lxc/<ID>.conf:

lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file

Khởi động lại container rồi cài Tailscale như máy Debian/Ubuntu thường (bài Ubuntu toàn tập áp dụng nguyên). LXC này kiêm luôn subnet router quảng bá dải mạng ảo của Proxmox (ví dụ --advertise-routes=10.10.10.0/24) là mọi VM/LXC khác truy cập được từ xa mà không cài gì thêm, một công đôi việc.

Chiến lược cho VM và LXC bên trong

Ba mức, chọn theo nhu cầu từng máy ảo: (1) Không cài gì, truy cập qua subnet router như trên, đủ cho đa số dịch vụ nội bộ; (2) Cài trong VM quan trọng, VM nào cần danh tính riêng, ACL riêng, Tailscale SSH riêng thì cài như máy thường (VM full có sẵn tun, không vướng bẫy LXC); (3) Sidecar Docker trong VM, stack container theo pattern bài Docker sidecar. Đừng cài tràn lan mọi LXC, mỗi node chiếm một suất quota và làm console rối; quy hoạch theo vai trò.

Bài toán lớn nhất của homelab: backup rời khỏi căn nhà

Homelab chăm chút mấy cũng chung một điểm chết: mọi bản backup nằm cùng địa chỉ với máy chính. Tailnet mở đường đưa backup offsite mà không mở port nào:

  • Chuẩn bài PBS: dựng Proxmox Backup Server trên VPS (cài lên Debian), VPS vào tailnet, rồi trên Proxmox nhà thêm PBS đó làm storage backup qua IP 100.x, job backup hằng đêm đi trong đường mã hóa; hoặc PBS nhà + PBS VPS chạy remote sync đồng bộ datastore.
  • Gọn hơn: giữ vzdump tại nhà, rsync thư mục dump lên VPS mỗi đêm bằng cron qua tailnet.

Backup là khối lượng ghi ngẫu nhiên + dedup chunk dày đặc, I/O ổ đĩa quyết định thời gian chạy job và nhất là thời gian restore lúc dầu sôi lửa bỏng; đây là chỗ VPS NVMe ổ Enterprise U.2 ăn đứt ổ thường. Chính hạ tầng TND cũng backup khách hàng bằng PBS, mô hình này là hàng đã qua trận.

Truy cập khẩn cấp: đừng để trứng một giỏ

Toàn bộ đường vào homelab giờ đi qua Tailscale, vậy Tailscale chết thì sao? Ba lớp phòng bị cho người cẩn thận: node subnet router thứ hai (LXC ở máy khác hoặc router OpenWrt) làm đường vào dự phòng; giữ một lối vật lý (màn hình + bàn phím cắm thẳng, hoặc KVM-over-IP nội bộ); và ghi ra giấy quy trình khôi phục, vì lúc cần đến nó bạn không mở được wiki nằm trong chính homelab. Nguyên tắc chung như mọi bài của series: mạng riêng là lớp cửa chính, console vật lý là chìa dự phòng.

Cấp quyền tun cho LXC, đúng hai dòng

Đây là bẫy khiến nhiều người bỏ cuộc với phương án chạy trong container. Sửa tệp cấu hình container trên host, đường dẫn /etc/pve/lxc/<ID>.conf:

lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
pct stop 101 && pct start 101      # phai stop start, reboot trong container khong an
pct exec 101 -- ls -l /dev/net/tun  # phai thay thiet bi o day

Container không đặc quyền vẫn chạy được Tailscale sau khi cấp hai dòng trên. Nếu vẫn báo không tạo được thiết bị, kiểm mô đun trên host: lsmod | grep tun, chưa có thì modprobe tun rồi thêm tun vào /etc/modules-load.d/tun.conf để tự nạp sau khi khởi động lại.

Đẩy backup ra khỏi nhà, cấu hình cụ thể

Đây là phần đáng giá nhất của bài. Hai đường, chọn theo thứ đang có:

CáchKhi nào dùngLệnh chính
Proxmox Backup Server ở hai đầuCó PBS tại nhà và một PBS trên VPSTrên PBS đích: thêm Remote, rồi tạo Sync Job kéo về theo lịch
Chỉ có Proxmox VE, dùng kho lưu trữ từ xaKhông muốn dựng PBSThêm Storage kiểu PBS hoặc gắn thư mục qua sshfs rồi trỏ Backup Job vào đó
Đồng bộ thô bằng rsyncChỉ cần bản sao tệp dumprsync -avz --delete /var/lib/vz/dump/ user@vps-tailnet:/backup/pve/

Ba điều quyết định backup này có cứu được bạn hay không:

  • Đặt lịch chạy khi đường truyền rảnh, thường là 2 tới 4 giờ sáng, và giới hạn băng thông để không nghẽn mạng nhà: thêm --bwlimit=5000 với rsync, hoặc đặt Rate Limit trong Sync Job của PBS.
  • Kiểm bản khôi phục ít nhất mỗi quý. Backup chưa từng khôi phục thử là backup chưa tồn tại. Dựng một máy ảo mới từ bản sao, bật lên, đăng nhập được là đạt.
  • Giữ bản sao thứ ba không nằm trong tailnet, ví dụ một ổ cứng rời cắm định kỳ. Mã độc tống tiền đi được theo đường mạng, kể cả mạng riêng.

Ba việc nên làm ngay sau khi Proxmox vào tailnet

  • Đóng cổng ra internet. Kiểm bằng cách vào trang kiểm tra cổng từ mạng khác, hoặc nmap -Pn -p 8006,22 <ip-nha> từ máy ngoài. Cổng 8006 phơi ra internet là mục tiêu bị dò mật khẩu hằng ngày.
  • Tắt hạn khóa cho node này trong trang quản trị Tailscale, hoặc đưa vào mạng bằng khóa gắn thẻ. Node hết hạn nghĩa là mất luôn đường vào từ xa, và bạn chỉ phát hiện khi đang cần gấp.
  • Giữ một đường vào dự phòng. Với máy đặt tại nhà, đó là màn hình và bàn phím cắm trực tiếp. Với máy đặt ở nơi khác, đó là console của nhà cung cấp. Đừng để mạng riêng là đường duy nhất.

Câu hỏi thường gặp

Cài Tailscale lên host Proxmox có bị update Proxmox xóa mất không?

Không, Tailscale là gói apt độc lập, update Proxmox VE không đụng đến. Chỉ khi cài lại toàn bộ host (reinstall) mới phải cài lại; giữ auth key quy trình sẵn thì nối lại trong một phút.

Web UI Proxmox qua tailnet có chậm không?

Kết nối direct trong nước thì UI và console VM mượt gần như LAN (cộng vài ms). noVNC console nhạy độ trễ hơn, nếu thấy ì, kiểm tra direct/relay bằng tailscale ping trước khi nghi ngờ Proxmox.

Nên để PBS ở nhà hay trên VPS?

Lý tưởng là cả hai: PBS nhà cho restore nhanh hằng ngày, PBS trên VPS làm bản offsite qua remote sync, đúng tinh thần quy tắc 3-2-1. Chỉ chọn một thì ưu tiên bản offsite, vì rủi ro mất cả cụm (cháy, trộm, điện) đau hơn nhiều so với restore chậm.

Máy Proxmox không có IP công cộng, backup lên VPS có cần mở port không?

Không, đó chính là cái hay: cả hai đầu chỉ cần ra internet được, Tailscale tự đục đường. PBS trên VPS cũng không phơi port 8007 ra công cộng, chỉ nghe trong tailnet.

Hạ tầng VPS tại Việt Nam của TND
Cloud VPS linh hoạt và VPS NVMe xung cao, IP công cộng riêng, đặt tại Việt Nam
Mảnh ghép hoàn thiện homelab là một điểm neo ngoài căn nhà: VPS NVMe TND làm PBS offsite với ổ Enterprise U.2 RAID 10, backup nhanh, restore tức thì, đường đi kín trong tailnet. Node nhẹ làm hub/exit node thì Cloud VPS phổ thông là đủ, bàn giao trong 5 phút.
Xem bảng giá VPS NVMe Xeon PlatinumNhu cầu nhẹ hơn? Xem Cloud VPS

Bài viết liên quan