Mình vừa mới chuyển nhà từ Toyama lên Osaka, và phải chuyển qua sử dụng dịch vụ Internet mới do Sony cung cấp. Sony NURO mang đến tốc độ rất ấn tượng — gói cơ bản đã đạt đến 2Gbps (tốc độ thực tế mình đo được khoảng 1Gbps với Wi-Fi 6), so với dịch vụ cáp quang NTT FLET’s Hikari 1Gbps khi đo thực tế chỉ đạt khoảng 300Mbps.

Tuy nhiên, sau khi lắp đặt xong, mình mới phát hiện: Sony NURO sử dụng công nghệ MAP-E, một dạng NAT đặc biệt (tương tự như CG-NAT) được thiết kế để chia sẻ địa chỉ IPv4 giữa nhiều người dùng. Hậu quả là các tính năng quen thuộc cho homelab như mở port (port forwarding) hay DMZ sẽ không còn hiệu lực. Đồng nghĩa với việc mình không thể truy cập từ bên ngoài vào dịch vụ mạng nội bộ ở nhà thông qua địa chỉ Public IPv4 như cách thông thường được nữa.

Để giải quyết vấn đề này, mình có thể sử dụng 1 trong 2 cách sau:

Tuy nhiên, hai cách này đều yêu cầu thiết lập khá rắc rối, đặc biệt khi ở nhà đang sẵn có nhiều dịch vụ mạng cần truy cập từ bên ngoài. Để đơn giản hóa việc thiết lập, mình sẽ sử dụng phương án mới: kết hợp TailscaleCaddy Server cài đặt trên VPS.

Mô hình kết nối sẽ như bên dưới

I. Cài đặt Tailscale

Tham khảo lại bài viết bên dưới để hiểu rõ hơn về Tailscale và cách cài đặt.

1. Trên máy chủ nội bộ (Proxmox, NAS…)

Chạy lệnh sau trên máy chủ nội bộ để cài đặt Tailscale. Mình cài đặt trên 1 LXC của Proxmox

curl -fsSL https://tailscale.com/install.sh | shCode language: Nginx (nginx)

Kích hoạt Tailscale

sudo tailscale up --advertise-routes=192.168.0.0/24Code language: Nginx (nginx)

Thông số --advertise-routes=192.168.0.0/24: thông báo cho Tailscale rằng node này (LXC Container) có thể truy cập đến toàn bộ mạng LAN nội bộ (bao gồm NAS, camera, v.v…). Bạn cần thay thế 192.168.0.0/24 bằng subnet đang dùng của mạng LAN nội bộ.

Truy cập vào trang quản lý của Tailscale: admin.tailscale.com, vào tab Machines, chọn Node LXC bạn vừa mới cài đặt. Phần Subnets, bạn sẽ thấy hiện ra mục Awaiting Approval, bấm vào Edit.

Tick chọn vào kết bên subnet 192.168.0.0/24 và bấm Save để xác nhận Tailscale net có quyền truy cập vào mạng LAN nội bộ 192.168.0.0/24 thông qua Node LXC.

2. Trên VPS

Tương tự, cài đặt Tailscale bằng lệnh sau

curl -fsSL https://tailscale.com/install.sh | shCode language: Nginx (nginx)

Kích hoạt Tailscale bằng lệnh

sudo tailscale up --accept-routesCode language: Nginx (nginx)

Thông số --accept-routes để cho phép VPS truy cập vào subnet 192.168.0.0/24 đã được thiết lập trước đó.

II. Kiểm tra kết nối giữa VPS và mạng nội bộ

Truy cập SSH vào VPS và ping thử vào NAS hay VM bất kỳ trong mạng nội bộ. Ví dụ:

ping 192.168.0.50Code language: CSS (css)

Nếu ping thành công nghĩa là kết nối Tailscale đã hoạt động đúng như ý muốn.

III. Thiết lập Caddy Server trên VPS

Mình đã có sẵn Caddy Server chạy bằng Docker trên homelab ở nhà, giờ chỉ việc bưng toàn bộ thiết lập lên VPS là xong.

Tạm ngưng Caddy Server

cd ~/caddy
docker compose downCode language: Bash (bash)

Sau đó rsync toàn bộ thư mục caddy lên VPS

cd ~
rsync -avz caddy root@IP-VPS:~/.Code language: Nginx (nginx)

Kích hoạt lại Caddy trên VPS

cd ~/caddy
docker compose up -dCode language: Bash (bash)

Nếu bạn thiết lập Caddy Server từ đầu, tham khảo bài viết bên dưới:

IV. Trỏ domain về VPS

Truy cập trang quản lý DNS (Cloudflare, Namecheap…), cập nhật lại các bản ghi của các tên miền đang trỏ về IP của Homeserver thành IP của VPS.

Chờ vài phút để Caddy hoàn thành việc tạo chứng chỉ SSL. Sau đó mình có thể truy cập vào các dịch vụ mạng ở nhà thông qua tên miền như bình thường.

Vậy là xong!

Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận