Bookmark

Kết nối HomeLab từ xa bằng Tailscale chạy trong Docker

Tailscale tạo một mạng riêng dựa trên WireGuard, giúp truy cập dịch vụ trong HomeLab mà không phải mở từng port ra Internet. Bài này biên tập quy trình chạy Tailscale trong Docker và bật subnet routing cho mạng LAN.

Nguồn tham khảo: i12bretro – Tailscale in Docker . Video gốc thuộc kênh i12bretro trên YouTube .

Youtube video player

Chuẩn bị tài khoản Tailscale

  1. Mở login.tailscale.com và đăng nhập bằng một phương thức SSO.
  2. Vào DNS > Add nameserver > Custom....
  3. Nhập IP DNS server dùng trong mạng LAN rồi bấm Save.
  4. Vào Settings > Keys trong phần Personal Settings.
  5. Bấm Generate auth key..., bật Reusable rồi tạo key.
  6. Giữ auth key ở nơi an toàn để dùng ở bước chạy container. Không đưa key thật vào file Markdown, log hoặc Git.

Cài Docker trên Linux host

Trên máy Linux sẽ chạy gateway, cài Docker và bật service:

1
2
3
4
5
6
7
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg-agent -y
curl -fsSL https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release)/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release) $(lsb_release -cs) stable"
sudo apt install docker-ce docker-compose containerd.io -y
sudo systemctl enable docker && sudo systemctl start docker
sudo usermod -aG docker $USER
su - $USER

Chạy Tailscale container làm subnet router

Thay <AUTH_KEY> bằng key tạo ở bước trên và đổi TS_ROUTES theo subnet LAN thật:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
docker run -d --name=tailscale \
  -v /var/lib:/var/lib \
  -v /dev/net/tun:/dev/net/tun \
  -e TS_ACCEPT_DNS=true \
  --network=host \
  --cap-add=NET_ADMIN \
  --cap-add=NET_RAW \
  --restart=unless-stopped \
  --hostname="ctr-gateway" \
  -e TS_AUTHKEY=<AUTH_KEY> \
  -e TS_ROUTES=192.168.0.0/24 \
  tailscale/tailscale
  1. Quay lại giao diện Tailscale và mở Machines.
  2. Xác nhận máy ctr-gateway đã online.
  3. Mở Settings của máy, chọn Disable key expiry nếu cần gateway hoạt động lâu dài.
  4. Vào Edit route settings....
  5. Chọn Approve all để bật route vào mạng LAN.

Kết nối thiết bị khác

  1. Cài Tailscale client trên máy tính hoặc điện thoại cần truy cập HomeLab.
  2. Đăng nhập bằng cùng phương thức đã dùng để tạo tài khoản.
  3. Khi thiết bị đã kết nối vào tailnet, thử truy cập dịch vụ nội bộ bằng IP LAN.
  4. Chỉ quảng bá các subnet cần thiết; không mở route rộng hơn nhu cầu thực tế.

Lưu ý bảo mật: Auth key có quyền tham gia tailnet. Không commit key vào Docker Compose, shell history công khai hoặc repository. Nếu nghi ngờ key bị lộ, hãy revoke và tạo key mới trong Tailscale.

Nguồn và video


0 Bình luận

Góp Ý / Bình Luận / Đánh giá