VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ VNC trên Ubuntu 18.04

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ VNC trên Ubuntu 18.04
Một số người dùng thuê VPS tương đối rẻ tiền chạy Windows để chạy các dịch vụ máy tính từ xa. Điều tương tự có thể được thực hiện trên Linux mà không cần lưu trữ phần cứng của riêng bạn trong trung tâm dữ liệu hoặc thuê máy chủ chuyên dụng. Một số người cần một môi trường đồ họa quen thuộc để thử nghiệm và phát triển hoặc một máy tính để bàn từ xa có kênh rộng để làm việc từ thiết bị di động. Có nhiều tùy chọn để sử dụng hệ thống Máy tính mạng ảo (VNC) dựa trên giao thức Remote FrameBuffer (RFB). Trong bài viết ngắn này, chúng tôi sẽ cho bạn biết cách định cấu hình nó trên máy ảo với bất kỳ trình ảo hóa nào.

Mục lục:

Chọn máy chủ VNC
Cài đặt và cấu hình
Bắt đầu một dịch vụ thông qua systemd
Kết nối máy tính để bàn

Chọn máy chủ VNC

Dịch vụ VNC có thể được tích hợp vào hệ thống ảo hóa và trình ảo hóa sẽ kết nối nó với các thiết bị mô phỏng và không cần cấu hình bổ sung. Tùy chọn này đòi hỏi chi phí đáng kể và không được tất cả các nhà cung cấp hỗ trợ - ngay cả khi triển khai ít tốn tài nguyên hơn, khi thay vì mô phỏng một thiết bị đồ họa thực, một bản tóm tắt đơn giản hóa (bộ đệm khung) được chuyển sang máy ảo. Đôi khi máy chủ VNC được liên kết với máy chủ X đang chạy, nhưng phương pháp này phù hợp hơn để truy cập vào máy vật lý và trên máy ảo, nó tạo ra một số khó khăn kỹ thuật. Cách dễ nhất để cài đặt máy chủ VNC là sử dụng máy chủ X tích hợp. Nó không yêu cầu các thiết bị vật lý (bộ điều hợp video, bàn phím và chuột) hoặc mô phỏng chúng bằng bộ ảo hóa và do đó phù hợp với mọi loại VPS.

Cài đặt và cấu hình

Chúng tôi sẽ cần một máy ảo có Ubuntu Server 18.04 LTS trong cấu hình mặc định. Có một số máy chủ VNC trong kho tiêu chuẩn của bản phân phối này: TightVNC, TigerVNC, x11vnc và những người khác. Chúng tôi quyết định sử dụng TigerVNC - một nhánh hiện tại của TightVNC, không được nhà phát triển hỗ trợ. Việc thiết lập các máy chủ khác được thực hiện theo cách tương tự. Bạn cũng cần chọn môi trường máy tính để bàn: theo ý kiến ​​​​của chúng tôi, tùy chọn tối ưu sẽ là XFCE do yêu cầu tài nguyên máy tính tương đối thấp. Những ai muốn có thể cài đặt DE hoặc WM khác: tất cả phụ thuộc vào sở thích cá nhân, nhưng việc lựa chọn phần mềm ảnh hưởng trực tiếp đến nhu cầu RAM và lõi máy tính.

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ VNC trên Ubuntu 18.04

Việc cài đặt môi trường máy tính để bàn với tất cả các phụ thuộc được thực hiện bằng lệnh sau:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Tiếp theo bạn cần cài đặt máy chủ VNC:

sudo apt-get install tigervnc-standalone-server tigervnc-common

Chạy nó như siêu người dùng là một ý tưởng tồi. Tạo người dùng và nhóm:

sudo adduser vnc

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ VNC trên Ubuntu 18.04

Hãy thêm người dùng vào nhóm sudo để anh ta có thể thực hiện các tác vụ liên quan đến quản trị. Nếu không có nhu cầu như vậy, bạn có thể bỏ qua bước này:

sudo gpasswd -a vnc sudo

Bước tiếp theo là chạy máy chủ VNC với đặc quyền người dùng vnc để tạo mật khẩu an toàn và tệp cấu hình trong thư mục ~/.vnc/. Độ dài mật khẩu có thể từ 6 đến 8 ký tự (các ký tự thừa bị cắt bỏ). Nếu cần, mật khẩu cũng được đặt để chỉ xem, tức là. không có quyền truy cập vào bàn phím và chuột. Các lệnh sau được thực thi với tư cách là người dùng vnc:

su - vnc
vncserver -localhost no

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ VNC trên Ubuntu 18.04
Theo mặc định, giao thức RFB sử dụng phạm vi cổng TCP từ 5900 đến 5906 - đây là cái gọi là. cổng hiển thị, mỗi cổng tương ứng với một màn hình máy chủ X. Trong trường hợp này, các cổng được liên kết với các màn hình từ :0 đến :6. Phiên bản máy chủ VNC mà chúng tôi đã khởi chạy nghe theo cổng 5901 (màn hình: 1). Các phiên bản khác có thể hoạt động trên các cổng khác có màn hình :2, :3, v.v. Trước khi cấu hình thêm, bạn cần dừng máy chủ:

vncserver -kill :1

Lệnh sẽ hiển thị nội dung như sau: “Giết chết tiến trình Xtigervnc ID 18105... thành công!”

Khi TigerVNC khởi động, nó sẽ chạy tập lệnh ~/.vnc/xstartup để định cấu hình cài đặt cấu hình. Hãy tạo tập lệnh của riêng chúng ta, trước tiên hãy lưu bản sao lưu của tập lệnh hiện có, nếu nó tồn tại:

mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup

