thắc mắc Giải pháp remote desktop

Hvv.ver5

Senior Member
Hello các bác,

Gọi là giải pháp cho oai chứ mình có 3 (có thể có thêm) con PC muốn set up để remote từ bên ngoài. Người dùng thì ngoài mình và một vài người bạn (max 3 người dùng 1 lúc).

Hiện mình có 2 con VPS trên Oracle 1CPU 1GB RAM (free tier), 1 con mình set làm VPN và 1 con mình cài Guacamole. Khi nào cần remote thì mình kết nối laptop với VPN rồi remote qua RDP. Lâu lâu có bạn cần dùng mà ko cài được /không muốn VPN thì mình remote qua Guacamole (kết nối với 1 tên miền thông qua Cloudflare tunnel).

Kết nối qua VPN thì dùng khá ok nhưng qua Guacamole thì khá là lag. Mình check thì con VPS cài Guacamole lúc có người kết nối chạy 90% RAM, 80% CPU. Ngoài ra, hiện tại thì tốc độ mạng chưa phải vấn đề nhưng mình định thêm 1 NAS vào nên đang xem xét tốc độ chuyển file giữa các máy.

Các bác có cao kiến gì để tối ưu cái mớ của mình không? Mình có vài phương án/thắc mắc các bác giải đáp giúp với.

+ Đổi con máy chạy Guacamole sang một con Pi4-5 chạy ở nhà hoặc nâng cấp con VPS khác có cải thiện được tốc độ của Guacamole không?

+ Các máy của mình chung 1 mạng LAN, rồi mình kết nối 24/24 vào VPN (trên Oracle cloud). Vậy tốc độ chuyển file giữa các máy có giảm đi không? Nếu mình chuyển sang tự host con VPN và con Guacamole ở nhà thì tốc độ có tốt hơn không.

+ Có nên set up IPv6 cho mấy con VPS không?

Cảm ơn các bác.
 
Remote trực tiếp về nhà luôn mượt và ổn định hơn, nhưng phải có IP tĩnh hoặc DDNS.
Tôi 1 thời đi thuê VPS để làm VPN, sau cắt luôn vì tốn kém, nhiều thủ tục, nhiều hạn chế, mà VPN cũng không ngon. Giải pháp là xài IPv6, truy xuất trực tiếp giữa các máy cũng OK. Nhưng sau mua IP tĩnh rồi nên cũng chẳng dùng IPv6 nữa.
Hiện tại tôi remote cái RDP bằng cách forward cổng 3389 ra ngoài thông qua cái Raspberry Pi. 1 cái web nho nhỏ để login, nhập password để mở firewall. Wake cái desktop thông qua SSH, rồi cứ thế quẩy! Ổn định và mượt mà, coi video từ xa vẫn OK.
VNC thì tôi tạo session trên desktop, bạn bè muốn dùng thì login vào web, chạy trực tiếp trên browser, không cần cài thêm phần mềm nào cả.
 
Mình cũng remote desktop trực tiếp về qua việc mở port + ddns. nhanh vi vu chả lag liếc gì cả. Mình đang chạy win thật trên con NUC do nhu cầu việc cũng nặng nặng, trên con NAS mình cũng làm 1 cái máy ảo mở port khác để trỏ về port 3389 của máy ảo cho nhỏ vợ remote về khi cần.
 
Mình lại không có public IP ấy các bác. Mạng nhà mình dưới 1 NAT mà mình không có quyền mở port hay làm gì với nó cả.

Chứ có IP tĩnh hay mở port được đã ko nói.
Remote trực tiếp về nhà luôn mượt và ổn định hơn, nhưng phải có IP tĩnh hoặc DDNS.
Tôi 1 thời đi thuê VPS để làm VPN, sau cắt luôn vì tốn kém, nhiều thủ tục, nhiều hạn chế, mà VPN cũng không ngon. Giải pháp là xài IPv6, truy xuất trực tiếp giữa các máy cũng OK. Nhưng sau mua IP tĩnh rồi nên cũng chẳng dùng IPv6 nữa.
Hiện tại tôi remote cái RDP bằng cách forward cổng 3389 ra ngoài thông qua cái Raspberry Pi. 1 cái web nho nhỏ để login, nhập password để mở firewall. Wake cái desktop thông qua SSH, rồi cứ thế quẩy! Ổn định và mượt mà, coi video từ xa vẫn OK.
VNC thì tôi tạo session trên desktop, bạn bè muốn dùng thì login vào web, chạy trực tiếp trên browser, không cần cài thêm phần mềm nào cả.

