Gần đây, bạn đã học cách cài đặt và sử dụng Apache Guacamole để tạo kết nối SSH trên máy chủ chạy Rocky Linux 8. Một trong những cách sử dụng phổ biến nhất của Guacamole là sử dụng nó như một trình xem VNC (Virtual Network Computing). Sử dụng VNC, bạn có thể truy cập máy tính để bàn hoặc máy chủ từ bất kỳ đâu mà không cần cài đặt bất kỳ ứng dụng khách của bên thứ 3 nào.
Trong hướng dẫn này, bạn sẽ học cách cài đặt VNC trên máy chủ Linux và sử dụng Guacamole để tạo kết nối VNC. Chúng tôi sẽ đề cập đến tất cả các bản phân phối phổ biến và chỉ định sự khác biệt ở bất kỳ nơi nào cần thiết.
Ubuntu / Debian
[*]
Cài đặt các gói tiện ích cơ bản. Một số trong số chúng có thể đã được cài đặt.
CentOS / Rocky Linux / AlmaLinux
Ubuntu / Debian
CentOS / Rocky Linux / AlmaLinux
Nếu bạn đã làm theo hướng dẫn Apache Guacamole của chúng tôi, kho lưu trữ EPEL sẽ được cài đặt sẵn để bạn có thể bỏ qua lệnh đầu tiên. Lệnh thứ hai cài đặt môi trường Đồ họa và thư viện thực tế, và lệnh thứ ba đặt môi trường GUI làm mặc định. Bạn cần khởi động lại máy chủ để cài đặt có hiệu lực.
Ubuntu / Debian
Chạy lệnh sau để cài đặt máy chủ TigerVNC.
CentOS / Rocky Linux / AlmaLinux
Ubuntu / Debian
CentOS / Rocky Linux / AlmaLinux
Chạy lệnh sau để tạo người dùng mới và đặt mật khẩu. Thay thế vncuser bằng tên người dùng bạn chọn.
Bước tiếp theo là tạo mật khẩu truy cập sẽ được sử dụng để kết nối từ máy khách VNC đến máy chủ trên máy của bạn.
Chuyển sang vncuser.
Đặt mật khẩu truy cập VNC.
Bạn sẽ được yêu cầu tạo mật khẩu và xác minh mật khẩu đó. Tiếp theo, bạn sẽ được hỏi xem bạn có muốn tạo mật khẩu chỉ xem không. Mật khẩu Chỉ xem hữu ích nếu bạn muốn giới hạn quyền truy cập VNC chỉ để xem hệ thống và cấm mọi tương tác sử dụng chuột hoặc bàn phím. Nhập y nếu bạn muốn thiết lập mật khẩu như vậy hoặc nhập n để hoàn tất quy trình.
Thoát khỏi shell vncuser.
Ubuntu / Debian
Chạy lệnh sau để tạo người dùng mới và đặt mật khẩu. Thay thế vncuser bằng tên người dùng bạn chọn.
Chuyển sang vncuser.
Đặt mật khẩu truy cập VNC.
Chúng ta cần cấu hình tệp khởi động để TigerVNC sử dụng Xfce.
Mở tệp ~/.vnc/xstartup để chỉnh sửa.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc lưu.
Bạn có thể cấu hình các tùy chọn bổ sung cho VNC thông qua tệp ~/.vnc/config. Tạo và mở tệp để chỉnh sửa.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc lưu.
Kiểm tra máy chủ VNC.
Bạn có thể lấy danh sách tất cả các phiên VNC hiện tại bằng lệnh sau.
Tiếp theo, chúng ta cần phải kết thúc quy trình vì ở bước tiếp theo, chúng ta sẽ tạo một tệp dịch vụ cho quy trình đó.
Thoát khỏi shell người dùng.
TigerVNC's systemd service unit file có sẵn trong thư mục /lib/systemd/system. Sao chép tệp vào thư mục /etc/systemd/system.
Máy chủ VNC chạy trên cổng 5900 theo mặc định. Mỗi người dùng nên chạy phiên bản máy chủ VNC của họ trên một cổng riêng. Số :1 ở cuối lệnh hướng dẫn VNC chạy dịch vụ trên cổng phụ 5900. Do đó :1 dịch thành cổng 5900, :2 dịch thành cổng 5902, v.v.
VNC không chỉ cần biết số cổng để chạy dịch vụ mà bạn còn cần chỉ định người dùng nào sẽ chạy máy chủ theo số cổng nào. Bạn có thể định cấu hình điều này bằng cách chỉnh sửa tệp /etc/tigervnc/vncserver.users. Mở nó để chỉnh sửa.
Nhập giá trị :1=vncuser ngay trước # :2=andrew để trông giống như sau.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc lưu.
Ubuntu / Debian
Trình cài đặt không cài đặt tệp dịch vụ systemd trên hệ thống Ubuntu hoặc Debian. Bạn cần tạo tệp theo cách thủ công. Tạo và mở tệp đơn vị systemd cho TigerVNC.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc lưu.
Bước tiếp theo là chung cho tất cả các bản phân phối Linux.
Tải lại daemon systemd để kích hoạt dịch vụ.
Khởi động dịch vụ máy chủ VNC.
Nếu bạn muốn cho phép dịch vụ tiếp tục chạy khi hệ thống khởi động lại, bạn có thể bật dịch vụ này.
Kiểm tra trạng thái của dịch vụ.
Ubuntu / Debian
Khởi động dịch vụ máy chủ VNC.
Bật dịch vụ VNC.
Kiểm tra trạng thái của dịch vụ.
CentOS / Rocky Linux / AlmaLinux
Chạy lệnh sau để mở các cổng VNC và tải lại tường lửa.
Ubuntu / Debian
Truy cập tab Kết nối trong Cài đặt Guacamole. Nhấp vào nút Kết nối mới.
Chọn tên cho kết nối của bạn và chọn VNC từ menu thả xuống.
Trong phần Tham số, nhập địa chỉ IP của máy chủ (trong trường hợp của chúng tôi là 167.172.46.187) làm tên máy chủ và 5901 làm cổng. Trong phần Xác thực, nhập tên người dùng và mật khẩu hệ thống VNC của bạn.
Nếu bạn muốn bật bất kỳ cài đặt bổ sung nào, hãy thực hiện thao tác đó. Nhấp vào Lưu để hoàn tất việc thêm kết nối.
Bạn sẽ được chào đón bằng Màn hình khóa của máy chủ.
Bỏ qua và nhập thông tin đăng nhập người dùng VNC của bạn.
Nhấn nút Mở khóa để tiếp tục đến màn hình chính của máy chủ/máy tính để bàn của bạn.
Bạn có thể bắt đầu làm việc trên máy của mình.
Mở URL Guacamole của bạn và nhập thông tin đăng nhập để đăng nhập.
Truy cập tab Kết nối trong Cài đặt Guacamole. Nhấp vào nút Kết nối mới.
Chọn tên cho kết nối của bạn và chọn VNC từ menu thả xuống.
Trong phần Tham số, nhập địa chỉ localhost làm tên máy chủ và 5001 làm cổng. Để phần Xác thực trống vì chúng ta sẽ sử dụng phần đó ở bước tiếp theo. Chúng ta cũng sẽ nói về lý do tại sao chúng ta sử dụng localhost làm máy chủ sau.
Nếu bạn muốn bật bất kỳ cài đặt bổ sung nào, hãy thực hiện thao tác đó. Nhấp vào Lưu để hoàn tất việc thêm kết nối.
Chúng ta hãy xem xét những gì đang xảy ra ở đây. Lệnh trên chuyển tiếp kết nối SSH của hệ thống của bạn đến máy chủ từ xa bằng cách chuyển tiếp cổng cục bộ.
Bạn sẽ được chào đón bằng lời nhắc mật khẩu yêu cầu mật khẩu VNC mà bạn đã đặt bằng lệnh vncpasswd. Nhập mật khẩu và nhấn Tiếp tục để tiếp tục.
Sau khi xác nhận thành công, bạn sẽ được đưa đến màn hình máy tính để bàn của hệ thống.
Bạn có thể bắt đầu làm việc trên máy của mình.
Trong hướng dẫn này, bạn sẽ học cách cài đặt VNC trên máy chủ Linux và sử dụng Guacamole để tạo kết nối VNC. Chúng tôi sẽ đề cập đến tất cả các bản phân phối phổ biến và chỉ định sự khác biệt ở bất kỳ nơi nào cần thiết.
Điều kiện tiên quyết
-
Một máy chủ chạy Rocky Linux, CentOS, AlmaLinux, Ubuntu hoặc Debian.
-
Cần cài đặt Apache Guacamole. Thực hiện theo hướng dẫn của chúng tôi để biết thêm thông tin.
-
Một người dùng không phải root có quyền sudo có sẵn trên máy chủ mà bạn đang kết nối đến.
-
Tối thiểu 2 lõi CPU và 4GB RAM trên máy chủ từ xa của bạn để có kết nối VNC mượt mà.
-
Đảm bảo mọi thứ đã được cập nhật.
CentOS / Rocky Linux / AlmaLinux
Mã:
$ sudo dnf update
Mã:
$ sudo apt update && sudo apt upgrade
Cài đặt các gói tiện ích cơ bản. Một số trong số chúng có thể đã được cài đặt.
CentOS / Rocky Linux / AlmaLinux
Mã:
$ sudo dnf install wget curl nano unzip yum-utils -y
Mã:
$ sudo apt install wget curl nano unzip -y
Bước 1 - Cài đặt Desktop GUI trên máy chủ của bạn
Trong hướng dẫn của chúng tôi, chúng tôi sẽ cài đặt Môi trường đồ họa Xfce. Tuy nhiên, bạn có thể chọn cài đặt bất kỳ môi trường nào bạn muốn. Chạy các lệnh sau để cài đặt GUI.CentOS / Rocky Linux / AlmaLinux
Mã:
$ sudo dnf install -y epel-release$ sudo dnf groupinstall -y "Xfce" "base-x"$ sudo systemctl set-default graphics$ sudo reboot
Ubuntu / Debian
Mã:
$ sudo apt install xfce4 xfce4-goodies$ sudo systemctl set-default graphics$ sudo reboot
Bước 2 - Cài đặt TigerVNC Server
Có nhiều ứng dụng máy chủ VNC mà bạn có thể chọn cài đặt trên hệ thống của mình. Trong hướng dẫn này, chúng ta sẽ cài đặt phần mềm máy chủ TigerVNC.Chạy lệnh sau để cài đặt máy chủ TigerVNC.
CentOS / Rocky Linux / AlmaLinux
Mã:
$ sudo dnf install tigervnc-server
Mã:
$ sudo apt install tigervnc-standalone-server
Bước 3 - Tạo thông tin xác thực người dùng VNC
Bước tiếp theo là tạo người dùng hệ thống cho VNC để kết nối được thực hiện.CentOS / Rocky Linux / AlmaLinux
Chạy lệnh sau để tạo người dùng mới và đặt mật khẩu. Thay thế vncuser bằng tên người dùng bạn chọn.
Mã:
$ sudo adduser vncuser$ sudo passwd vncuser
Chuyển sang vncuser.
Mã:
$ sudo su - vncuser
Mã:
$ vncpasswdMật khẩu:Xác minh:Bạn có muốn nhập mật khẩu chỉ xem (y/n) không? yMật khẩu:Xác minh:
Thoát khỏi shell vncuser.
Mã:
$ exit
Chạy lệnh sau để tạo người dùng mới và đặt mật khẩu. Thay thế vncuser bằng tên người dùng bạn chọn.
Mã:
$ sudo adduser vncuserĐang thêm người dùng `vncuser' ...Đang thêm nhóm mới `vncuser' (1001) ...Đang thêm người dùng mới `vncuser' (1001) với nhóm `vncuser' ...Đang tạo thư mục home `/home/vncuser' ...Đang sao chép các tệp từ `/etc/skel' ...Mật khẩu mới:Nhập lại mật khẩu mới:passwd: mật khẩu đã cập nhật thành côngĐang thay đổi thông tin người dùng cho vncuserNhập giá trị mới hoặc nhấn ENTER để lấy giá trị mặc định Họ và tên đầy đủ []: Số phòng []: Điện thoại cơ quan []: Điện thoại nhà riêng []: Khác []:Thông tin có đúng không? [Y/n] y
Mã:
$ sudo su - vncuser
Mã:
$ vncpasswdMật khẩu:Xác minh:Bạn có muốn nhập mật khẩu chỉ xem (y/n) không? yMật khẩu:Xác minh:
Mở tệp ~/.vnc/xstartup để chỉnh sửa.
Mã:
$ sudo nano ~/.vnc/xstartup
Mã:
#!/bin/shunset SESSION_MANAGERunset DBUS_SESSION_BUS_ADDRESSexec startxfce4
Bạn có thể cấu hình các tùy chọn bổ sung cho VNC thông qua tệp ~/.vnc/config. Tạo và mở tệp để chỉnh sửa.
Mã:
$ sudo nano ~/.vnc/config
Mã:
geometry=1024x768dpi=96depth=24
Kiểm tra máy chủ VNC.
Mã:
$ vncserver/usr/bin/xauth: tệp /home/vncuser/.Xauthority không tồn tạiMáy tính để bàn 'vncdesktop:1 (vncuser)' mới tại :1 trên máy vncdesktopĐang khởi động các ứng dụng được chỉ định trong /home/vncuser/.vnc/xstartupTệp nhật ký là /home/vncuser/.vnc/vncdesktop:1.logSử dụng xtigervncviewer -SecurityTypes VncAuth -passwd /home/vncuser/.vnc/passwd :1 để kết nối với máy chủ VNC.
Mã:
$ vncserver -listCác phiên máy chủ TigerVNC:X DISPLAY # RFB PORT # PROCESS ID:1 5901 1029
Mã:
$ vncserver -kill :1Kết thúc quy trình Xtigervnc ID 1029... thành công!
Mã:
$ exit
Bước 4 - Tạo tệp VNC Systemd Unit
CentOS / Rocky Linux / AlmaLinuxTigerVNC's systemd service unit file có sẵn trong thư mục /lib/systemd/system. Sao chép tệp vào thư mục /etc/systemd/system.
Mã:
$ sudo cp /lib/systemd/system/[emailprotected] /etc/systemd/system/vncserver@:1.service
VNC không chỉ cần biết số cổng để chạy dịch vụ mà bạn còn cần chỉ định người dùng nào sẽ chạy máy chủ theo số cổng nào. Bạn có thể định cấu hình điều này bằng cách chỉnh sửa tệp /etc/tigervnc/vncserver.users. Mở nó để chỉnh sửa.
Mã:
$ sudo nano /etc/tigervnc/vncserver.users
Mã:
# TigerVNC User assignment## Tệp này gán người dùng cho các số hiển thị VNC cụ thể.# Cú pháp là =. Ví dụ:# :1=vncuser# :2=andrew# :3=lisa
Ubuntu / Debian
Trình cài đặt không cài đặt tệp dịch vụ systemd trên hệ thống Ubuntu hoặc Debian. Bạn cần tạo tệp theo cách thủ công. Tạo và mở tệp đơn vị systemd cho TigerVNC.
Mã:
$ sudo nano /etc/systemd/system/[emailprotected]
Mã:
[Unit]Description=Dịch vụ máy tính từ xa (VNC)After=syslog.target network.target[Service]Type=simpleUser=vncuserPAMName=loginPIDFile=/home/%u/.vnc/%H%i.pidExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fgExecStop=/usr/bin/vncserver -kill :%i[Cài đặt]WantedBy=multi-user.target
Bước tiếp theo là chung cho tất cả các bản phân phối Linux.
Tải lại daemon systemd để kích hoạt dịch vụ.
Mã:
$ sudo systemctl daemon-reload
Bước 5 - Khởi động Máy chủ VNC
CentOS / Rocky Linux / AlmaLinuxKhởi động dịch vụ máy chủ VNC.
Mã:
$ sudo systemctl start vncserver@:1
Mã:
$ sudo systemctl enable vncserver@:1
Mã:
$ sudo systemctl status vncserver@:1? vncserver@:1.service - Dịch vụ máy tính từ xa (VNC) Đã tải: đã tải (/etc/systemd/system/vncserver@:1.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ tư 2022-03-16 01:16:18 UTC; 6 giây trước Tiến trình: 6777 ExecStart=/usr/libexec/vncsession-start :1 (mã=đã thoát, trạng thái=0/THÀNH CÔNG) PID chính: 6784 (vncsession) Nhiệm vụ: 0 (giới hạn: 11179) Bộ nhớ: 1,1M CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service ? 6784 /usr/sbin/vncsession vncuser :116/03 01:16:18 guacamole systemd[1]: Đang khởi động dịch vụ máy tính từ xa (VNC)...16/03 01:16:18 guacamole systemd[1]: Đã khởi động dịch vụ máy tính từ xa (VNC).
Khởi động dịch vụ máy chủ VNC.
Mã:
$ sudo systemctl start [emailprotected]
Mã:
$ sudo systemctl enable [emailprotected]
Mã:
$ sudo systemctl status [emailprotected]? [emailprotected] - Dịch vụ máy tính từ xa (VNC) Đã tải: đã tải (/etc/systemd/system/[emailprotected]; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2022-03-19 09:42:28 UTC; 6 giây trước Tiến trình: 1420 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) PID chính: 1455 (vncserver) Nhiệm vụ: 0 (giới hạn: 4686) Bộ nhớ: 884.0K CGroup: /system.slice/system-vncserver.slice/[emailprotected] ? 1455 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440x900 -alwaysshared -fg19/03 09:42:28 vncdesktop systemd[1]: Đang khởi động dịch vụ máy tính từ xa (VNC)...19/03 09:42:28 vncdesktop systemd[1420]: pam_unix(login:session): phiên mở cho người dùng vncuser bởi (uid=0)19/03 09:42:28 vncdesktop systemd[1]: Đã khởi động dịch vụ máy tính từ xa (VNC).19/03 09:42:29 vncdesktop systemd[1455]: pam_unix(login:session): phiên mở cho người dùng vncuser bởi (uid=0)
Bước 6 - Cấu hình Tường lửa
Để VNC có thể truy cập qua mạng, chúng ta cần mở các cổng của nó.CentOS / Rocky Linux / AlmaLinux
Chạy lệnh sau để mở các cổng VNC và tải lại tường lửa.
Mã:
$ sudo firewall-cmd --permanent --add-service=vnc-server$ sudo firewall-cmd --reload
Mã:
$ sudo ufw allow 5901:5910/tcp$ sudo ufw reload
Bước 7 - Tạo kết nối VNC tới máy chủ CentOS / Rocky Linux / AlmaLinux
Mở URL Guacamole của bạn và nhập thông tin đăng nhập để đăng nhập.Truy cập tab Kết nối trong Cài đặt Guacamole. Nhấp vào nút Kết nối mới.
Chọn tên cho kết nối của bạn và chọn VNC từ menu thả xuống.
Trong phần Tham số, nhập địa chỉ IP của máy chủ (trong trường hợp của chúng tôi là 167.172.46.187) làm tên máy chủ và 5901 làm cổng. Trong phần Xác thực, nhập tên người dùng và mật khẩu hệ thống VNC của bạn.
Nếu bạn muốn bật bất kỳ cài đặt bổ sung nào, hãy thực hiện thao tác đó. Nhấp vào Lưu để hoàn tất việc thêm kết nối.
Truy cập máy của bạn bằng VNC
Truy cập bảng điều khiển Guacamole và nhấp vào Kết nối VNC của bạn trong phần Tất cả kết nối.Bạn sẽ được chào đón bằng Màn hình khóa của máy chủ.
Bỏ qua và nhập thông tin đăng nhập người dùng VNC của bạn.
Nhấn nút Mở khóa để tiếp tục đến màn hình chính của máy chủ/máy tính để bàn của bạn.
Bạn có thể bắt đầu làm việc trên máy của mình.
Bước 8 - Tạo Kết nối VNC tới máy chủ Ubuntu/Debian từ xa
Nếu cài đặt Guacamole và môi trường máy tính để bàn của bạn nằm trên cùng một máy chủ, bạn có thể truy cập máy chủ của mình VNC sử dụng các bước trên. Cài đặt Rocky Linux của chúng tôi nằm trên cùng một máy chủ, nhưng môi trường Ubuntu của chúng tôi nằm trên một máy chủ khác. Trong trường hợp đó, chúng tôi sẽ sử dụng đường hầm SSH để tạo kết nối VNC đến máy chủ vì đây là phương pháp an toàn hơn.Mở URL Guacamole của bạn và nhập thông tin đăng nhập để đăng nhập.
Truy cập tab Kết nối trong Cài đặt Guacamole. Nhấp vào nút Kết nối mới.
Chọn tên cho kết nối của bạn và chọn VNC từ menu thả xuống.
Trong phần Tham số, nhập địa chỉ localhost làm tên máy chủ và 5001 làm cổng. Để phần Xác thực trống vì chúng ta sẽ sử dụng phần đó ở bước tiếp theo. Chúng ta cũng sẽ nói về lý do tại sao chúng ta sử dụng localhost làm máy chủ sau.
Nếu bạn muốn bật bất kỳ cài đặt bổ sung nào, hãy thực hiện thao tác đó. Nhấp vào Lưu để hoàn tất việc thêm kết nối.
Tạo Đường hầm SSH
Chạy lệnh sau từ thiết bị đầu cuối của máy chủ lưu trữ Guacamole.
Mã:
$ ssh -L 5001:localhost:5901 [emailprotected]
- Cờ -L chỉ định chuyển tiếp cổng cục bộ.
- Cổng 5001 là cổng trên máy Guacamole của bạn, nơi chúng ta có thể truy cập máy chủ từ xa. Bạn có thể chọn một cổng khác nếu muốn.
- localhost:5901 là máy chủ VNC từ xa và số hiển thị (và số cổng tương ứng) để kết nối. Vì chúng ta đang thực hiện chuyển tiếp cổng cục bộ, nên địa chỉ máy chủ từ xa được dịch thành localhost cho chúng ta.
- [emailprotected] trong trường hợp của chúng ta là người dùng SSH và địa chỉ IP của máy chủ Ubuntu / Debian từ xa mà chúng ta đang truy cập.
Truy cập máy của bạn bằng VNC
Truy cập bảng điều khiển Guacamole và nhấp vào Kết nối VNC của bạn trong phần Tất cả kết nối.Bạn sẽ được chào đón bằng lời nhắc mật khẩu yêu cầu mật khẩu VNC mà bạn đã đặt bằng lệnh vncpasswd. Nhập mật khẩu và nhấn Tiếp tục để tiếp tục.
Sau khi xác nhận thành công, bạn sẽ được đưa đến màn hình máy tính để bàn của hệ thống.
Bạn có thể bắt đầu làm việc trên máy của mình.