Phiên môi trường máy tính để bàn XFCE được bắt đầu bằng tập lệnh xstartup sau:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &

Lệnh xrdb là cần thiết để VNC đọc tệp .Xresources trong thư mục chính. Ở đó, người dùng có thể xác định các cài đặt đồ họa khác nhau trên màn hình: hiển thị phông chữ, màu đầu cuối, chủ đề con trỏ, v.v. Tập lệnh phải được thực thi:

chmod 755 ~/.vnc/xstartup

Điều này hoàn tất việc thiết lập máy chủ VNC. Nếu bạn chạy nó bằng lệnh vncserver -localhost no (với tư cách là người dùng vnc), bạn có thể kết nối bằng mật khẩu đã chỉ định trước đó và xem hình ảnh sau:

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ VNC trên Ubuntu 18.04

Bắt đầu một dịch vụ thông qua systemd

Khởi động máy chủ VNC theo cách thủ công không phù hợp để sử dụng trong chiến đấu, vì vậy chúng tôi sẽ định cấu hình dịch vụ hệ thống. Các lệnh được thực thi dưới quyền root (chúng tôi sử dụng sudo). Trước tiên, hãy tạo một tệp đơn vị mới cho máy chủ của chúng tôi:

sudo nano /etc/systemd/system/[email protected]

Biểu tượng @ trong tên cho phép bạn truyền đối số để định cấu hình dịch vụ. Trong trường hợp của chúng tôi, nó chỉ định cổng hiển thị VNC. Tệp đơn vị bao gồm một số phần:

[Unit]
Description=TigerVNC server
After=syslog.target network.target

[Service]
Type=simple
User=vnc 
Group=vnc 
WorkingDirectory=/home/vnc 
PIDFile=/home/vnc/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x960 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Sau đó, bạn cần thông báo cho systemd về tệp mới và kích hoạt nó:

sudo systemctl daemon-reload
sudo systemctl enable [email protected]

Số 1 trong tên chỉ định số màn hình.

Dừng máy chủ VNC, khởi động nó như một dịch vụ và kiểm tra trạng thái:

# от имени пользователя vnc 
vncserver -kill :1

# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1

Nếu dịch vụ đang chạy, chúng ta sẽ nhận được kết quả như thế này.

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ VNC trên Ubuntu 18.04

Kết nối máy tính để bàn

Cấu hình của chúng tôi không sử dụng mã hóa nên những kẻ tấn công có thể chặn các gói mạng. Ngoài ra, trong các máy chủ VNC khá thường xuyên tìm lỗ hổng, vì vậy bạn không nên mở chúng để truy cập từ Internet. Để kết nối an toàn trên máy tính cục bộ của bạn, bạn cần đóng gói lưu lượng truy cập vào đường hầm SSH và sau đó định cấu hình máy khách VNC. Trên Windows, bạn có thể sử dụng ứng dụng khách SSH đồ họa (ví dụ: PuTTY). Để bảo mật, TigerVNC trên máy chủ chỉ nghe localhost và không thể truy cập trực tiếp từ mạng công cộng:


sudo netstat -ap |more

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ VNC trên Ubuntu 18.04
Trong Linux, FreeBSD, OS X và các hệ điều hành giống UNIX khác, một đường hầm từ máy khách được tạo bằng tiện ích ssh (sshd phải chạy trên máy chủ VNC):

ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip

Tùy chọn -L liên kết cổng 5901 của kết nối từ xa với cổng 5901 trên localhost. Tùy chọn -C cho phép nén và tùy chọn -N yêu cầu ssh không thực thi lệnh từ xa. Tùy chọn -l chỉ định đăng nhập để đăng nhập từ xa.

Sau khi thiết lập đường hầm trên máy tính cục bộ, bạn cần khởi chạy máy khách VNC và thiết lập kết nối với máy chủ 127.0.0.1:5901 (localhost:5901), sử dụng mật khẩu đã chỉ định trước đó để truy cập máy chủ VNC. Giờ đây, chúng tôi có thể giao tiếp an toàn thông qua đường hầm được mã hóa với môi trường máy tính để bàn đồ họa XFCE trên VPS. Trong ảnh chụp màn hình, tiện ích hàng đầu đang chạy trong trình mô phỏng thiết bị đầu cuối để hiển thị mức tiêu thụ tài nguyên máy tính thấp của máy ảo. Khi đó mọi thứ sẽ phụ thuộc vào ứng dụng của người dùng.

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ VNC trên Ubuntu 18.04
Bạn có thể cài đặt và định cấu hình máy chủ VNC trong Linux trên hầu hết mọi VPS. Điều này không yêu cầu cấu hình đắt tiền và tốn nhiều tài nguyên bằng mô phỏng bộ điều hợp video hoặc mua giấy phép phần mềm thương mại. Ngoài tùy chọn dịch vụ hệ thống mà chúng tôi đã xem xét, còn có các tùy chọn khác: khởi chạy ở chế độ daemon (thông qua /etc/rc.local) khi hệ thống khởi động hoặc theo yêu cầu thông qua inetd. Cái sau rất thú vị để tạo cấu hình nhiều người dùng. Internet Superserver sẽ khởi động máy chủ VNC và kết nối máy khách với nó, máy chủ VNC sẽ tạo một màn hình mới và bắt đầu phiên. Để xác thực bên trong nó, bạn có thể sử dụng trình quản lý hiển thị đồ họa (ví dụ: LightDM) và sau khi ngắt kết nối máy khách, phiên sẽ bị đóng và tất cả các chương trình làm việc với màn hình sẽ bị chấm dứt.

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ VNC trên Ubuntu 18.04

Nguồn: www.habr.com

Thêm một lời nhận xét