Mình cũng remote desktop trực tiếp về qua việc mở port + ddns. nhanh vi vu chả lag liếc gì cả. Mình đang chạy win thật trên con NUC do nhu cầu việc cũng nặng nặng, trên con NAS mình cũng làm 1 cái máy ảo mở port khác để trỏ về port 3389 của máy ảo cho nhỏ vợ remote về khi cần.
 
Mình lại không có public IP ấy các bác. Mạng nhà mình dưới 1 NAT mà mình không có quyền mở port hay làm gì với nó cả.

Chứ có IP tĩnh hay mở port được đã ko nói.
bị double NAT thì gọi lên ISP kêu mở được mà bro
 
Mình lại không có public IP ấy các bác. Mạng nhà mình dưới 1 NAT mà mình không có quyền mở port hay làm gì với nó cả.

Chứ có IP tĩnh hay mở port được đã ko nói.
Là bị CG-NAT hay là thuê phòng không được phép đụng vào modem? Bị CG-NAT thì gọi tổng đài, hoặc chơi IPv6 ổn định hơn, không ngày đẹp trời lại bị CG-NAT. Còn không đụng vào Modem được thì cũng có nhiều giải pháp, nhưng mất công liệt kê ra nếu bạn chỉ bị CG-NAT.
 
Là bị CG-NAT hay là thuê phòng không được phép đụng vào modem? Bị CG-NAT thì gọi tổng đài, hoặc chơi IPv6 ổn định hơn, không ngày đẹp trời lại bị CG-NAT. Còn không đụng vào Modem được thì cũng có nhiều giải pháp, nhưng mất công liệt kê ra nếu bạn chỉ bị CG-NAT.

Không được đụng vào modem bác ạ.

Bác cho mình xin giải pháp với.
 
Tailscale vẫn chậm lắm, mình dùng Wireguard rồi kết nối các máy tính với nhau, để MTU ở ngưỡng 1480. dùng VPN để remoter chứ đừng bao giờ mở port RDP ra ngoài
 
Guacamole
Lâu lâu có bạn cần dùng mà ko cài được /không muốn VPN thì mình remote qua Guacamole (kết nối với 1 tên miền thông qua Cloudflare tunnel).
1. Tôi không hiểu tại sao bạn phải dùng Guacamole đặt tải lên VPS.
2. Rồi lại đi qua Cloudflare tunnel nữa, thay vì dùng một free domain (ví dụ duckdns) chỉ trực tiếp lên VPS của bạn.

Tôi nghĩ VPS chỉ nên dùng để relay RDP mà thôi. Tôi không dám chắc ý của bạn khi nói "ko cài được /không muốn VPN", nhưng tôi đoán dùng VPN có sẵn của Windows chắc không vấn đề gì, không phải cài thêm bất kỳ thứ gì. Bạn cài SSTP server trên VPS, và vất OpenVPN vào sọt rác (nếu bạn đang dùng). Bạn của bạn không cần cài một cái gì, chỉ dùng VPN có sẵn của Windows rồi RDP. Tại sao phải khổ ải dùng qua Guacamole cho nhu cầu cá nhân?

P2P VPN
Phần trên là nói dùng SSTP qua VPS vì không cài bất kỳ phần mềm nào. Tất nhiên tốt nhất vẫn là cài phần mềm để tạo P2P network trực tiếp giữa các máy với nhau. VPS chỉ đóng vai trò duy nhất là để các máy biết đến sự tồn tại của nhau rồi tự kết nối qua kỹ thuật Hole Punching để vượt qua NAT và Firewall cho cả IPv4 và IPv6. Đây là cách Tailscale, ZeroTier, Nebula, etc. làm. P2P VPN hiện nay, wireguard là vua không ngai, đáng tiếc bạn không thể dùng vì không mở port được.

