VPS di Linux dengan antarmuka grafis: meluncurkan server VNC di Ubuntu 18.04

VPS di Linux dengan antarmuka grafis: meluncurkan server VNC di Ubuntu 18.04
Beberapa pengguna menyewa VPS yang relatif murah dengan Windows untuk menjalankan layanan desktop jarak jauh. Hal yang sama dapat dilakukan di Linux tanpa menghosting perangkat keras Anda sendiri di pusat data atau menyewa server khusus. Beberapa orang memerlukan lingkungan grafis yang familier untuk pengujian dan pengembangan, atau desktop jarak jauh dengan saluran luas untuk bekerja dari perangkat seluler. Ada banyak pilihan untuk menggunakan sistem Virtual Network Computing (VNC) berbasis protokol Remote FrameBuffer (RFB). Dalam artikel singkat ini kami akan memberi tahu Anda cara mengkonfigurasinya di mesin virtual dengan hypervisor apa pun.

contoh:

Memilih Server VNC
Instalasi dan konfigurasi
Memulai layanan melalui systemd
Koneksi Desktop

Memilih Server VNC

Layanan VNC dapat dibangun ke dalam sistem virtualisasi, dan hypervisor akan menghubungkannya dengan perangkat yang ditiru dan tidak diperlukan konfigurasi tambahan. Opsi ini melibatkan overhead yang signifikan dan tidak didukung oleh semua penyedia - bahkan dalam implementasi yang tidak terlalu intensif sumber daya, ketika alih-alih meniru perangkat grafis nyata, abstraksi yang disederhanakan (framebuffer) ditransfer ke mesin virtual. Terkadang server VNC diikat ke server X yang sedang berjalan, tetapi metode ini lebih cocok untuk mengakses mesin fisik, dan pada mesin virtual hal ini menimbulkan sejumlah kesulitan teknis. Cara termudah untuk menginstal server VNC adalah dengan server X bawaan. Ini tidak memerlukan perangkat fisik (adaptor video, keyboard dan mouse) atau emulasinya menggunakan hypervisor, dan oleh karena itu cocok untuk semua jenis VPS.

Instalasi dan konfigurasi

Kita memerlukan mesin virtual dengan Ubuntu Server 18.04 LTS dalam konfigurasi defaultnya. Ada beberapa server VNC di repositori standar distribusi ini: TightVNC, HarimauVNC, x11vnc dan lain-lain. Kami memilih TigerVNC - cabang dari TightVNC saat ini, yang tidak didukung oleh pengembang. Menyiapkan server lain dilakukan dengan cara yang sama. Anda juga perlu memilih lingkungan desktop: pilihan terbaik, menurut kami, adalah XFCE karena persyaratan sumber daya komputasi yang relatif rendah. Mereka yang ingin dapat menginstal DE atau WM lain: semuanya tergantung pada preferensi pribadi, namun pilihan perangkat lunak secara langsung mempengaruhi kebutuhan RAM dan inti komputasi.

VPS di Linux dengan antarmuka grafis: meluncurkan server VNC di Ubuntu 18.04

Menginstal lingkungan desktop dengan semua dependensi dilakukan dengan perintah berikut:

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

Selanjutnya Anda perlu menginstal server VNC:

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

Menjalankannya sebagai pengguna super adalah ide yang buruk. Buat pengguna dan grup:

sudo adduser vnc

VPS di Linux dengan antarmuka grafis: meluncurkan server VNC di Ubuntu 18.04

Mari tambahkan pengguna ke grup sudo sehingga dia dapat melakukan tugas terkait administrasi. Jika tidak diperlukan, Anda dapat melewati langkah ini:

sudo gpasswd -a vnc sudo

Langkah selanjutnya adalah menjalankan server VNC dengan hak pengguna vnc untuk membuat kata sandi aman dan file konfigurasi di direktori ~/.vnc/. Panjang kata sandi dapat terdiri dari 6 hingga 8 karakter (karakter tambahan terpotong). Jika perlu, kata sandi juga disetel untuk dilihat saja, mis. tanpa akses ke keyboard dan mouse. Perintah berikut dijalankan sebagai pengguna vnc:

su - vnc
vncserver -localhost no

VPS di Linux dengan antarmuka grafis: meluncurkan server VNC di Ubuntu 18.04
Secara default, protokol RFB menggunakan rentang port TCP dari 5900 hingga 5906 - inilah yang disebut. port tampilan, masing-masing berhubungan dengan layar server X. Dalam hal ini, port dikaitkan dengan layar dari :0 hingga :6. Contoh server VNC yang kami luncurkan mendengarkan port 5901 (layar: 1). Instance lain dapat bekerja pada port lain dengan layar :2, :3, dll. Sebelum konfigurasi lebih lanjut, Anda perlu menghentikan server:

vncserver -kill :1

Perintahnya akan menampilkan sesuatu seperti ini: β€œMembunuh proses Xtigervnc ID 18105... sukses!”

