Panduan ini mencakup langkah-langkah yang diperlukan untuk menginstal dan mengkonfigurasi server VNC pada sistem Ubuntu 18.04. Kami juga akan menunjukkan kepada Anda cara terhubung dengan aman ke server VNC melalui SSH tunnel.
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 open source untuk protokol remote desktop protocol (RDP) Microsoft.
Prasyarat
Sebelum melanjutkan dengan tutorial ini, pastikan Anda masuk sebagai pengguna dengan hak istimewa sudo.
Install Desktop Environment
Sebagian besar server tidak memiliki desktop environments (lingkungan desktop) yang diinstal, jadi kita akan mulai dengan memasang desktop environments yang ringan.
Ada beberapa desktop environments (DE) yang tersedia di repositori Ubuntu. Dalam tutorial ini kita akan menginstal Xfce. Ini adalah lingkungan desktop yang cepat, stabil, dan ringan, yang membuatnya ideal untuk penggunaan di server jarak jauh.
Pertama update sistem
sudo apt update sudo apt upgrade
Kemudian, ketikkan perintah berikut untuk menginstal Xfce di server Anda:
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Bergantung pada sistem Anda, mengunduh dan menginstal paket Xfce mungkin memerlukan waktu.
Install VNC Server
Ada juga 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.
Kita akan menginstal TigerVNC, yang secara aktif memelihara server VNC berkinerja tinggi.
Ketik perintah berikut untuk menginstal TigerVNC di server Ubuntu Anda:
sudo apt install tigervnc-standalone-server tigervnc-common
Sekarang setelah server VNC diinstal, langkah selanjutnya adalah menjalankan perintah vncserver
yang akan membuat konfigurasi awal dan mengatur kata sandi. Jangan gunakan sudo saat menjalankan perintah berikut:
vncserver
Anda akan diminta untuk memasukkan dan mengonfirmasi kata sandi dan apakah akan menetapkannya sebagai kata sandi view-only?.
Jika Anda memilih untuk mengatur kata sandi view-only, user tidak akan dapat berinteraksi dengan instance VNC dengan mouse dan keyboard.
You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n /usr/bin/xauth: file /home/linuxid/.Xauthority does not exist New 'server2.linuxid.net:1 (linuxid)' desktop at :1 on machine server2.linuxid.net Starting applications specified in /etc/X11/Xvnc-session Log file is /home/linuxid/.vnc/server2.linuxid.net:1.log Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/linuxid/.vnc/passwd :1 to connect to the VNC server.
Pertama kali perintah vncserver
dijalankan, vncserver akan membuat dan menyimpan file kata sandi di direktori ~/.vnc
yang akan dibuat jika tidak ada.
Sebelum melanjutkan dengan langkah selanjutnya, pertama hentikan instance VNC menggunakan perintah vncserver
dengan opsi -kill
dan nomor server sebagai argumen. Dalam kasus kami server sedang berjalan di port 5901 (:1
), jadi kami akan menghentikannya dengan:
vncserver -kill :1
Killing Xtigervnc process ID 7264... success!
Konfigurasi VNC Server
Sekarang kita telah menginstal Xfce dan TigerVNC di server kita, kita perlu mengkonfigurasi TigerVNC untuk menggunakan Xfce. Untuk melakukannya, buat file berikut:
nano ~/.vnc/xstartup
#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4
Simpan dan tutup file. Perintah di atas akan dieksekusi secara otomatis setiap kali Anda start atau restart server TigerVNC.
File ~/.vnc/xstartup
juga perlu memiliki izin eksekusi. Jalankan perintah berikut untuk memastikan izin benar:
chmod u+x ~/.vnc/xstartup
Jika Anda harus meneruskan opsi tambahan ke server VNC Anda dapat membuat file bernama config
dan menambahkan opsi per baris. Berikut ini sebuah contoh:
geometry=1920x1084 dpi=96
Membuat unit file Systemd
Kami akan membuat unit file systemd yang akan memungkinkan kita untuk start, stop, dan restart kembali layanan VNC dengan mudah, sama seperti layanan systemd lainnya.
Buka teks editor Anda, copy dan paste konfigurasi berikut ke dalamnya. Pastikan untuk mengubah nama user pada baris ke 7 agar sesuai dengan nama user Anda.
sudo nano /etc/systemd/system/[email protected]
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=simple User=linuxid 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 kita telah membuat file unit baru dengan perintah berikut :
sudo systemctl daemon-reload
Langkah selanjutnya adalah mengaktifkan file unit dengan perintah berikut:
sudo systemctl enable [email protected]
Angka 1
setelah tanda @
menentukan port tempat layanan VNC akan berjalan. Ini berarti server VNC akan listen pada port 5901
, seperti yang 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]; indirect; vendor preset: enabled) Active: active (running) since Thu 2018-08-16 19:05:54 UTC; 4s ago Process: 9893 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) Main PID: 9900 (vncserver) Tasks: 0 (limit: 507) CGroup: /system.slice/system-vncserver.slice/[email protected] ‣ 9900 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440x900 -alwaysshared -fg
Cara Terhubung ke VNC server
VNC bukan protokol terenkripsi dan cukup rentan terhadap packet sniffing. Pendekatan yang disarankan adalah dengan membuat SSH tunnel yang akan meneruskan lalu lintas dengan aman dari mesin lokal Anda pada port 5901 ke server pada port yang sama.
Cara Setup SSH Tunneling di Linux dan macOS
Jika Anda menjalankan Linux, macOS atau sistem operasi berbasis Unix lainnya, Anda dapat dengan mudah membuat SSH tunnel dengan perintah berikut:
ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
Anda akan diminta memasukkan kata sandi user.
Jangan lupa mengganti username
dan server_ip_address
dengan nama user dan alamat IP server Anda.
Cara Setup SSH Tunneling di Windows
Jika Anda menjalankan Windows, Anda dapat mengatur SSH Tunneling menggunakan PuTTY SSH client.
Buka Putty dan masukkan Alamat IP server Anda di bidang Host name or IP address.
Di bawah menu Connection
, klik icon +
di SSH
dan pilih Tunnels
. Masukkan port server VNC (5901
) di field Source Port
dan masukkan server_ip_address:5901
di field Destination
dan klik tombol Add seperti yang ditunjukkan pada gambar di bawah:
Kembali ke halaman Session
untuk menyimpan pengaturan sehingga Anda tidak perlu memasukkannya setiap kali. Sekarang yang perlu Anda lakukan adalah memilih sesi yang disimpan dan login ke remote server dengan mengklik tombol Open
.
Terhubung ke Server Linux menggunakan Vncviewer
Setelah men-setup SSH tunneling, sekarang saatnya untuk membuka Vncviewer dan untuk terhubung ke VNC Server di localhost:5901
.
Anda dapat menggunakan VNC viewer apa pun seperti TigerVNC, TightVNC, RealVNC, UltraVNC Vinagre dan VNC Viewer untuk Google Chrome.
Dalam contoh ini kita akan menggunakan TigerVNC. Buka VNC viewer Anda, masukkan localhost:5901
dan klik tombol Connect
.
Masukkan kata sandi user ketika diminta dan Anda akan melihat desktop Xfce default. Seharusnya terlihat seperti ini:
Anda dapat mulai berinteraksi dengan desktop XFCE jarak jauh dari mesin lokal Anda menggunakan keyboard dan mouse.
Kesimpulan
Sekarang Anda sudah memiliki server VNC dan berjalan dan dapat dengan mudah mengelola server Ubuntu 18.04 dari mesin desktop lokal Anda menggunakan antarmuka grafis yang mudah digunakan.
Untuk mengkonfigurasi VNC server untuk memulai tampilan untuk lebih dari satu pengguna, buat konfigurasi awal dan atur kata sandi menggunakan perintah vncserver
. Anda juga perlu membuat file layanan baru menggunakan port yang berbeda.