1. Tôi mới kiểm tra lại Free License của Tailscale, họ cho phép tối đa 100 Devices và 3 Users, vừa đúng nhu cầu của bạn. Tôi nghĩ bạn nên dùng trước cái này.

2. Trong trường hợp có hơn 3 người, bạn có thể cài headscale trên VPS của bạn, rồi trỏ Tailscale client app lên đó thay vì dùng server của tailscale.com, khi đó thì không còn giới hạn License nữa. Lưu ý, nếu bạn cài headscale qua docker, thì nên cấu hình docker network hỗ trợ IPv6.

3. Nếu đứng về mặt cá nhân, tôi thích Nebula của bọn Slack hơn. Vì (a) hoàn toàn Open Source cả Client và Server; (b) Nhỏ gọn không ôm đồm quá nhiều như Tailscale; và đặc biệt (c) nó dùng cert key bạn không cần đăng ký, quản lý account gì cả (giống như SSH). Bạn chỉ cần ném zip bao gồm nebula.exe, config.yml, certkey. Bạn của bạn mở ra và chạy. Ngoại trừ cần install Wintun driver trên Windows thì không install gì cả. OS khác không cần driver. Khi bạn cài Tailscale hay Wireguard, nó cũng cài Wintun, vì ông nội Windows nó không tunnel driver sẵn.

Nếu bạn chọn headscale, hay nebula thì tôi khuyên bạn chạy buộc nó chạy trên nền IPv6. Hole Punching vượt qua IPv6 Firewall hiệu quả và ổn định hơn qua IPv4 NAT (và CG-NAT). Đương nhiên bạn phải có IPv6 cho VPS, và modem nhà bạn cấp phát IPv6 cho máy. Trường hợp bạn dùng thêm con router sau modem thì router cũng phải cấp phát hoặc relay IPv6.

2 VPN đồng thời
Nói tóm lại trong trường hợp của bạn thì bạn cần 2 loại VPN. (1) P2P (tailscale hay nebula) cho những người bạn sẵn sàng cài thêm phần mềm để đạt tốc độ cao nhất. Và (2) SSTP relay qua VPS cho những người bạn không muốn cài thêm phần mềm. Bạn cần Split Tunnel cho hai giải IP đối với mọi PC ở nhà bạn, ví dụ 10.0.0.x cho P2P, và 10.0.1.x cho SSTP, để loại bỏ trường hợp VPN on VPN. Còn client để remote từ ngoài vào thì chọn một trong hai loại VPN rồi, nên không lo. Thuyết phục bạn của bạn dùng tailscale và bỏ SSTP thì bạn giảm đi một đống việc. Đỡ nhức đầu khi bạn config nhầm.

Nói thêm
Các máy của mình chung 1 mạng LAN, rồi mình kết nối 24/24 vào VPN (trên Oracle cloud). Vậy tốc độ chuyển file giữa các máy có giảm đi không
1. Như đã nó trên Tailscale và Nebula tạo P2P VPN khi đó việc transfer file giữa các máy là hoàn toàn direct, không đi qua VPS, nên tốc độ giảm vì (encryption overhead) là rất ít. Nếu LAN 1Gbps thì tốc độ còn khoảng 900Mbps.

Tailscale vẫn chậm lắm, mình dùng Wireguard rồi kết nối các máy tính với nhau, để MTU ở ngưỡng 1480. dùng VPN để remoter chứ đừng bao giờ mở port RDP ra ngoài
2. Về vấn đề MTU như bạn trên nói, thì bạn muốn wireguard đặt tốc độ tối ưu thì phải đặt MTU = 1500 - overhead; với overhead = 20 cho IPv4, và = 40 cho IPv6. tailscale dùng wireguard protocol, tôi không biết tailscale có cho phép đặt MTU không. Tôi từng dùng tailscale khi nó mới ra đời, nhưng thích wireguard hơn vì nó ổn định hơn mà tôi lại không cần hole punching. MTU đặc biệt quan trọng khi bạn cần dùng HTTPS, nếu không bạn sẽ bị lỗi SSL.
 
Guacamole

