CyStack logo
  • Sản phẩm & Dịch vụ
  • Giải pháp
  • Bảng giá
  • Công ty
  • Tài liệu
Vi

vi

Trang chủHướng dẫnBật Remote Desktop Protocol bằng xrdp trên Ubuntu 22.04

Bật Remote Desktop Protocol bằng xrdp trên Ubuntu 22.04

CyStack blog 19 phút để đọc
CyStack blog04/09/2025
Locker Avatar

Chris Pham

Technical Writer

Locker logo social
Reading Time: 19 minutes

Remote Desktop Protocol (RDP) là một giao thức mạng được phát triển bởi Microsoft, cho phép người dùng truy cập và tương tác từ xa với giao diện đồ họa của một máy chủ Windows. RDP hoạt động theo mô hình client-server, trong đó RDP client được cài đặt trên máy cục bộ và RDP server được cài đặt trên máy chủ từ xa.

Bật Remote Desktop Protocol bằng xrdp

RDP được sử dụng rộng rãi cho các kết nối từ xa trên Windows, nhưng bạn cũng có thể truy cập và tương tác với giao diện người dùng đồ họa của một máy chủ Linux từ xa bằng cách sử dụng một công cụ như xrdp, một triển khai mã nguồn mở của RDP server.

Trong hướng dẫn này, bạn sẽ cài đặt và cấu hình xrdp trên máy chủ Ubuntu 22.04 để bật truy cập Remote Desktop bằng giao thức RDP. Bạn sẽ thiết lập một môi trường desktop nhẹ, cấu hình tường lửa và kiểm tra kết nối từ các client Windows, macOS và Linux. Bạn cũng sẽ học cách tối ưu hóa hiệu suất, hỗ trợ nhiều người dùng và giải quyết các vấn đề tương thích với Wayland và Xorg.

Tóm tắt nội dung chính

  • xrdp cho phép truy cập RDP vào Ubuntu: Bạn có thể cài đặt và cấu hình xrdp trên một máy chủ Ubuntu 22.04 để cho phép truy cập remote desktop bằng giao thức RDP tiêu chuẩn từ các client Windows, macOS hoặc Linux.
  • Xfce được khuyến nghị để đạt hiệu suất tốt: Một môi trường desktop nhẹ như Xfce là lý tưởng cho các phiên RDP, cung cấp một giao diện đồ họa đáp ứng với việc sử dụng tài nguyên tối thiểu.
  • Cấu hình tường lửa là rất quan trọng: Để cho phép truy cập RDP, cổng TCP 3389 phải được mở trên tường lửa của máy chủ, tốt nhất là giới hạn cho các địa chỉ IP cụ thể để đảm bảo an toàn.
  • Mỗi người dùng yêu cầu một file .xsession: Đối với mỗi tài khoản người dùng Linux, một file .xsession chỉ định phiên (ví dụ: xfce4-session) phải được tạo để khởi động môi trường desktop một cách chính xác qua RDP.
  • Nhiều người dùng có thể kết nối đồng thời: xrdp hỗ trợ các phiên đồng thời với các môi trường riêng biệt cho mỗi người dùng, miễn là tài nguyên hệ thống đủ và các tài khoản người dùng được cấu hình đúng.
  • Wayland không hoàn toàn tương thích với xrdp: xrdp yêu cầu Xorg để hoạt động ổn định. Nếu hệ thống sử dụng Wayland, nó phải bị vô hiệu hóa (ví dụ: thông qua cài đặt gdm3) để xrdp hoạt động chính xác.
  • Hiệu suất có thể được tối ưu hóa cho các kết nối chậm: Giảm độ phân giải màn hình và độ sâu màu (color depth), vô hiệu hóa các hiệu ứng desktop và bật nén phía client (client-side compression) có thể cải thiện đáng kể hiệu suất RDP qua các mạng có băng thông thấp.
  • Có sẵn các công cụ thay thế: Tùy thuộc vào nhu cầu của bạn, các công cụ như VNC, TeamViewer hoặc X2Go có thể mang lại hiệu suất, tính năng hoặc khả năng tương thích tốt hơn cho việc truy cập remote desktop trong môi trường Linux.

Điều kiện tiên quyết

