Virtual Network Computing (VNC) adalah sistem berbagi desktop grafis yang memungkinkan Anda menggunakan keyboard dan mouse untuk mengontrol komputer lain dari jarak jauh. Ini adalah alternatif sumber terbuka untuk protokol desktop jarak jauh Microsoft (RDP).
Artikel ini menjelaskan cara menginstal dan mengkonfigurasi server VNC di Ubuntu 20.04. Kami juga akan menunjukkan cara menyambungkan ke server VNC dengan aman melalui terowongan SSH.
Memasang Lingkungan Desktop #
Server Ubuntu dikelola dari baris perintah dan tidak memiliki lingkungan desktop yang diinstal secara default. Jika Anda menjalankan Ubuntu versi desktop, lewati langkah ini.
Ada berbagai lingkungan desktop yang tersedia di repositori Ubuntu. Salah satu opsi adalah menginstal Gnome, yang merupakan lingkungan desktop default di Ubuntu 20.04. Pilihan lainnya adalah menginstal Xfce. Ini adalah lingkungan desktop yang cepat, stabil, dan ringan, yang membuatnya ideal untuk digunakan pada server jarak jauh.
Dalam panduan ini, kami akan menginstal Xfce. Masukkan perintah berikut sebagai pengguna dengan hak sudo:
sudo apt update
sudo apt install xfce4 xfce4-goodies
Bergantung pada sistem Anda, mengunduh dan menginstal paket Xfce mungkin memakan waktu.
Instalasi VNC Server #
Ada beberapa server VNC berbeda yang tersedia di repositori Ubuntu, seperti TightVNC, TigerVNC, dan x11vnc. Setiap server VNC memiliki kekuatan dan kelemahan yang berbeda dalam hal kecepatan dan keamanan.
Kami akan menginstal TigerVNC. Ini adalah server VNC berkinerja tinggi yang dipelihara secara aktif. Ketik perintah berikut untuk menginstal paket:
sudo apt install tigervnc-standalone-server
Mengonfigurasi Akses VNC #
Setelah server VNC diinstal, langkah selanjutnya adalah membuat konfigurasi pengguna awal dan mengatur kata sandi.
Setel kata sandi pengguna menggunakan vncpasswd
memerintah. Jangan gunakan sudo saat menjalankan perintah di bawah ini:
vncpasswd
Anda akan diminta untuk memasukkan dan mengonfirmasi kata sandi dan apakah akan menyetelnya sebagai kata sandi hanya lihat. Jika Anda memilih untuk menyetel sandi hanya lihat, pengguna tidak akan dapat berinteraksi dengan instans VNC dengan mouse dan keyboard.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
File kata sandi disimpan di ~/.vnc
direktori, yang dibuat jika tidak ada.
Selanjutnya, kita perlu mengkonfigurasi TigerVNC untuk menggunakan Xfce. Untuk melakukannya, buat file berikut:
~/.vnc/xstartupnano ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
Simpan dan tutup file. Perintah di atas dijalankan secara otomatis setiap kali Anda memulai atau me-restart server TigerVNC.
~/.vnc/xstartup
file juga harus memiliki izin eksekusi. Gunakan chmod
perintah untuk mengatur hak akses file:
chmod u+x ~/.vnc/xstartup
Jika Anda perlu memberikan opsi tambahan ke server VNC, buat file bernama config
dan tambahkan satu opsi per baris. Ini contohnya:
geometry=1920x1080
dpi=96
Anda sekarang dapat memulai server VNC menggunakan vncserver
perintah:
vncserver
New 'server2.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.com
Starting applications specified in /home/linuxize/.vnc/xstartup
Log file is /home/linuxize/.vnc/server2.linuxize.com:1.log
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/linuxize/.vnc/passwd :1 to connect to the VNC server.
Perhatikan :1
setelah nama host di output di atas. Ini menunjukkan jumlah port tampilan tempat server vnc berjalan. Dalam contoh ini, server berjalan pada port TCP 5901
(5900+1). Jika Anda membuat instance kedua dengan vncserver
itu akan berjalan pada port gratis berikutnya yaitu :2
, yang berarti server berjalan pada port 5902
(5900+2).
Yang penting untuk diingat adalah ketika bekerja dengan server VNC, :X
adalah port tampilan yang mengacu pada 5900+X
.
Anda bisa mendapatkan daftar semua sesi VNC yang sedang berjalan dengan mengetik:
vncserver -list
TigerVNC server sessions:
X DISPLAY # RFB PORT # PROCESS ID
:1 5901 5710
Sebelum melanjutkan ke langkah berikutnya, hentikan instance VNC menggunakan vncserver
perintah dengan -kill
opsi dan nomor server sebagai argumen. Dalam contoh ini, server berjalan di port 5901 (:1
), jadi kami akan menghentikannya dengan:
vncserver -kill :1
Killing Xtigervnc process ID 5710... success!
Membuat file unit Systemd #
Daripada memulai sesi VNC secara manual, mari buat file unit systemd sehingga Anda dapat memulai, menghentikan, dan memulai ulang layanan VNC sesuai kebutuhan.
Buka editor teks Anda dan salin dan tempel konfigurasi berikut ke dalamnya. Pastikan untuk mengubah nama pengguna pada baris 7 agar sesuai dengan nama pengguna Anda.
sudo nano /etc/systemd/system/[email protected]
/etc/systemd/system/[email protected][Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
User=linuxize
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
Simpan dan tutup file.
Beri tahu systemd bahwa file unit baru telah dibuat:
sudo systemctl daemon-reload
Aktifkan layanan untuk memulai saat boot:
sudo systemctl enable [email protected]
Nomor 1
setelah @
tanda mendefinisikan port tampilan di mana layanan VNC akan berjalan. Ini berarti bahwa server VNC akan mendengarkan pada port 5901
, seperti yang telah kita bahas di bagian sebelumnya.
Mulai layanan VNC dengan menjalankan:
sudo systemctl start [email protected]
Verifikasi bahwa layanan berhasil dimulai dengan:
sudo systemctl status [email protected]
● [email protected] - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-03-26 20:00:59 UTC; 3s ago
...
Menghubungkan ke server VNC #
VNC bukan protokol terenkripsi dan dapat menjadi sasaran packet sniffing. Pendekatan yang disarankan adalah membuat terowongan SSH dan meneruskan lalu lintas dengan aman dari mesin lokal Anda pada port 5901 ke server pada port yang sama.
Menyiapkan SSH Tunneling di Linux dan macOS #
Jika Anda menjalankan Linux, macOS, atau sistem operasi berbasis Unix lainnya di mesin Anda, Anda dapat dengan mudah membuat terowongan SSH dengan perintah berikut:
ssh -L 5901:127.0.0.1:5901 -N -f -l vagrant 192.168.33.10
Anda akan diminta untuk memasukkan kata sandi pengguna.
Pastikan untuk mengganti username
dan server_ip_address
dengan nama pengguna Anda dan alamat IP server Anda.
Menyiapkan SSH Tunneling di Windows #
Jika Anda menjalankan Windows, Anda dapat mengatur SSH Tunneling menggunakan klien SSH Putty.
Buka Putty dan masukkan Alamat IP server Anda di Host name or IP address
lapangan.
Di bawah Connection
menu, kotak, luaskan SSH
, dan pilih Tunnels
. Masukkan port server VNC (5901
) di Source Port
dan masukkan server_ip_address:5901
di Destination
dan klik pada Add
tombol seperti yang ditunjukkan pada gambar di bawah ini:
Kembali ke Session
halaman untuk menyimpan pengaturan, sehingga Anda tidak perlu memasukkannya setiap kali. Ke server jauh, pilih sesi yang disimpan dan klik tombol Open
tombol.
Menghubungkan menggunakan Vncviewer #
Sekarang terowongan SSH dibuat, sekarang saatnya untuk membuka Vncviewer Anda dan menghubungkan ke Server VNC di localhost:5901
.
Anda dapat menggunakan penampil VNC seperti TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre, dan VNC Viewer untuk Google Chrome.
Kami akan menggunakan TigerVNC. Buka viewer, masukkan localhost:5901
, dan klik tombol Connect
tombol.
Masukkan kata sandi pengguna Anda saat diminta, dan Anda akan melihat desktop Xfce default. Ini akan terlihat seperti ini:
Anda dapat mulai berinteraksi dengan desktop XFCE jarak jauh dari mesin lokal Anda menggunakan keyboard dan mouse.