Cách cài đặt và cấu hình VNC trên Ubuntu 20.04 [Quickstart]
Máy tính mạng ảo , hay VNC, là một hệ thống kết nối cho phép bạn sử dụng bàn phím và chuột để tương tác với môi trường máy tính đồ họa trên server từ xa. Nó giúp việc quản lý file , phần mềm và cài đặt trên server từ xa dễ dàng hơn cho những user chưa thông thạo dòng lệnh.Trong hướng dẫn bắt đầu nhanh này, bạn sẽ cài đặt server VNC với TightVNC trên server Ubuntu 20.04 và kết nối với nó một cách an toàn thông qua tunnel SSH. Sau đó, bạn sẽ sử dụng client VNC trên máy local của bạn để tương tác với server của bạn thông qua môi trường máy tính để bàn (có giao diện đồ họa) .
Yêu cầu
Để hoàn thành hướng dẫn này, bạn cần :
- Một server Ubuntu 20.04 với admin-user không phải root và firewall được cấu hình bằng UFW. Để cài đặt điều này, hãy làm theo hướng dẫn cài đặt server ban đầu của ta cho Ubuntu 20.04 .
- Một máy tính local có cài đặt ứng dụng client VNC. Máy khách VNC bạn sử dụng phải hỗ trợ kết nối qua tunnel SSH:
Bước 1 - Cài đặt Môi trường Máy tính để bàn và Server VNC
Sau khi kết nối với server của bạn bằng SSH, hãy cập nhật danh sách các gói của bạn:
- sudo apt update
Sau đó, cài đặt Xfce cùng với gói xfce4-goodies
, chứa một vài cải tiến cho môi trường máy tính để bàn:
- sudo apt install xfce4 xfce4-goodies
Khi cài đặt xong , hãy cài đặt server TightVNC:
- sudo apt install tightvncserver
Tiếp theo, chạy lệnh vncpasswd
để đặt password truy cập VNC và tạo các file cấu hình ban đầu:
- vncpasswd
Bạn sẽ được yêu cầu nhập và xác minh password để truy cập vào máy của bạn từ xa:
OutputYou will require a password to access your desktops. Password: Verify:
Mật khẩu phải dài từ sáu đến tám ký tự; password nhiều hơn 8 ký tự sẽ tự động bị cắt bớt. Sau khi xác minh password , bạn sẽ có tùy chọn tạo password chỉ xem, nhưng điều này không bắt buộc.
Nếu bạn muốn thay đổi password của bạn hoặc thêm password chỉ xem, hãy chạy lại lệnh vncpasswd
.
Bước 2 - Cấu hình Server VNC
Các lệnh mà server VNC chạy khi khởi động nằm trong file cấu hình có tên xstartup
trong folder .vnc
folder chính của bạn. Trong bước này, ta sẽ tạo một tập lệnh xstartup
tùy chỉnh sẽ thông báo cho server VNC kết nối với máy tính để bàn Xfce.
Tạo một file xstartup
mới và mở nó trong một editor , chẳng hạn như nano
:
- nano ~/.vnc/xstartup
Thêm các dòng sau vào file mới:
#!/bin/bash xrdb $HOME/.Xresources startxfce4 &
Sau shebang , lệnh đầu tiên trong file , xrdb $HOME/.Xresources
, yêu cầu khung GUI của VNC đọc file .Xresources
của user server . Lệnh thứ hai yêu cầu server chạy Xfce.
Lưu file sau khi thêm các dòng này. Nếu bạn sử dụng nano
, hãy làm như vậy bằng cách nhấn CTRL + X
, Y
, sau đó ENTER
.
Sau đó, làm cho file thực thi được:
- chmod +x ~/.vnc/xstartup
Và khởi động server VNC bằng lệnh vncserver
:
- vncserver -localhost
Lệnh này bao gồm tùy chọn -localhost
, liên kết server VNC với giao diện loopback của server của bạn. Điều này sẽ khiến VNC chỉ cho phép các kết nối bắt nguồn từ server mà nó được cài đặt.
Bạn sẽ thấy kết quả tương tự như sau:
OutputNew 'X' desktop is your_hostname:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log
Tại đây, bạn có thể thấy rằng lệnh chạy version server mặc định trên cổng 5901
. Cổng này được gọi là cổng hiển thị và được VNC gọi là :1
:
Bước 3 - Kết nối an toàn với VNC Desktop
Để kết nối an toàn với server của bạn, bạn sẽ cài đặt một tunnel SSH và sau đó yêu cầu ứng dụng client VNC của bạn kết nối bằng tunnel đó thay vì tạo kết nối trực tiếp.
Tạo kết nối SSH trên máy tính local của bạn để chuyển tiếp an toàn đến kết nối localhost
cho VNC. Bạn có thể thực hiện việc này thông qua terminal trên Linux hoặc macOS bằng lệnh ssh
sau:
- ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip
Cổng local có thể là bất kỳ cổng nào chưa bị chặn bởi chương trình hoặc quy trình khác, mặc dù ta sử dụng 59000
trong ví dụ này. Ngoài ra, hãy đảm bảo thay đổi sammy
thành tên user Ubuntu của bạn và your_server_ip
để phản ánh địa chỉ IP server của bạn.
Nếu bạn đang sử dụng PuTTY để kết nối với server của bạn , bạn có thể tạo tunnel SSH bằng cách nhấp chuột phải vào thanh trên cùng của cửa sổ terminal , sau đó nhấp vào tùy chọn Thay đổi Cài đặt… :
Tìm nhánh Kết nối trong menu cây ở phía bên trái của cửa sổ Cấu hình lại PuTTY. Mở rộng nhánh SSH và nhấp vào Đường hầm . Trên màn hình Tùy chọn điều khiển chuyển tiếp cổng SSH , nhập 59000
làm Cổng nguồn và localhost:5901
làm Đích , như sau:
Sau đó nhấp vào nút Thêm , sau đó nhấp vào nút Áp dụng để triển khai tunnel .
Khi tunnel đang chạy, hãy sử dụng ứng dụng client VNC để kết nối với localhost:59000
. Bạn sẽ được yêu cầu xác thực bằng password bạn đã đặt ở Bước 1.
Sau khi được kết nối, bạn sẽ thấy màn hình Xfce mặc định. Nó trông giống như sau :
Bạn có thể truy cập các file trong folder chính của bạn bằng trình quản lý file hoặc từ dòng lệnh, như được thấy ở đây:
Nhấn CTRL+C
trong terminal local của bạn để dừng tunnel SSH và quay lại dấu nhắc của bạn. Thao tác này cũng sẽ ngắt kết nối phiên VNC của bạn.
Bước 4 - Chạy VNC như một Dịch vụ Hệ thống
Bằng cách cài đặt server VNC để chạy như một dịch vụ systemd, bạn có thể sử dụng các lệnh quản lý start, stop và khởi động lại server của systemd, cũng như cho phép nó bắt đầu chạy khi nào server khởi động.
Đầu tiên, hãy tạo một file đơn vị systemd mới có tên /etc/systemd/system/vncserver@.service
:
- sudo nano /etc/systemd/system/vncserver@.service
Ký hiệu @
ở cuối tên sẽ cho phép ta chuyển đối số mà bạn có thể sử dụng trong cấu hình dịch vụ. Bạn sẽ sử dụng nó để chỉ định cổng hiển thị VNC mà bạn muốn sử dụng khi quản lý dịch vụ.
Thêm các dòng sau vào file , đảm bảo thay đổi giá trị của User , Group , WorkingDirectory và tên user trong giá trị của PIDFILE để trùng với tên user của bạn:
[Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=sammy Group=sammy WorkingDirectory=/home/sammy PIDFile=/home/sammy/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target
Lưu và đóng file .
Tiếp theo, làm cho hệ thống biết file đơn vị mới:
- sudo systemctl daemon-reload
Bật file đơn vị:
- sudo systemctl enable vncserver@1.service
Số 1
sau dấu @
biểu thị số hiển thị mà dịch vụ sẽ xuất hiện, trong trường hợp này là mặc định :1
như đã thảo luận ở Bước 2.
Dừng version hiện tại của server VNC nếu nó vẫn đang chạy:
- vncserver -kill :1
Sau đó, khởi động nó như bạn sẽ khởi động bất kỳ dịch vụ systemd nào khác:
- sudo systemctl start vncserver@1
Bạn có thể xác minh nó đã bắt đầu bằng lệnh này:
- sudo systemctl status vncserver@1
Xem hướng dẫn của ta về Cách sử dụng Systemctl để quản lý các đơn vị và dịch vụ Systemd để biết thêm thông tin về systemctl
.
Để kết nối lại, hãy bắt đầu lại tunnel SSH của bạn:
- ssh -L 59000:127.0.0.1:5901 -C -N -l sammy your_server_ip
Sau đó, tạo một kết nối mới bằng phần mềm client VNC của bạn tới localhost: 59000
để kết nối với server của bạn.
Kết luận
Đến đây bạn có một server VNC được bảo mật và đang chạy trên server Ubuntu 20.04 của bạn. Như vậy, bạn có thể quản lý các file , phần mềm và cài đặt của bạn bằng giao diện đồ họa thân thiện với user và bạn có thể chạy phần mềm đồ họa như trình duyệt web từ xa.
Các tin liên quan
Cách cài đặt và cấu hình VNC trên Ubuntu 20.042020-05-11
Cách cài đặt Node.js trên Ubuntu 20.04
2020-05-08
Cách cài đặt và cấu hình VNC trên Ubuntu 18.04
2020-05-07
Cách cài đặt Java với Apt trên Ubuntu 18.04
2020-05-07
Cách cài đặt Java với Apt trên Ubuntu 20.04
2020-05-07
Cách cài đặt Django và thiết lập môi trường phát triển trên Ubuntu 20.04
2020-05-07
Cách cài đặt Django và thiết lập môi trường phát triển trên Ubuntu 16.04
2020-05-06
Cách cài đặt Jenkins trên Ubuntu 18.04
2020-05-04
Cách thêm không gian swap trên Ubuntu 20.04
2020-05-04
Cách thiết lập firewall với UFW trên Ubuntu 20.04
2020-05-04