1. Tôi không hiểu tại sao bạn phải dùng Guacamole đặt tải lên VPS.
2. Rồi lại đi qua Cloudflare tunnel nữa, thay vì dùng một free domain (ví dụ duckdns) chỉ trực tiếp lên VPS của bạn.

Tôi nghĩ VPS chỉ nên dùng để relay RDP mà thôi. Tôi không dám chắc ý của bạn khi nói "ko cài được /không muốn VPN", nhưng tôi đoán dùng VPN có sẵn của Windows chắc không vấn đề gì, không phải cài thêm bất kỳ thứ gì. Bạn cài SSTP server trên VPS, và vất OpenVPN vào sọt rác (nếu bạn đang dùng). Bạn của bạn không cần cài một cái gì, chỉ dùng VPN có sẵn của Windows rồi RDP. Tại sao phải khổ ải dùng qua Guacamole cho nhu cầu cá nhân?

P2P VPN
Phần trên là nói dùng SSTP qua VPS vì không cài bất kỳ phần mềm nào. Tất nhiên tốt nhất vẫn là cài phần mềm để tạo P2P network trực tiếp giữa các máy với nhau. VPS chỉ đóng vai trò duy nhất là để các máy biết đến sự tồn tại của nhau rồi tự kết nối qua kỹ thuật Hole Punching để vượt qua NAT và Firewall cho cả IPv4 và IPv6. Đây là cách Tailscale, ZeroTier, Nebula, etc. làm. P2P VPN hiện nay, wireguard là vua không ngai, đáng tiếc bạn không thể dùng vì không mở port được.

1. Tôi mới kiểm tra lại Free License của Tailscale, họ cho phép tối đa 100 Devices và 3 Users, vừa đúng nhu cầu của bạn. Tôi nghĩ bạn nên dùng trước cái này.

2. Trong trường hợp có hơn 3 người, bạn có thể cài headscale trên VPS của bạn, rồi trỏ Tailscale client app lên đó thay vì dùng server của tailscale.com, khi đó thì không còn giới hạn License nữa. Lưu ý, nếu bạn cài headscale qua docker, thì nên cấu hình docker network hỗ trợ IPv6.

3. Nếu đứng về mặt cá nhân, tôi thích Nebula của bọn Slack hơn. Vì (a) hoàn toàn Open Source cả Client và Server; (b) Nhỏ gọn không ôm đồm quá nhiều như Tailscale; và đặc biệt (c) nó dùng cert key bạn không cần đăng ký, quản lý account gì cả (giống như SSH). Bạn chỉ cần ném zip bao gồm nebula.exe, config.yml, certkey. Bạn của bạn mở ra và chạy. Ngoại trừ cần install Wintun driver trên Windows thì không install gì cả. OS khác không cần driver. Khi bạn cài Tailscale hay Wireguard, nó cũng cài Wintun, vì ông nội Windows nó không tunnel driver sẵn.

Nếu bạn chọn headscale, hay nebula thì tôi khuyên bạn chạy buộc nó chạy trên nền IPv6. Hole Punching vượt qua IPv6 Firewall hiệu quả và ổn định hơn qua IPv4 NAT (và CG-NAT). Đương nhiên bạn phải có IPv6 cho VPS, và modem nhà bạn cấp phát IPv6 cho máy. Trường hợp bạn dùng thêm con router sau modem thì router cũng phải cấp phát hoặc relay IPv6.

2 VPN đồng thời
Nói tóm lại trong trường hợp của bạn thì bạn cần 2 loại VPN. (1) P2P (tailscale hay nebula) cho những người bạn sẵn sàng cài thêm phần mềm để đạt tốc độ cao nhất. Và (2) SSTP relay qua VPS cho những người bạn không muốn cài thêm phần mềm. Bạn cần Split Tunnel cho hai giải IP đối với mọi PC ở nhà bạn, ví dụ 10.0.0.x cho P2P, và 10.0.1.x cho SSTP, để loại bỏ trường hợp VPN on VPN. Còn client để remote từ ngoài vào thì chọn một trong hai loại VPN rồi, nên không lo. Thuyết phục bạn của bạn dùng tailscale và bỏ SSTP thì bạn giảm đi một đống việc. Đỡ nhức đầu khi bạn config nhầm.