Để hoàn thành hướng dẫn này, bạn sẽ cần:

  • Một máy chủ Ubuntu 22.04 với một người dùng không phải root có đặc quyền sudo, một tường lửa và ít nhất 2GB RAM, bạn có thể thiết lập bằng cách làm theo hướng dẫn thiết lập máy chủ ban đầu cho Ubuntu 22.04.
  • Một máy tính cục bộ đã cài đặt RDP client. Dưới đây là danh sách các RDP client có sẵn cho các hệ điều hành khác nhau:
    • Trên Windows, bạn có thể sử dụng ứng dụng Remote Desktop Connection mặc định.
    • Trên macOS, bạn có thể sử dụng ứng dụng Microsoft Remote Desktop.
    • Trên Linux, bạn có thể sử dụng FreeRDP hoặc Remmina.

Bước 1 – Cài đặt môi trường desktop trên Ubuntu

Trong bước này, bạn sẽ cài đặt và cấu hình một môi trường desktop trên máy chủ Ubuntu của mình. Theo mặc định, một máy chủ Ubuntu chỉ đi kèm với môi trường terminal. Một môi trường desktop sẽ cần được cài đặt để truy cập giao diện người dùng.

Trong số các tùy chọn có sẵn cho Ubuntu, bạn sẽ cài đặt môi trường desktop Xfce. Xfce cung cấp một môi trường desktop nhẹ, thân thiện với người dùng cho các hệ thống dựa trên Linux.

Để bắt đầu, kết nối với máy chủ của bạn bằng SSH và cập nhật danh sách các gói có sẵn bằng lệnh sau:

sudo apt update

Tiếp theo, cài đặt các gói xfce4xfce4-goodies trên máy chủ của bạn:

sudo apt install xfce4 xfce4-goodies -y

Bạn sẽ được nhắc chọn một trình quản lý hiển thị (display manager), là một chương trình quản lý các cơ chế đăng nhập đồ họa và phiên người dùng. Đối với một thiết lập nhẹ bổ sung cho XFCE, nên chọn lightdm. Hướng dẫn này sẽ sử dụng gdm3, nhưng lightdm là một lựa chọn thay thế tuyệt vời. Sau khi cài đặt môi trường desktop, bây giờ bạn sẽ cài đặt xrdp trên máy chủ của mình.

Bước 2 – Cài đặt xrdp trên Ubuntu

xrdp là một triển khai mã nguồn mở của RDP server cho phép kết nối RDP cho các máy chủ dựa trên Linux. Trong bước này, bạn sẽ cài đặt xrdp trên máy chủ Ubuntu của mình.

Để cài đặt xrdp, hãy chạy lệnh sau trong terminal:

sudo apt install xrdp -y

Sau khi cài đặt xrdp, hãy xác minh trạng thái của xrdp bằng cách sử dụng systemctl:

sudo systemctl status xrdp

Lệnh này sẽ hiển thị trạng thái là active (running):

Output
● xrdp.service - xrdp daemon
     Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
     Active: **active (running)** since Sun 2022-08-07 13:00:44 UTC; 26s ago
       Docs: man:xrdp(8)
             man:xrdp.ini(5)
   Main PID: 17904 (xrdp)
      Tasks: 1 (limit: 1131)
     Memory: 1016.0K
     CGroup: /system.slice/xrdp.service
             └─17904 /usr/sbin/xrdp

Nếu trạng thái của xrdp không phải là running, bạn có thể phải khởi động dịch vụ thủ công bằng lệnh này:

Sau khi thực thi lệnh trên, hãy xác minh lại trạng thái để đảm bảo xrdp đang ở trạng thái running.

Bây giờ bạn đã cài đặt xrdp trên máy chủ của mình. Tiếp theo, bạn sẽ xem lại cấu hình xrdp để chấp nhận các kết nối từ các client từ xa.

Bước 3 – Cấu hình xrdp và cập nhật tường lửa của bạn

Trong bước này, bạn sẽ xem lại cấu hình mặc định của xrdp, được lưu trữ trong /etc/xrdp/xrdp.ini, và thêm cấu hình cho kết nối RDP. Bạn cũng sẽ cập nhật cài đặt tường lửa.

xrdp.ini là file cấu hình mặc định để thiết lập các kết nối RDP đến xrdp server. File cấu hình có thể được sửa đổi và tùy chỉnh để đáp ứng các yêu cầu kết nối RDP.

Mở file trong trình soạn thảo văn bản nano hoặc bất kỳ trình soạn thảo nào bạn chọn:

sudo nano /etc/xrdp/xrdp.ini

