Virtual Network Computing (VNC) là một giao thức chia sẻ màn hình cho phép bạn điều khiển máy tính từ xa bằng phần mềm máy khách VNC. VNC hoạt động trên môi trường GUI (Giao diện người dùng đồ họa), nó truyền chuyển động của chuột và đầu vào bàn phím của bạn qua mạng bằng giao thức Remote Frame Buffer (RFB).
Thông thường, VNC được các kỹ thuật viên sử dụng để điều khiển màn hình máy khách hoặc được sử dụng bởi một người nào đó cần truy cập Màn hình máy tính của họ trong văn phòng từ nhà. VNC có thể được sử dụng an toàn thông qua mạng VPN hoặc sử dụng kết nối đường hầm SSH.
Trong hướng dẫn này, bạn sẽ thiết lập Máy chủ VNC với TigerVNC trên máy chủ Rocky Linux. Bạn cũng sẽ học cách kết nối an toàn với VNC Server qua đường hầm SSH.
Trên Rocky Linux, nhiều nhóm gói cung cấp một Desktop Environment. Đối với ví dụ này, bạn sẽ cài đặt và cấu hình XFCE làm Desktop Environment cho VNC Server trên hệ thống Rocky Linux.
Trước khi cài đặt các gói, hãy chạy lệnh dnf sau để nâng cấp các gói đã cài đặt lên phiên bản mới nhất.
Thêm kho lưu trữ EPEL vào hệ thống Rocky Linux của bạn thông qua lệnh dnf bên dưới. Nhập Y để thêm kho lưu trữ EPEL và nhấn ENTER.
Tiếp theo, bạn sẽ cài đặt Desktop Environment XFCE thông qua gói nhóm "Xfce" mà kho lưu trữ Rocky Linux cung cấp. Ngoài ra, bạn sẽ cài đặt gói nhóm "base-x" chứa các gói Xorg.
Nhập Y khi được nhắc để xác nhận cài đặt và nhấn ENTER để tiếp tục.
Sau khi cài đặt XFCE desktop và base-x, hãy bật môi trường đồ họa thông qua lệnh systemctl bên dưới. Lệnh này sẽ bật môi trường đồ họa khi máy chủ được khởi động.
Chạy lệnh sau để tạo người dùng mới. Sau đó, thiết lập mật khẩu cho người dùng. Trong ví dụ này, bạn sẽ tạo người dùng mới, "jane", và hãy đảm bảo sử dụng mật khẩu mạnh.
Sau khi tạo người dùng mới, hãy chạy lệnh sau để thêm người dùng mới vào nhóm "wheel". Điều này cho phép người dùng mới thực thi lệnh sudo và nhận được quyền root.
Sau khi cài đặt XFCE Desktop Environment và tạo người dùng VNC, tiếp theo bạn sẽ bắt đầu cài đặt và cấu hình TigerVNC.
Bạn cũng sẽ tạo cấu hình máy chủ VNC, thiết lập Desktop Environment mặc định và thêm người dùng VNC vào danh sách người dùng TigerVNC Server.
Chạy lệnh dnf bên dưới để cài đặt gói "tigervnc-server" vào hệ thống Rocky Linux. Nhập Y khi được nhắc xác nhận cài đặt và nhấn ENTER để tiếp tục.
Sau khi cài đặt hoàn tất, tiếp theo bạn sẽ thiết lập máy chủ VNC cho từng người dùng (người dùng VNC).
Đăng nhập vào người dùng của bạn bằng lệnh sau.
Bây giờ, hãy chạy lệnh sau để khởi tạo Máy chủ VNC cho người dùng "jane". Trong quá trình khởi tạo máy chủ VNC, bạn sẽ được yêu cầu tạo mật khẩu cho máy chủ VNC của mình, vì vậy hãy nhập mật khẩu mạnh và lặp lại—và đối với "mật khẩu chỉ xem", hãy nhập "n" để tắt.
Lệnh này sẽ tạo cấu hình máy chủ VNC sẽ nằm tại "~/.vnc". Cấu hình máy chủ VNC bao gồm tập lệnh xstartup, cấu hình môi trường máy tính để bàn và nhật ký cho quy trình VNC.
Ngoài ra, bạn có thể thấy quy trình VNC mới đang chạy với tên như "HOSTNAME:N" - có nghĩa là hostname của hệ thống và :N của máy tính để bàn/màn hình hiển thị.
Xác minh danh sách các quy trình VNC thông qua lệnh vncserver bên dưới. Bạn sẽ thấy quy trình VNC của màn hình hiển thị ":1" đang chạy.
Bây giờ, bạn phải chấm dứt quy trình VNC hiện tại ":1" để thiết lập Môi trường máy tính để bàn XFCE. Chạy lệnh vncserver bên dưới để dừng tiến trình VNC trên màn hình hiển thị ":1".
Sau khi tiến trình VNC kết thúc, bạn sẽ nhận được thông báo đầu ra như "Killing Xvnc process ID PID".
Bây giờ bạn đã tạo cấu hình máy chủ VNC, hãy mở tệp "~/.vnc/config" bằng trình soạn thảo nano.
Thay đổi cấu hình mặc định như bên dưới. Trong ví dụ này, bạn sẽ sử dụng XFCE làm Môi trường máy tính để bàn mặc định cho máy chủ VNC và khi người dùng kết nối với Máy chủ VNC, màn hình hiển thị mặc định là "1920x1200". Máy chủ VNC sẽ chỉ chạy trên localhost và bật máy tính để bàn dùng chung.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Tiếp theo, nhấn 'Ctrl+d' và quay lại phiên người dùng gốc. Sau đó, mở tệp '/etc/tigervnc/vncserver.users' bằng trình chỉnh sửa nano.
Thêm số hiển thị và người dùng VNC như cấu hình sau. Trong ví dụ này, màn hình hiển thị ":1" sẽ được sử dụng để chạy máy chủ VNC cho người dùng "jane".
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Với cấu hình máy chủ VNC đã tạo, Môi trường máy tính để bàn mặc định đã được cấu hình và người dùng VNC đã được thêm vào danh sách người dùng TigerVNC, giờ đây bạn đã sẵn sàng để khởi động máy chủ TigerVNC và chạy nó như một dịch vụ.
Bây giờ, mỗi khi bạn thêm người dùng VNC mới, bạn phải tải lại trình quản lý systemd để áp dụng các thay đổi mới. Bạn có thể tải lại trình quản lý systemd thông qua lệnh systemctl như bên dưới.
Tiếp theo, hãy khởi động và bật "vncserver@:1.service" cho màn hình hiển thị ":1" bằng lệnh systemctl sau. Thao tác này sẽ bật quy trình máy chủ VNC hiển thị ":1" tự động chạy khi khởi động.
Cuối cùng, xác minh "vncserver@:1.service" để đảm bảo dịch vụ đang chạy.
Nếu "vncserver@:1.service" đang chạy, bạn sẽ thấy đầu ra tương tự như ảnh chụp màn hình sau.
Tại thời điểm này, bạn đã hoàn tất cài đặt và cấu hình máy chủ VNC thông qua "Tiger-VNC" trên máy chủ Rocky Linux. Bạn cũng đã cấu hình XFCE làm Môi trường máy tính để bàn mặc định cho máy chủ VNC. Tiếp theo, bạn sẽ thiết lập Firewalld để bảo mật máy chủ VNC.
Thêm dịch vụ "vnc-server" vào firewalld thông qua lệnh firewall-cmd bên dưới. Sau đó, tải lại các quy tắc firewalld để áp dụng các thay đổi mới.
Cuối cùng, hãy xác minh danh sách các quy tắc firewalld bằng lệnh bên dưới. Nếu bạn thấy dịch vụ "vnc-server" trong danh sách các dịch vụ, thì quy tắc dịch vụ đã được thêm và bật.
Nhập mật khẩu cho người dùng của bạn. Sau khi kết nối, bạn có thể kết nối với máy chủ VNC qua máy chủ cục bộ với cổng 5901.
Mở trình xem VNC trên máy tính cục bộ của bạn. Trong ví dụ này, chúng ta sẽ sử dụng "TigerVNC Viewer".
Trên địa chỉ "VNC Server", nhập máy chủ là localhost hoặc 127.0.0.1 với cổng 5901. Sau đó, nhấp vào "Kết nối" để tiếp tục.
Bây giờ, nhập mật khẩu máy chủ VNC cho người dùng của bạn và nhấp vào "OK".
Nếu kết nối thành công, bạn sẽ thấy màn hình nền XFCE trên màn hình của mình trong ảnh chụp màn hình sau.
Bạn cũng có thể mở thiết bị đầu cuối và chạy lệnh sau để xác minh người dùng của mình.
Một cân nhắc khác đối với máy chủ VNC là bạn có thể giới hạn các địa chỉ IP có thể truy cập vào cổng máy chủ VNC thông qua Firewalld. Và bạn cũng có thể bảo mật kết nối của mình thông qua máy chủ VPN cục bộ.
Thông thường, VNC được các kỹ thuật viên sử dụng để điều khiển màn hình máy khách hoặc được sử dụng bởi một người nào đó cần truy cập Màn hình máy tính của họ trong văn phòng từ nhà. VNC có thể được sử dụng an toàn thông qua mạng VPN hoặc sử dụng kết nối đường hầm SSH.
Trong hướng dẫn này, bạn sẽ thiết lập Máy chủ VNC với TigerVNC trên máy chủ Rocky Linux. Bạn cũng sẽ học cách kết nối an toàn với VNC Server qua đường hầm SSH.
Đ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ủ đáp ứng các yêu cầu sau:- Máy chủ Rocky Linux mới - Bạn có thể sử dụng Rocky Linux v8.5 hoặc v9.
- Người dùng không phải root có quyền root hoặc quản trị viên.
- Tường lửa được bật trên máy chủ.
Cài đặt Môi trường máy tính để bàn
Cài đặt máy chủ Rocky Linux mặc định không có GUI. Để thiết lập VNC Server, bạn sẽ cần cài đặt Môi trường máy tính để bàn trên máy chủ Rocky Linux của mình. Đối với VNC Server, bạn nên sử dụng Desktop Environment nhẹ, giúp tăng hiệu suất và tốc độ.Trên Rocky Linux, nhiều nhóm gói cung cấp một Desktop Environment. Đối với ví dụ này, bạn sẽ cài đặt và cấu hình XFCE làm Desktop Environment cho VNC Server trên hệ thống Rocky Linux.
Trước khi cài đặt các gói, hãy chạy lệnh dnf sau để nâng cấp các gói đã cài đặt lên phiên bản mới nhất.
Mã:
sudo dnf update
Mã:
sudo dnf install epel-release
Mã:
sudo dnf groupinstall "Xfce" "base-x"
Sau khi cài đặt XFCE desktop và base-x, hãy bật môi trường đồ họa thông qua lệnh systemctl bên dưới. Lệnh này sẽ bật môi trường đồ họa khi máy chủ được khởi động.
Mã:
sudo systemctl set-default graphics
Thêm người dùng VNC
Vì lý do bảo mật, nên sử dụng người dùng không phải root để chạy máy chủ VNC. Bạn nên tạo những người dùng chuyên dụng sẽ chạy máy chủ VNC. Nếu bạn cần quyền sudo, bạn có thể thêm người dùng của mình vào nhóm "wheel".Chạy lệnh sau để tạo người dùng mới. Sau đó, thiết lập mật khẩu cho người dùng. Trong ví dụ này, bạn sẽ tạo người dùng mới, "jane", và hãy đảm bảo sử dụng mật khẩu mạnh.
Mã:
sudo useradd -m -s /bin/bash jane
sudo passwd jane
Mã:
sudo usermod -aG wheel jane
Cài đặt TigerVNC Server
Để thiết lập máy chủ VNC, bạn phải cài đặt phần mềm máy chủ VNC. Trong ví dụ này, bạn sẽ cài đặt và sử dụng "TigerVNC Server", có sẵn theo mặc định trên kho lưu trữ Rocky Linux.Bạn cũng sẽ tạo cấu hình máy chủ VNC, thiết lập Desktop Environment mặc định và thêm người dùng VNC vào danh sách người dùng TigerVNC Server.
Chạy lệnh dnf bên dưới để cài đặt gói "tigervnc-server" vào hệ thống Rocky Linux. Nhập Y khi được nhắc xác nhận cài đặt và nhấn ENTER để tiếp tục.
Mã:
sudo dnf install tigervnc-server
Sau khi cài đặt hoàn tất, tiếp theo bạn sẽ thiết lập máy chủ VNC cho từng người dùng (người dùng VNC).
Đăng nhập vào người dùng của bạn bằng lệnh sau.
Mã:
su - jane
Mã:
vncserver
Ngoài ra, bạn có thể thấy quy trình VNC mới đang chạy với tên như "HOSTNAME:N" - có nghĩa là hostname của hệ thống và :N của máy tính để bàn/màn hình hiển thị.
Xác minh danh sách các quy trình VNC thông qua lệnh vncserver bên dưới. Bạn sẽ thấy quy trình VNC của màn hình hiển thị ":1" đang chạy.
Mã:
vncserver -list
Mã:
vncserver -kill :1
Bây giờ bạn đã tạo cấu hình máy chủ VNC, hãy mở tệp "~/.vnc/config" bằng trình soạn thảo nano.
Mã:
nano ~/.vnc/config
Mã:
session=xfce
geometry=1920x1200
localhost
alwaysshared
Tiếp theo, nhấn 'Ctrl+d' và quay lại phiên người dùng gốc. Sau đó, mở tệp '/etc/tigervnc/vncserver.users' bằng trình chỉnh sửa nano.
Mã:
sudo nano /etc/tigervnc/vncserver.users
Mã:
:1=jane
Với cấu hình máy chủ VNC đã tạo, Môi trường máy tính để bàn mặc định đã được cấu hình và người dùng VNC đã được thêm vào danh sách người dùng TigerVNC, giờ đây bạn đã sẵn sàng để khởi động máy chủ TigerVNC và chạy nó như một dịch vụ.
Khởi động máy chủ VNC
Máy chủ TigerVNC cung cấp các tệp dịch vụ systemd động, nghĩa là mỗi màn hình hiển thị hoặc người dùng đều có dịch vụ systemd riêng. Trong ví dụ này, người dùng "jane" đang chạy máy chủ VNC với màn hình hiển thị ":1", vì vậy tệp dịch vụ sẽ là "vncserver@:1.service.Bây giờ, mỗi khi bạn thêm người dùng VNC mới, bạn phải tải lại trình quản lý systemd để áp dụng các thay đổi mới. Bạn có thể tải lại trình quản lý systemd thông qua lệnh systemctl như bên dưới.
Mã:
sudo systemctl daemon-reload
Mã:
sudo systemctl start vncserver@:1.service
sudo systemctl enable vncserver@:1.service
Cuối cùng, xác minh "vncserver@:1.service" để đảm bảo dịch vụ đang chạy.
Mã:
sudo systemctl status vncserver@:1.service
Tại thời điểm này, bạn đã hoàn tất cài đặt và cấu hình máy chủ VNC thông qua "Tiger-VNC" trên máy chủ Rocky Linux. Bạn cũng đã cấu hình XFCE làm Môi trường máy tính để bàn mặc định cho máy chủ VNC. Tiếp theo, bạn sẽ thiết lập Firewalld để bảo mật máy chủ VNC.
Thiết lập Firewalld
Trên máy chủ Rocky Linux mặc định, firewalld đã được cài đặt và bật. Bạn sẽ thêm một dịch vụ mới "vnc-server" vào firewalld.Thêm dịch vụ "vnc-server" vào firewalld thông qua lệnh firewall-cmd bên dưới. Sau đó, tải lại các quy tắc firewalld để áp dụng các thay đổi mới.
Mã:
sudo firewall-cmd --add-service=vnc-server --permanent
sudo firewall-cmd --reload
Mã:
sudo firewall-cmd --list-services
Kết nối với Máy chủ VNC thông qua Đường hầm SSH an toàn
Để bắt đầu đường hầm SSH, hãy chạy lệnh ssh sau đây. Trong ví dụ này, bạn sẽ tạo đường hầm mới đến địa chỉ IP của máy chủ VNC "192.168.5.100" với người dùng "jane" đến máy chủ cục bộ trên cổng TCP "5901", đây là cùng cổng của máy chủ VNC.
Mã:
ssh -L 5901:127.0.0.1:5901 -N -f -l jane 192.168.5.100
Mở trình xem VNC trên máy tính cục bộ của bạn. Trong ví dụ này, chúng ta sẽ sử dụng "TigerVNC Viewer".
Trên địa chỉ "VNC Server", nhập máy chủ là localhost hoặc 127.0.0.1 với cổng 5901. Sau đó, nhấp vào "Kết nối" để tiếp tục.
Bây giờ, nhập mật khẩu máy chủ VNC cho người dùng của bạn và nhấp vào "OK".
Nếu kết nối thành công, bạn sẽ thấy màn hình nền XFCE trên màn hình của mình trong ảnh chụp màn hình sau.
Bạn cũng có thể mở thiết bị đầu cuối và chạy lệnh sau để xác minh người dùng của mình.
Mã:
id
whoami
sudo su
Kết luận
Trong hướng dẫn này, bạn đã cài đặt VNC Server với TigerVNC trên máy chủ Rocky Linux. Bạn cũng đã cài đặt và cấu hình XFCE làm Môi trường máy tính để bàn mặc định cho máy chủ VNC của mình. Và cuối cùng, bạn đã học cách kết nối an toàn với máy chủ VNC thông qua đường hầm SSH.Một cân nhắc khác đối với máy chủ VNC là bạn có thể giới hạn các địa chỉ IP có thể truy cập vào cổng máy chủ VNC thông qua Firewalld. Và bạn cũng có thể bảo mật kết nối của mình thông qua máy chủ VPN cục bộ.