Nói thêm

1. Như đã nó trên Tailscale và Nebula tạo P2P VPN khi đó việc transfer file giữa các máy là hoàn toàn direct, không đi qua VPS, nên tốc độ giảm vì (encryption overhead) là rất ít. Nếu LAN 1Gbps thì tốc độ còn khoảng 900Mbps.


2. Về vấn đề MTU như bạn trên nói, thì bạn muốn wireguard đặt tốc độ tối ưu thì phải đặt MTU = 1500 - overhead; với overhead = 20 cho IPv4, và = 40 cho IPv6. tailscale dùng wireguard protocol, tôi không biết tailscale có cho phép đặt MTU không. Tôi từng dùng tailscale khi nó mới ra đời, nhưng thích wireguard hơn vì nó ổn định hơn mà tôi lại không cần hole punching. MTU đặc biệt quan trọng khi bạn cần dùng HTTPS, nếu không bạn sẽ bị lỗi SSL.
Wireguard mình cày chán nó rồi bạn, MTU 1480 là dùng với ipv4 và có thể sử dụng với mạng bên ngoài đó =.=
Tailscale và Nebula tạo P2P VPN khi đó việc transfer file giữa các máy là hoàn toàn direct, không đi qua VPS,
đó là khi điều kiện lý tưởng, không bị ngăn việc NAT, gặp trường hợp firewall chặn thì xác định đi qua derp nhé, lúc đó tốc độ mới ghê người.

Lý thuyết là lý thuyết hết. test tốc độ thực tế copy file của từng loại sẽ thấy cái nào tốt nhất. done
 
Cũng đang định mua 1 cái domain về để remote cho tiện (đang dùng domain free của synology), giờ nên dùng bên nào và qua dịch vụ nào nhỉ? vì ip mình là ip động, bạn nào rành cái này hướng dẫn kỹ mình chút với
 
Cũng đang định mua 1 cái domain về để remote cho tiện (đang dùng domain free của synology), giờ nên dùng bên nào và qua dịch vụ nào nhỉ? vì ip mình là ip động, bạn nào rành cái này hướng dẫn kỹ mình chút với
mình mới đăng ký 1 cái tên miên abc.io.vn bên nhân hoà, 30k tiền đăng ký, mua luôn 3 năm đỡ phải gia hạn, rồi chỉnh DNS của nó về cho bên thứ 3 quản lý như cloudflare or dynu.com. đăng nhập tài khoản dịch vụ đó vào synology để nó tự cập nhật ip mỗi khi đổi. sửa tên miền trong synology để dùng là xong rồi
 
mình mới đăng ký 1 cái tên miên abc.io.vn bên nhân hoà, 30k tiền đăng ký, mua luôn 3 năm đỡ phải gia hạn, rồi chỉnh DNS của nó về cho bên thứ 3 quản lý như cloudflare or dynu.com. đăng nhập tài khoản dịch vụ đó vào synology để nó tự cập nhật ip mỗi khi đổi. sửa tên miền trong synology để dùng là xong rồi
Mình định mua .com hoặc tương tự cho gọn (vì domain định đặt cũng hơi dài), nghĩa là mua của bên nào cũng đc xong add vào bên thứ 3 (cloudfire/dynu.com) là được hả bạn? bên đó quản lý free hay 1 năm bao nhiêu nhỉ? để tối mình thử đăng ký rồi mày mò, chỗ nào ko rõ nhờ bạn chỉ hộ nhé
 
Mình định mua .com hoặc tương tự cho gọn (vì domain định đặt cũng hơi dài), nghĩa là mua của bên nào cũng đc xong add vào bên thứ 3 (cloudfire/dynu.com) là được hả bạn? bên đó quản lý free hay 1 năm bao nhiêu nhỉ? để tối mình thử đăng ký rồi mày mò, chỗ nào ko rõ nhờ bạn chỉ hộ nhé
bên đó là free bạn, mỗi bên thì họ có cách cấu hình khác nhau, nhưng cũng khá dễ, bạn cứ làm theo hướng dẫn trên trang đó hoặc có trên google rồi.
 
Back
Top