Bài toán: Nếu không có IP tĩnh, làm sao để remote desktop khác mạng LAN?
Hiện nay, có nhiều giải pháp có thể làm điều này như Tailscale (VPN), No-IP … . Tuy nhiên mỗi giải pháp đều có nhiều ưu ngược điểm:
- Tailscale : Bắt buộc kích hoạt VPN, nhiều người không mong muốn vì lý do bảo mật
- No-IP : Gói free phải reset hằng tháng
Từ đó Cloudflare Tunnel vẫn là một giải pháp mình cho là ổn định (điều kiện: Phải có tên miền riêng trỏ qua cloudflare)
Hướng dẫn cài đặt trên host (máy cần remote desktop, host…)
Trước tiên, cần cấu hình chút trên cloudflare dashboard, chọn mục Zero Trust

Tiếp theo chọn Networks > Connectors -> Add a tunnel -> Cloudflare tunnel. Nhận Tunnel name và lưu lại

Tiếp theo download theo hệ điều hành mong muốn và làm theo hướng dẫn (Chú ý token phải được copy ngay vì nó sẽ không hiển thị lại)
Ví dụ với MacOS, mở terminal:
brew install cloudflared
sudo cloudflared service install <TOKEN>
sudo launchctl start com.cloudflare.cloudflared
Tiếp theo, nhập sub-domain vào tên miền (đã trỏ qua cloudflare) và tiếp tục. Lưu ý Service mình cài cho MacOS nên remote port để dùng Screen Sharing là 5900, trên Windows thường là 3389

Kết quả sau khi hoàn tất:

Kiểm tra lại trạng thái host (lưu ý cần cho phép port 5900 qua Firewall)

Remote desktop từ máy khác (Client)
Trước hết, hãy ping để đảm bảo cloudflare đã tạo sub-domain thành công. Nếu không phải gói trả phí, bạn cần chạy một commandline để mapping từ host public về local trên client.
cloudflared access tcp --hostname <HOST. Eg: abc.def.com> --url localhost:5900
(thay thế hostname bằng url của bạn, url local tùy chỉnh port cho phù hợp, sau này bạn sẽ remote qua port đó)
Sau đó tiến hành remote qua localhost:5900 như bình thường.
- Đối với Windows – Windows: Sử dụng Remote Desktop mặc định
- Đối với Windows – MacOS: Sử dụng RealVNC Viewer
- Đối với MacOS – Windows: Sử dụng app “Windows” trên app store
- Đối với MacOS – MacOS: Sử dụng Screen Sharing (mặc định)
Kết quả:

Nâng cao
Ngoài ra, nếu bạn muốn bảo mật tốt hơn (verify qua email mỗi lần remote hoặc một hình thức auth khác) có thể tham khảo trong menu “Access Controls”
Chúc các bạn thành công!