Saat TigerVNC dimulai, ia menjalankan skrip ~/.vnc/xstartup untuk mengonfigurasi pengaturan konfigurasi. Mari kita buat skrip kita sendiri, simpan dulu salinan cadangan yang sudah ada, jika ada:

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

Sesi lingkungan desktop XFCE dimulai dengan skrip xstartup berikut:

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

Perintah xrdb diperlukan agar VNC dapat membaca file .Xresources di direktori home. Di sana pengguna dapat menentukan berbagai pengaturan desktop grafis: rendering font, warna terminal, tema kursor, dll. Skrip harus dibuat dapat dieksekusi:

chmod 755 ~/.vnc/xstartup

Ini menyelesaikan pengaturan server VNC. Jika Anda menjalankannya dengan perintah vncserver -localhost no (sebagai pengguna vnc), Anda dapat terhubung dengan kata sandi yang ditentukan sebelumnya dan melihat gambar berikut:

VPS di Linux dengan antarmuka grafis: meluncurkan server VNC di Ubuntu 18.04

Memulai layanan melalui systemd

Memulai server VNC secara manual tidak cocok untuk penggunaan pertempuran, jadi kami akan mengkonfigurasi layanan sistem. Perintah dijalankan sebagai root (kami menggunakan sudo). Pertama, mari buat file unit baru untuk server kita:

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

Simbol @ pada nama memungkinkan Anda menyampaikan argumen untuk mengonfigurasi layanan. Dalam kasus kami, ini menentukan port tampilan VNC. File unit terdiri dari beberapa bagian:

[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

Maka Anda perlu memberi tahu systemd tentang file baru dan mengaktifkannya:

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

Angka 1 pada nama menunjukkan nomor layar.

Hentikan server VNC, mulai sebagai layanan dan periksa statusnya:

# ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ vnc 
vncserver -kill :1

# с привилСгиями ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1

Jika layanan sedang berjalan, kita akan mendapatkan tampilan seperti ini.

VPS di Linux dengan antarmuka grafis: meluncurkan server VNC di Ubuntu 18.04

Koneksi Desktop

Konfigurasi kami tidak menggunakan enkripsi, sehingga paket jaringan dapat disadap oleh penyerang. Selain itu, di server VNC cukup sering menemukan kerentanan, jadi Anda tidak boleh membukanya untuk akses dari Internet. Untuk terhubung dengan aman di komputer lokal Anda, Anda perlu mengemas lalu lintas ke dalam terowongan SSH dan kemudian mengkonfigurasi klien VNC. Di Windows, Anda dapat menggunakan klien SSH grafis (misalnya, PuTTY). Demi keamanan, TigerVNC di server hanya mendengarkan localhost dan tidak dapat diakses langsung dari jaringan publik:


sudo netstat -ap |more

VPS di Linux dengan antarmuka grafis: meluncurkan server VNC di Ubuntu 18.04
Di Linux, FreeBSD, OS X dan OS mirip UNIX lainnya, terowongan dari komputer klien dibuat menggunakan utilitas ssh (sshd harus berjalan di server VNC):

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

Opsi -L mengikat port 5901 dari koneksi jarak jauh ke port 5901 di localhost. Opsi -C mengaktifkan kompresi, dan opsi -N memberitahu ssh untuk tidak menjalankan perintah jarak jauh. Opsi -l menentukan login untuk login jarak jauh.

Setelah menyiapkan terowongan di komputer lokal, Anda perlu meluncurkan klien VNC dan membuat koneksi ke host 127.0.0.1:5901 (localhost:5901), menggunakan kata sandi yang ditentukan sebelumnya untuk mengakses server VNC. Kami sekarang dapat berkomunikasi dengan aman melalui terowongan terenkripsi dengan lingkungan desktop grafis XFCE di VPS. Pada tangkapan layar, utilitas teratas berjalan di emulator terminal untuk menunjukkan rendahnya konsumsi sumber daya komputasi mesin virtual. Maka semuanya akan tergantung pada aplikasi pengguna.

VPS di Linux dengan antarmuka grafis: meluncurkan server VNC di Ubuntu 18.04
Anda dapat menginstal dan mengkonfigurasi server VNC di Linux di hampir semua VPS. Ini tidak memerlukan konfigurasi yang mahal dan intensif sumber daya dengan emulasi adaptor video atau pembelian lisensi perangkat lunak komersial. Selain opsi layanan sistem yang kami pertimbangkan, ada opsi lain: diluncurkan dalam mode daemon (melalui /etc/rc.local) saat sistem melakukan booting atau sesuai permintaan melalui inetd. Yang terakhir ini menarik untuk membuat konfigurasi multi-pengguna. Internet Superserver akan memulai server VNC dan menghubungkan klien ke sana, dan server VNC akan membuat layar baru dan memulai sesi. Untuk mengautentikasi di dalamnya, Anda dapat menggunakan pengelola tampilan grafis (misalnya, LightDM), dan setelah klien terputus, sesi akan ditutup dan semua program yang bekerja dengan layar akan dihentikan.

VPS di Linux dengan antarmuka grafis: meluncurkan server VNC di Ubuntu 18.04

Sumber: www.habr.com

Tambah komentar