VNC, viết tắt của Virtual Networking Computing, là một hệ thống kết nối và chia sẻ từ xa, cung cấp quyền truy cập từ xa vào môi trường đồ họa máy tính để bàn trên máy chủ cho các hệ thống Linux. Việc giao tiếp với máy chủ Linux thông qua phần mềm này trở nên hiệu quả và đơn giản hơn nhiều đối với người dùng Windows. Hệ thống điều khiển này có thể quản lý các tệp và phần mềm trên các máy tính được kết nối với Internet. Người dùng thậm chí có thể can thiệp từ xa vào cài đặt máy chủ của họ thông qua VNC bằng dòng lệnh Linux. Trong bài viết này, chúng tôi sẽ hướng dẫn cách cài đặt và thiết lập VNC trong các bản phân phối Linux dựa trên các bản phân phối Debian và RHEL để bạn có thể kết nối với máy chủ VNC thông qua SSH.
Các bước cài đặt và thiết lập VNC trên các bản phân phối Linux khác nhau
Điều kiện tiên quyết
- Trước tiên, bạn cần mua VPS Linux chạy các bản phân phối Linux dựa trên RHEL hoặc Debian như Ubuntu để bạn có thể định cấu hình máy chủ VNC trên đó.
- Bạn nên có đặc quyền người dùng non-root.
- Cấu hình tường lửa mạnh mẽ và phổ biến, khuyên dùng tường lửa UFW.
- Hệ thống cục bộ chạy máy khách VNC tương thích với các kết nối SSH.
Lưu ý: Có rất nhiều chương trình máy khách VNC trong Linux mà bạn có thể lựa chọn, tùy theo nhu cầu và khả năng tương thích với hệ thống của bạn.
Bước 1: Cài đặt môi trường máy tính để bàn
Nếu bạn đã cài đặt phiên bản tối thiểu của hệ điều hành, theo mặc định, phiên bản này chỉ cung cấp giao diện dòng lệnh và không có GUI. Bước đầu tiên để cài đặt VNC là cài đặt GUI GNOME hoặc XFCE hoặc các tùy chọn đồ họa khác để bạn có thể dễ dàng tương tác với máy chủ VNC từ xa.
Trước tiên, hãy kết nối với máy chủ của bạn thông qua đường hầm SSH và cập nhật các gói hệ thống Linux của bạn:
sudo apt update
Sau đó chạy lệnh sau để cài đặt môi trường máy tính để bàn Gnome, môi trường này tương thích hơn với các bản phân phối dựa trên RHEL:
$ sudo dnf groupinstall "Server with GUI" [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
GUI XFCE cung cấp kết nối nhanh và ổn định cùng với phần mềm TightVNC, tương thích hơn với các bản phân phối dựa trên Debian. Do đó, để cài đặt XFCE trên các bản phân phối dựa trên Debian, hãy nhập lệnh sau để bằng cách cài đặt các gói xfce4-goodies môi trường máy tính để bàn của bạn sẽ có nhiều tính năng nâng cao hơn:
$ sudo apt install xfce4 xfce4-goodies [On Debian, Ubuntu and Mint]
Lưu ý rằng khi cài đặt Xfce, bạn sẽ được nhắc đặt Display Manager mặc định. Display Manager là một công cụ cung cấp giao diện người dùng đồ họa để chọn và vào môi trường máy tính để bàn.
Việc lựa chọn Display Manager trong hướng dẫn này không ảnh hưởng đến kết nối với máy chủ VNC vì bạn sẽ sử dụng XFCE hoặc GNOME để kết nối với máy khách VNC, XFCE hoặc bất kỳ GUI nào đã đăng nhập bạn với tư cách là người dùng không phải root. Do đó, chọn Display Manager phù hợp với nhu cầu của bạn và nhấn Enter. Và việc chọn nó sẽ không tạo ra bất kỳ thay đổi nào trong hướng dẫn này.
=>> Đọc thêm: Cách Ping địa chỉ IP trong các hệ điều hành
Bước 2: Cài đặt máy chủ TightVNC
Sau khi bạn đã cài đặt môi trường máy tính để bàn, đã đến lúc cài đặt phần mềm TightVNC. Phần mềm này cho phép quản lý và điều khiển máy tính từ xa. Cài đặt TightVNC thông qua lệnh yum.
Chạy lệnh sau để cài đặt TightVNC trên các bản phân phối dựa trên RHEL:
$ sudo yum -y install tigervnc-server xorg-x11-fonts-Type1 [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
Để cài đặt TightVNC trên các bản phân phối dựa trên Debian, hãy nhập lệnh sau:
$ sudo apt install tightvncserver [On Debian, Ubuntu and Mint]
Bước 3: Tạo người dùng VNC bình thường
Để giao tiếp với máy tính từ xa, bạn phải xác định người dùng bình thường bằng tên người dùng và mật khẩu.
Trong hướng dẫn này, chúng tôi coi Zingserver là người dùng, vì vậy bạn nên thay Zingserver bằng tên người dùng của mình trong lệnh:
$ sudo useradd Zingserver
hoặc:
$ sudo adduser Zingserver
$ sudo passwd Zingserver
Bước 4: Đặt mật khẩu VNC cho người dùng
Để đặt mật khẩu cho người dùng, đầu tiên đăng nhập vào tài khoản người dùng bằng cách thực hiện lệnh su-Username rồi nhập lệnh vncpasswd:
[root@[Zingserver ~]# su - Zingserver
[Zingserver @Zingserver ~]$ vncpasswd
Password:
Verify:
Lưu ý: Mật khẩu được đặt ở bước trước là để truy cập phiên SSH, trong khi mật khẩu chúng tôi xác định trong bước này là để kết nối với máy chủ VNC từ xa. Ngoài ra, lưu ý rằng mật khẩu phải có từ 6 đến 8 ký tự và không thể đặt nhiều hơn 8 ký tự.
Lưu ý: Sau khi mật khẩu được xác nhận, bạn sẽ có thể xác định mật khẩu chỉ xem. Việc đặt mật khẩu này dành cho các trường hợp bạn muốn chia sẻ màn hình máy chủ VNC với những người dùng khác, nhưng không cho phép họ can thiệp vào việc quản lý máy chủ VNC thông qua chuột và bàn phím.
Ngoài ra, lệnh này tạo thư mục “.vnc” chứa tệp passwd trong thư mục chính của người dùng.
Để đảm bảo tệp mật khẩu được tạo, bạn có thể sử dụng lệnh sau:
# ls -l /home/Zingserver /.vnc
-rw------- 1 Zingserver Zingserver 10 Jul 22 15:23 passwd
Cần lưu ý rằng để thay đổi mật khẩu và thêm mật khẩu chỉ xem, bạn phải sử dụng lại lệnh sau:
vncpasswd
Đến thời điểm này, bạn đã cài đặt và khởi động thành công máy chủ VNC. Trong bước tiếp theo, chúng ta cần định cấu hình VNC để khởi chạy giao diện người dùng đồ họa và cung cấp quyền truy cập vào máy chủ thông qua giao diện đồ họa.
Bước 5: Cấu hình máy chủ VNC
Máy chủ VNC phải được cấu hình để kết nối với GUI khi khởi động. Trong hướng dẫn này, chúng tôi sẽ sử dụng tệp ~/.vnc/config trong cài đặt cấu hình người dùng để định cấu hình TigerVNC và kết nối với GUI GNOME.
$ vim ~/.vnc/config
Sau đó thêm các cài đặt sau vào nó:
session=gnome geometry=1920x1200 localhost alwaysshared
Tùy chọn phiên đã được thêm vào để chỉ định phiên bạn muốn kết nối và tùy chọn hình học cung cấp độ phân giải màn hình VNC.
Sau khi áp dụng các thay đổi, hãy đăng xuất khỏi thông tin đăng nhập của người dùng bằng lệnh sau và đăng nhập lại với tư cách là người dùng Root:
$ exit
May mắn thay, người dùng trong TigerVNC có thể dùng tới một cổng cụ thể trong tệp /etc/tigervnc/vncserver.users nhờ cài đặt cấu hình mặc định của nó:
# vim /etc/tigervnc/vncserver.users
Các tham số <display_port>=<username> đóng một vai trò trong tệp cấu hình.
Ví dụ, trong lệnh sau đây, chúng tôi đã xem xét người dùng Zingserver cho cổng hiển thị: 1.
# This file assigns users to specific VNC display numbers.
# The syntax is =. E.g.:
#
# :2=andrew
# :3= Liosa
:1=Zingserver
Nếu bạn muốn thêm người dùng khác, hãy đặt cổng: 2 cùng với tên người dùng mong muốn và tiếp tục theo cách tương tự.
Bước 6: Khởi động máy chủ Tigervnc
Cho đến thời điểm này, bạn đã thiết lập các thay đổi cần thiết, giờ là lúc khởi động máy chủ VNC. Trong bước này, chúng tôi sẽ chạy máy chủ VNC với một người dùng. Khi khởi động VNC lần đầu, mặc định nó sẽ chạy trên cổng 5901 (thuộc người dùng root). Cổng này là cổng hiển thị được giới thiệu trong VNC với ID:0 và VNC có thể chạy trên các cổng khác như :2, :3,… Lưu ý: Điều quan trọng cần nhớ là khi làm việc với máy chủ VNC thì :X là cổng cổng hiển thị trỏ đến và đề cập đến cổng 5900 + X.
Trong ví dụ bên dưới, chúng tôi đã tạo người dùng có tên người dùng Zingserver, Loisa, Justin và Ravi với ID và cổng cụ thể của họ.
User's Port's ID's
5900 root :0
5901 Zingserver :1
5902 ravi :2
5903 Loisa :3
5904 Justin :4
Như bạn có thể thấy, trong ví dụ của chúng tôi, Zingserver có cổng 5901 và ID: 1, và theo thuật toán ở trên, để thêm người dùng mới, Id: 5 và cổng 5905 sẽ được đặt cho nó.
Bây giờ để bắt đầu và chạy dịch vụ VNC cho người dùng được chỉ định với cổng hiển thị: 1 hãy chạy lệnh sau:
# systemctl start vncserver@:1 --now
# systemctl enable vncserver@:1 –now
Sử dụng lệnh sau để kiểm tra xem dịch vụ VNC có đang chạy hay không:
# systemctl status vncserver@:1
Vì chúng tôi đã cung cấp quyền truy cập vào máy chủ VNC cho người dùng có cổng hiển thị: 1. Nếu bạn muốn dịch vụ VNC áp dụng cho những người dùng khác, chỉ cần thay thế cổng hiển thị của người dùng mong muốn: 1 trong lệnh trên.
=>> Đọc thêm: Cách cài đặt và thiết lập VPN WireGuard trên VPS Ubuntu
Bước 7: Cấu hình cổng VNC trên tường lửa
Đối với người dùng Zingserver, cần mở cổng 5901 trong tường lửa (ufw) và iptables của hệ thống.
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
hoặc:
# firewall-cmd --zone=public --add-port=5901/tcp
hoặc:
$ sudo ufw allow 5901/tcp
Trong ví dụ của chúng tôi, nơi chúng tôi đã chỉ định cổng và ID cho những người dùng khác. Nếu muốn mở cổng của họ trong tường lửa, hãy sử dụng lệnh sau làm hướng dẫn:
# iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp -m multiport --dports 5902:5904 -j ACCEPT
hoặc:
# firewall-cmd --zone=public --add-port=5902-5904/tcp
hoặc:
$ sudo ufw allow 5901:5910/tcp
Sau đó khởi động lại dịch vụ Iptables bằng cách chạy các lệnh sau:
# service iptables save
# service iptables restart
hoặc:
# firewall-cmd --reload
# systemctl restart firewalld
Bước 8: Tải xuống ứng dụng khách VNC
Trong bước này, hãy tải xuống và cài đặt VNC viewer trên hệ thống Linux cục bộ của bạn.
Bước 9: Kết nối với máy tính VNC
Kết nối với Remote DesktopVNC thông qua VNC viewer
Sau khi bạn đã cài đặt thành công VNC Viewer, khi chạy nó, bạn sẽ được yêu cầu nhập IP của máy chủ VNC cùng với ID VNC cho người dùng mong muốn (trong ví dụ của chúng tôi, đó là người dùng Zingserver có Id:1).
Sau đó, bạn cần nhập mật khẩu mà bạn đã chỉ định thông qua lệnh “vncpasswd”.
Cuối cùng, bạn có thể truy cập Remote desktop thành công.
Kết nối với máy tính để bàn VNC thông qua đường hầm SSH
Vì các kết nối VNC không sử dụng giao thức được mã hóa. Phương pháp được đề xuất là tạo một đường hầm SSH và chuyển tiếp lưu lượng truy cập một cách an toàn từ máy cục bộ của bạn trên cổng 5901 đến máy chủ trên cùng một cổng.
Để thiết lập đường hầm SSH trên Linux, bạn có thể dễ dàng tạo đường hầm SSH bằng lệnh sau:
ssh -L 59000:localhost:5901 -C -N -l username your_server_ip
Sau đó, bạn sẽ được nhắc nhập mật khẩu của người dùng. Đảm bảo thay thế tên người dùng và server_ip_address bằng tên người dùng và địa chỉ IP của máy chủ của bạn.
Bây giờ bạn đã có một máy chủ VNC chạy trên máy chủ Linux của mình, qua đó bạn có thể quản lý và kiểm soát phần mềm, cài đặt và tệp của mình bằng giao diện đồ họa và áp dụng bất kỳ thay đổi mong muốn nào bằng cách truy cập môi trường đồ họa máy tính để bàn trên máy chủ trong cài đặt của nó. Hy vọng rằng bạn sẽ thích các tính năng của máy chủ VNC và thực hiện hiệu quả các tác vụ quản trị. Nếu có bất kỳ câu hỏi nào hãy chia sẻ chúng với chúng tôi qua zingserver.com. Cảm ơn đã theo dõi bài viết!