File cấu hình chứa các mục (section) khác nhau:

  • Globals định nghĩa một số cài đặt cấu hình toàn cục cho xrdp.
  • Logging định nghĩa các tham số hệ thống con ghi nhật ký (logging subsystem) cho nhật ký.
  • Channels định nghĩa nhiều tham số kênh mà RDP hỗ trợ.
  • Session types định nghĩa nhiều loại phiên được hỗ trợ bởi xrdp. Mọi cấu hình loại phiên được định nghĩa là một mục riêng biệt dưới tên loại phiên của nó được đặt trong ngoặc vuông, chẳng hạn như [Xorg][XVnc]. Không có tiêu đề [Session types] trong file; thay vào đó, nó được viết dưới dạng một nhận xét.

Trong file cấu hình, điều hướng đến mục Session types. Bạn sẽ tìm thấy nhiều loại phiên được hỗ trợ và các tham số của chúng được liệt kê:

xrdp.ini
...

;
; Session types
;

; Some session types such as Xorg, X11rdp, and Xvnc start a display server.
; Startup command-line parameters for the display server are configured
; in sesman.ini. See and configure also sesman.ini.
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20

[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000

[vnc-any]
...

[neutrinordp-any]
...

...

Theo mặc định, các tham số usernamepassword được đặt thành ask, có nghĩa là người dùng sẽ được nhắc nhập tên người dùng và mật khẩu của họ để kết nối qua RDP. Các tham số, chẳng hạn như name, usernamepassword, có thể được sửa đổi nếu cần. Đối với kết nối RDP ban đầu đến máy chủ, cấu hình mặc định sẽ là đủ.

Lưu và đóng file khi hoàn thành.

Tiếp theo, bạn sẽ tạo một file .xsession trong thư mục /home/sammy và thêm xfce4-session làm trình quản lý phiên để sử dụng khi đăng nhập:

echo "xfce4-session" | tee ~/.xsession

tee ghi chuỗi được echo “xfce4-session” vào file .xsession. Cấu hình trên đảm bảo rằng xfce4-session được sử dụng làm trình quản lý phiên khi có yêu cầu đăng nhập đồ họa. Do bạn đã cài đặt xfce làm môi trường desktop, xfce4-session đóng vai trò là trình quản lý phiên của nó. Nếu bạn không bao gồm thông tin này trong file .xsession, không có trình quản lý phiên nào được chọn và phiên RDP sẽ không thể kết nối với màn hình đồ họa.

Khởi động lại xrdp server:

sudo systemctl restart xrdp

Tiếp theo, bạn sẽ cấu hình tường lửa của mình để cho phép các kết nối từ xa từ public IP (IP công cộng) của bạn trên cổng 3389. Một kết nối RDP phục vụ trên cổng TCP/IP 3389. Để truy cập máy chủ từ xa qua RDP, bạn phải cho phép cổng 3389 trong tường lửa của mình.

Đầu tiên, tìm IP công cộng cho máy cục bộ của bạn:

curl ifconfig.me

Trên Windows, sử dụng Windows Command Prompt để chạy lệnh này. curl đặt một yêu cầu trên ifconfig.me trả về IP công cộng của bạn dưới dạng đầu ra:

Output
...
your_local_ip

Tiếp theo, cho phép truy cập vào cổng RDP 3389 trên máy chủ từ xa của bạn, thay thế your_local_ip bằng đầu ra của lệnh cuối cùng:

sudo ufw allow from your_local_ip/32 to any port 3389

Lưu ý: Đảm bảo rằng ufw đã được bật (sudo ufw enable) và được cấu hình chính xác trước khi thêm các quy tắc.

Xác minh trạng thái của tường lửa UFW của bạn:

sudo ufw status

Đầu ra sẽ trông như sau:

Output
Status: Active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
3389                       ALLOWyour_local_ip
OpenSSH (v6)               ALLOW       Anywhere (v6)
...

Bạn đã bật cổng 3389 để chấp nhận kết nối từ địa chỉ IP công cộng của mình. Tiếp theo, bạn sẽ kiểm tra kết nối RDP từ máy cục bộ đến máy chủ từ xa.

Bước 4 – Kiểm tra kết nối RDP

Trong bước này, bạn sẽ kiểm tra kết nối RDP từ máy cục bộ của mình. Các mục dưới đây bao gồm các hành động để kiểm tra kết nối trên máy Windows, macOS và Linux.

Kiểm tra kết nối RDP trên Windows Để kiểm tra kết nối bằng cách sử dụng Remote Desktop Connection client trên Windows, trước tiên hãy khởi chạy ứng dụng Remote Desktop Connection.

Nhập IP công cộng của máy chủ từ xa và tên người dùng vào các ô văn bản có thể điền cho Computer và User name. Bạn có thể cần phải nhấn mũi tên xuống cho Show Options để nhập tên người dùng:

Ubuntu remote desktop

Nhấn nút “Connect”. Nếu bạn nhận được cảnh báo rằng “Remote Desktop can’t connect to the remote computer”, hãy xác minh rằng tường lửa của máy chủ cho phép cổng 3389 và xrdp đang chạy. Nhấn “Yes” nếu bạn nhận được cửa sổ bật lên xác minh danh tính:

Ubuntu remote desktop

Sau đó, nhập tên người dùng của máy chủ từ xa của bạn (sammy) và mật khẩu bạn đã tạo cho người dùng sammy trong quá trình thiết lập máy chủ ban đầu. Nhấn Ok.

Ubuntu remote desktop

Sau khi bạn đã đăng nhập, bạn sẽ có thể truy cập môi trường Ubuntu Desktop của mình:

Ubuntu remote desktop

Sử dụng RDP, bạn đã kết nối thành công với máy chủ Ubuntu từ xa từ máy cục bộ của mình. Bạn có thể đóng nó bằng nút thoát khi đã sử dụng xong môi trường desktop đồ họa của mình.

Kiểm tra kết nối RDP trên macOS Để kiểm tra kết nối bằng cách sử dụng Remote Desktop Connection client trên macOS, trước tiên hãy khởi chạy ứng dụng Microsoft Remote Desktop.

Nhấn “Add PC”, sau đó nhập IP công cộng của máy chủ từ xa của bạn vào ô có thể điền:

Ubuntu remote desktop
Screenshot

Bạn có thể Add a user account khi thiết lập kết nối:

Ubuntu remote desktop
Screenshot

Nếu bạn không thêm người dùng trong quá trình thiết lập, bạn sẽ được nhắc nhập thông tin đăng nhập người dùng của mình:

Ubuntu remote desktop

Nhấn “Yes” để bỏ qua cửa sổ bật lên xác minh danh tính:

Ubuntu remote desktop
Screenshot

Sau khi bạn đã đăng nhập, bạn có thể truy cập Ubuntu remote desktop của mình. Bạn có thể đóng nó bằng nút thoát khi đã sử dụng xong môi trường desktop đồ họa của mình.


Kiểm tra kết nối RDP trên Linux

Bạn sẽ cần một RDP client để kiểm tra kết nối RDP trên máy Linux cục bộ. Đầu tiên, hãy cài đặt remminaRDP client cho Ubuntu:

sudo apt install remmina

Chọn y nếu được nhắc để hoàn tất cài đặt. Lệnh này sẽ cài đặt Remmina, một remote desktop client mã nguồn mở trên hệ thống Ubuntu của bạn bằng cách sử dụng apt. Đối với các bản phân phối Linux khác, bạn có thể xem lại tài liệu Remmina để cài đặt.

Sau khi cài đặt, khởi chạy ứng dụng Remmina trên máy Linux cục bộ của bạn và nhập IP công cộng của máy chủ từ xa vào ô có thể điền. Nhấn “Enter” trên bàn phím của bạn để kết nối với remote desktop của bạn.

Ubuntu remote desktop

Sau đó, nhập tên người dùng của máy chủ từ xa của bạn (đối với hướng dẫn này, tên người dùng là sammy) và mật khẩu bạn đã tạo cho người dùng trong quá trình thiết lập máy chủ ban đầu. Nhấn “Ok”.

Ubuntu remote desktop

Bạn có thể cần nhập lại mật khẩu của người dùng để mở khóa remote desktop.

Sau khi bạn đã đăng nhập, bạn sẽ có thể truy cập môi trường Ubuntu Desktop của mình.

Sử dụng RDP, bạn đã kết nối thành công với máy chủ Ubuntu từ xa từ máy cục bộ của mình. Bạn có thể đóng nó bằng nút thoát khi đã sử dụng xong môi trường desktop đồ họa của mình.

Khi bạn đã đảm bảo rằng kết nối từ xa hoạt động, bạn có thể sử dụng chuỗi này bất cứ khi nào bạn cần sử dụng giao diện đồ họa cho máy chủ Linux từ xa của mình.

Cấu hình nhiều người dùng hoặc các phiên đồng thời trong xrdp

Theo mặc định, xrdp hỗ trợ nhiều người dùng kết nối đến một máy chủ Linux đồng thời, với điều kiện mỗi người dùng có một tài khoản và phiên riêng biệt. Điều này làm cho nó phù hợp với các môi trường được chia sẻ hoặc các thiết lập phát triển theo nhóm.

Hãy thiết lập nhiều người dùng với các phiên xrdp độc lập trên cùng một máy chủ Ubuntu.

1. Thêm người dùng mới

Để cho phép một người khác đăng nhập qua RDP, hãy tạo một tài khoản người dùng hệ thống mới:

sudo adduser alice

Bạn sẽ được nhắc gán mật khẩu và các chi tiết người dùng tùy chọn. Lặp lại quy trình này cho mỗi người dùng cần truy cập RDP.

2. Tạo cấu hình phiên cho mỗi người dùng

Mỗi người dùng phải xác định phiên nào sẽ tải khi kết nối qua xrdp. Chuyển sang người dùng hoặc sử dụng sudo để tạo một file .xsession

echo "xfce4-session" | sudo tee /home/alice/.xsession
sudo chown alice:alice /home/alice/.xsession
sudo chmod 644 /home/alice/.xsession

Đảm bảo thư mục chính có các quyền thích hợp:

sudo chmod 755 /home/alice

Điều này đảm bảo rằng quá trình xrdp-sesman có thể đọc file khởi động phiên.

3. Xác minh giới hạn phiên xrdp

Theo mặc định, xrdp hỗ trợ nhiều phiên đồng thời (thường là 50). Bạn có thể thay đổi điều này trong cấu hình trình quản lý phiên:

sudo nano /etc/xrdp/sesman.ini

Tìm phần sau và sửa đổi khi cần:

MaxSessions=50

Lưu file và khởi động lại dịch vụ:

sudo systemctl restart xrdp

4. Giám sát các phiên

Để xem các phiên xrdp đang hoạt động:

sudo loginctl list-sessions

Bạn cũng có thể giám sát nhật ký xrdp dưới /var/log/xrdp-sesman.log hoặc /var/log/xrdp.log để khắc phục sự cố đăng nhập người dùng.

Mỗi người dùng sẽ có một phiên đồ họa bị cô lập riêng, tách biệt với những người khác. Điều này làm cho xrdp phù hợp với các máy chủ đa người dùng hoặc máy phát triển nơi mỗi người dùng cần giao diện GUI.

Tối ưu hóa hiệu suất xrdp cho các kết nối chậm hoặc có độ trễ cao

Nếu bạn đang truy cập máy chủ Ubuntu của mình qua kết nối internet chậm hoặc mạng có độ trễ cao (chẳng hạn như mobile hotspot, VPN hoặc liên kết xuyên lục địa), cài đặt xrdp mặc định có thể dẫn đến hiệu suất bị lag (giật) hoặc thời gian chờ phiên. Hãy thảo luận về các kỹ thuật khác nhau mà bạn có thể sử dụng để tối ưu hóa trải nghiệm xrdp của mình để cải thiện khả năng phản hồi và giảm mức sử dụng băng thông.

Chọn một môi trường desktop nhẹ

Việc lựa chọn môi trường desktop ảnh hưởng lớn đến khả năng phản hồi của phiên. Các môi trường nặng như GNOME hoặc KDE Plasma tiêu tốn nhiều CPU và bộ nhớ hơn, dẫn đến hiệu suất chậm trong điều kiện mạng bị hạn chế.

Như đã nêu trong hướng dẫn này, sử dụng Xfce cung cấp trải nghiệm cân bằng về mức sử dụng tài nguyên và khả năng sử dụng. Các lựa chọn thay thế như LXDE hoặc MATE có thể giảm thêm mức tiêu thụ bộ nhớ và cải thiện thời gian tải:

sudo apt install lxde -y

Sau khi cài đặt, hãy cập nhật file .xsession cho phù hợp:

echo "startlxde" > ~/.xsession

Vô hiệu hóa hiệu ứng hình ảnh trên desktop

Hầu hết các môi trường desktop đều bao gồm các cải tiến hình ảnh như compositing, đổ bóng, hoạt ảnh cửa sổ và độ trong suốt. Những tính năng này không cần thiết cho việc truy cập từ xa và tiêu thụ thêm băng thông.

Trong Xfce, bạn có thể vô hiệu hóa các hiệu ứng này bằng cách vào:

Applications Menu → Settings → Window Manager Tweaks → Compositor Tab → Bỏ chọn “Enable display compositing”.

Giảm độ phân giải màn hình và độ đậm màu

Độ phân giải màn hình cao hơn và độ sâu màu 32-bit yêu cầu nhiều băng thông hơn. Giảm các cài đặt này ở phía client có thể cải thiện đáng kể hiệu suất từ xa. Trên Windows RDP Client:

  • Mở cửa sổ Remote Desktop Connection.
  • Đi đến tab Display.
  • Đặt độ phân giải màn hình thấp hơn (ví dụ: 1024×768).
  • Thay đổi Colors thành High Color (16-bit).

Trên Remmina (Linux):

  • Chỉnh sửa kết nối RDP đã lưu của bạn.
  • Điều hướng đến tab Display.
  • Chọn Color Depth: 16-bit hoặc 24-bit.

Bật nén (compression) và bộ đệm (caching)

Một số RDP client cung cấp tính năng bitmap hoặc glyph caching và nén để tối ưu hóa việc truyền dữ liệu:

  • Windows RDP Client: Trong Experience, chọn tốc độ kết nối thấp hơn (ví dụ: 56 Kbps) để bật nén và vô hiệu hóa các tính năng hình ảnh không cần thiết.
  • Remmina: Trong tab Advanced, bật nén và caching nếu được hỗ trợ.

Các cài đặt này làm giảm việc truyền dữ liệu lặp lại, đặc biệt đối với các yếu tố màn hình tĩnh như menu và hình nền.

Vô hiệu hóa hình nền

Hình ảnh hình nền tốn nhiều tài nguyên và không cần thiết cho hầu hết các phiên từ xa. Trong Xfce, vô hiệu hóa hình nền:

Settings → Desktop → Background Tab → Style: None.

Điều này làm giảm độ phức tạp về đồ họa và tăng tốc thời gian vẽ lại. Bằng cách kết hợp các bước này, bạn có thể cải thiện đáng kể hiệu suất xrdp ngay cả trên các kết nối chậm hoặc bị tắc nghẽn.

Tìm hiểu khả năng tương thích của xrdp với Wayland và Xorg

Ubuntu và các bản phân phối Linux hiện đại khác đã ngày càng sử dụng Wayland làm giao thức display server mặc định, thay thế hệ thống Xorg cũ hơn. Tuy nhiên, Wayland không hoàn toàn tương thích với xrdp tại thời điểm viết bài này. Hãy cùng khám phá sự khác biệt giữa hai cái này và cách cấu hình hệ thống của bạn để có kết quả tốt nhất.

Xorg là gì?

Xorg (X11) là display server truyền thống được sử dụng bởi các Linux desktop. Nó phát triển, được hỗ trợ rộng rãi và tương thích với hầu hết tất cả các giao thức remote desktop bao gồm cả RDP.

Xrdp hoạt động với Xorg để tạo các phiên desktop ảo cho các kết nối RDP đến, làm cho nó trở thành tùy chọn ổn định nhất cho việc truy cập từ xa.

Wayland là gì?

Wayland là một sự thay thế hiện đại cho Xorg, được thiết kế để an toàn và hiệu quả hơn. Nó là display server mặc định cho GNOME trên các bản phát hành Ubuntu gần đây. Tuy nhiên, Wayland hạn chế quyền truy cập từ xa vào display server, khiến cho xrdp (và một số VNC server) khó hoạt động đúng cách.

Các triệu chứng của việc không tương thích Wayland:

  • Màn hình đăng nhập xuất hiện nhưng phiên không khởi động được.
  • Màn hình trống hoặc đen sau khi xác thực RDP.
  • Phiên đóng ngay lập tức sau khi thử đăng nhập.

Vô hiệu hóa Wayland để tương thích với xrdp

Nếu hệ thống của bạn đang sử dụng GDM (GNOME Display Manager), bạn có thể buộc nó sử dụng Xorg bằng cách vô hiệu hóa Wayland:

  1. Mở file cấu hình GDM:
sudo nano /etc/gdm3/custom.conf
  1. Bỏ ghi chú và đặt dòng sau:
WaylandEnable=false
  1. Lưu và đóng file.
  2. Khởi động lại display manager hoặc khởi động lại:
sudo systemctl restart gdm3

Hoặc, sử dụng một môi trường desktop như Xfce, MATE hoặc LXDE mặc định sử dụng Xorg, đặc biệt khi được sử dụng trong môi trường headless hoặc máy chủ.

Cho đến khi hỗ trợ Wayland trở nên ổn định trong xrdp, nên sử dụng Xorg để tạo phiên và đăng nhập đồ họa đáng tin cậy.

So sánh xrdp với các lựa chọn thay thế: VNC, TeamViewer và NoMachine

Mặc dù xrdp cung cấp một cách thuận tiện để truy cập một phiên đồ họa trên máy chủ Linux qua Remote Desktop Protocol, nó không phải là tùy chọn duy nhất có sẵn để truy cập remote desktop. Tùy thuộc vào các yêu cầu của bạn, chẳng hạn như hiệu suất, khả năng tương thích nền tảng hoặc bảo mật, các công cụ truy cập từ xa khác có thể phù hợp hơn.

Bảng sau đây so sánh xrdp với các lựa chọn thay thế như VNC, TeamViewer và NoMachine.

Tính năng/Công cụ xrdp VNC TeamViewer NoMachine
Giao thức RDP (Microsoft Remote Desktop Protocol) RFB (Remote Framebuffer Protocol) Độc quyền (Proprietary) NX Protocol (NoMachine Proprietary)
Mã nguồn mở (Open Source) Có (thay đổi theo triển khai) Không Một phần (Miễn phí cho sử dụng cá nhân)
Hỗ trợ nền tảng Máy chủ Linux; RDP client trên Windows/macOS/Linux Đa nền tảng (máy chủ và client trên tất cả các OS) Windows, macOS, Linux, Android, iOS Windows, macOS, Linux, Android, iOS
Độ phức tạp thiết lập Trung bình (yêu cầu môi trường desktop và cấu hình) Trung bình đến Cao (thiết lập thủ công theo từng triển khai) Rất Thấp (tự động thiết lập với GUI) Trung bình
Hiệu suất qua LAN Tốt với môi trường desktop nhẹ (Xfce, LXDE) Trung bình; có thể bị lag ở độ phân giải cao Xuất sắc Xuất sắc
Hiệu suất qua WAN Chấp nhận được với các tối ưu hóa Kém đến Trung bình Xuất sắc (NAT traversal, nén) Xuất sắc (nén thích ứng)
Truyền file Không (trừ khi được cấu hình riêng) Thay đổi theo triển khai Có (tích hợp sẵn) Có (tích hợp sẵn)
Hỗ trợ nhiều người dùng Có (các phiên bị cô lập với người dùng riêng biệt) Thông thường là phiên chia sẻ (thay đổi theo triển khai) Một phiên tại một thời điểm (cho mỗi kết nối) Có (một hoặc nhiều phiên)
Bảo mật Dựa vào các quy tắc SSH/UFW để bảo mật Cần SSH tunneling để sử dụng an toàn Các kết nối được mã hóa, 2FA, truy cập dựa trên tài khoản Được mã hóa theo mặc định
Trường hợp sử dụng tốt nhất Truy cập RDP gốc vào Linux từ Windows/macOS Xem một phiên desktop hiện có Hỗ trợ từ xa, truy cập không giám sát Truy cập đa phương tiện và desktop hiệu suất cao

Nếu bạn đang tìm kiếm hỗ trợ RDP gốc với chi phí tối thiểu và tích hợp với các RDP client hiện có, xrdp là một lựa chọn lý tưởng.

Tuy nhiên, đối với cộng tác thời gian thực hoặc các ứng dụng đa phương tiện, TeamViewer hoặc NoMachine có thể phù hợp hơn. Đối với các môi trường mã nguồn mở, nơi yêu cầu quyền truy cập được chia sẻ, VNC vẫn là một tùy chọn phổ biến. ”

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

1. Tôi có thể sử dụng xrdp để kết nối từ Windows đến Ubuntu không?

Có. xrdp cho phép bạn kết nối từ máy Windows đến máy chủ Ubuntu từ xa bằng cách sử dụng

Remote Desktop Connection (RDP) client

tích hợp sẵn. Sau khi xrdp được cài đặt và cấu hình trên máy chủ Ubuntu, bạn có thể khởi tạo một phiên RDP bằng cách nhập địa chỉ IP công cộng của máy chủ vào RDP client của Windows.

2. xrdp sử dụng cổng nào?

Theo mặc định, xrdp lắng nghe trên cổng TCP 3389, là cổng tiêu chuẩn cho các kết nối RDP. Bạn cần đảm bảo rằng cổng này được mở trên tường lửa của máy chủ và có thể truy cập được từ máy client của bạn.

3. Tại sao tôi nhận được một màn hình đen sau khi đăng nhập qua RDP?

Một màn hình đen thường cho thấy một cấu hình phiên không đúng. Các nguyên nhân phổ biến bao gồm:

  • Thiếu hoặc sai file .xsession trong thư mục chính của người dùng.
  • Môi trường desktop không tương thích hoặc không được hỗ trợ.
  • Xung đột với Wayland (đảm bảo hệ thống đang sử dụng Xorg).
  • Các vấn đề về quyền (permission) với thư mục chính hoặc file .xsession.

Việc xác minh thiết lập phiên desktop và chuyển sang một DE nhẹ như Xfce thường giải quyết được vấn đề.

4. xrdp có an toàn cho việc truy cập từ xa không?

Mặc dù RDP bao gồm mã hóa tích hợp sẵn, nhưng các biện pháp bảo mật bổ sung vẫn được khuyến nghị:

  • Giới hạn quyền truy cập vào cổng 3389 bằng cách sử dụng UFW hoặc tường lửa.
  • Tunneling phiên RDP qua SSH để mã hóa.
  • Hạn chế truy cập vào các địa chỉ IP đã biết.
  • Sử dụng mật khẩu người dùng mạnh và vô hiệu hóa đăng nhập root.

Đối với các môi trường sản xuất, việc bảo mật xrdp bằng SSH hoặc một VPN được khuyến nghị mạnh mẽ.

5. Làm cách nào để thay đổi môi trường desktop được sử dụng bởi xrdp?

Để thay đổi môi trường desktop được sử dụng trong phiên xrdp của bạn, hãy cập nhật file

.xsession trong thư mục chính của bạn. Ví dụ, nếu bạn muốn chuyển sang LXDE:

echo "startlxde" > ~/.xsession

Đảm bảo môi trường desktop đã chọn được cài đặt và khởi động lại dịch vụ xrdp để các thay đổi có hiệu lực. 6. Tôi có cần mở bất kỳ cổng nào trên tường lửa để xrdp hoạt động không?

Có. xrdp yêu cầu cổng TCP 3389 phải được mở cho các kết nối RDP. Bạn có thể cho phép truy cập vào cổng này cho IP của mình bằng cách sử dụng ufw:

sudo ufw allow from <your_ip_address>/32 to any port 3389

Thay thế <your_ip_address> bằng địa chỉ IP công cộng thực tế của bạn.

7. Nhiều người dùng có thể kết nối đến cùng một máy chủ bằng cách sử dụng xrdp không?

Có. xrdp hỗ trợ nhiều người dùng với các phiên desktop bị cô lập. Mỗi người dùng phải có một tài khoản hệ thống Linux riêng biệt và cấu hình .xsession ****của riêng họ. Bạn có thể giám sát các phiên đang hoạt động và điều chỉnh giới hạn bằng cách sử dụng /etc/xrdp/sesman.ini

8. Làm cách nào để khắc phục các sự cố xác thực khi kết nối với xrdp? Lỗi xác thực có thể do:

  • Sai tên người dùng hoặc mật khẩu
  • Thiếu file .xsession
  • Môi trường desktop được cấu hình sai
  • Các vấn đề về quyền truy cập file trong thư mục chính của người dùng

Hãy xác minh rằng người dùng tồn tại, file .xsession được thiết lập chính xác và các quyền file là phù hợp (ví dụ: chmod 755 ~/chown user:user ~/.xsession).

Kết luận

Trong hướng dẫn này, bạn đã học cách cấu hình xrdp trên một máy chủ Ubuntu 22.04 để bật truy cập remote desktop bằng giao thức RDP. Bạn đã cài đặt một môi trường desktop, thiết lập các quy tắc tường lửa và kết nối từ nhiều hệ điều hành khác nhau bao gồm Windows, macOS và Linux.

Bạn cũng đã học cách tối ưu hóa hiệu suất cho các mạng chậm hơn, cấu hình các phiên đa người dùng và giải quyết các vấn đề tương thích giữa xrdp và Wayland. Với các bước này, máy chủ Ubuntu của bạn giờ đây có thể truy cập được thông qua giao diện đồ họa, giúp việc quản lý từ xa dễ dàng hơn từ hầu hết mọi thiết bị.

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất