Virtual Network Computing (VNC) adalah sistem berbagi desktop grafis yang memungkinkan Anda menggunakan keyboard dan mouse untuk mengontrol komputer lain dari jarak jauh
Panduan ini mencakup langkah-langkah yang diperlukan untuk menginstal dan mengkonfigurasi server VNC pada sistem CentOS 8. Kami juga akan menunjukkan kepada Anda cara terhubung dengan aman ke server VNC melalui SSH tunnel.
Prasyarat
Sebelum melanjutkan dengan tutorial ini, pastikan Anda masuk sebagai pengguna dengan hak istimewa sudo.
Install Desktop Environment
Secara umum, server tidak memiliki desktop environment yang diinstal. Jika mesin yang ingin Anda sambungkan tidak memiliki GUI, langkah pertama adalah menginstalnya. Kalau tidak, lewati langkah ini.
Jalankan perintah berikut untuk menginstal Gnome, desktop environment default di CentOS 8 pada mesin jarak jauh Anda:
sudo dnf groupinstall "Server with GUI"
Bergantung pada sistem Anda, mengunduh dan menginstal paket Gnome mungkin memerlukan waktu.
Install VNC Server
TigerVNC adalah server VNC open-source berkinerja tinggi yang dipelihara secara aktif. Kita akan menggunakan TigerVNC sebagai server pilihan VNC.
sudo dnf install tigervnc-server
Sekarang setelah VNC server 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
Pertama kali perintah vncserver
dijalankan, vncserver akan membuat dan menyimpan file kata sandi di direktori ~/.vnc
yang akan dibuat jika tidak ada.
Perhatikan :1
setelah hostname di output di atas. Ini menunjukkan display port tampilan tempat VNC server berjalan. Dalam kasus kami, server berjalan pada port TCP 5901
(5900+1). Jika Anda membuat instance kedua, maka akan berjalan pada port yang tidak terpakai berikutnya, misalnya :2
, yang berarti server berjalan pada port 5902
(5900+2).
Yang penting untuk diingat adalah bahwa ketika bekerja dengan VNC server, :X
adalah display port yang merujuk ke 5900+X
.
Sebelum melanjutkan dengan langkah berikutnya, pertama hentikan instance VNC menggunakan perintah vncserver
dengan opsi -kill
dan nomor server sebagai argumen. Dalam kasus kami, server berjalan di port 5901 (:1
), jadi untuk menghentikannya, jalankan:
vncserver -kill :1
Killing Xvnc process ID 19681
Konfigurasi Server VNC
Sekarang baik Gnome dan TigerVNC telah diinstal pada mesin CentOS jarak jauh, langkah selanjutnya adalah mengkonfigurasi TigerVNC untuk menggunakan Gnome. Server VNC menggunakan file ~/.vnc/xstartup
untuk menjalankan aplikasi saat membuat desktop baru. Buka file:
vim ~/.vnc/xstartup
Dan edit sebagai berikut:
#!/bin/sh [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources vncconfig -iconic & dbus-launch --exit-with-session gnome-session &
Simpan dan tutup file. Script di atas dijalankan secara otomatis setiap kali Anda memulai atau restart server TigerVNC.
Jika Anda ingin memberikan opsi tambahan ke VNC server, buka file ~/.vnc /config
dan tambahkan satu opsi per baris. Opsi yang paling umum tercantum dalam file. Batalkan komentar dan ubah sesuai keinginan Anda.
Berikut ini sebuah contoh:
# securitytypes=vncauth,tlsvnc # desktop=sandbox geometry=1920x1080 # localhost # alwaysshared
Buat unit file Systemd
File unit memungkinkan Anda untuk memulai, menghentikan, dan memulai kembali layanan dengan mudah. Secara umum, lokasi terbaik untuk menyimpan unit file user adalah ~/.config/systemd/user
. Pertama Buat direktori:
mkdir -p ~/.config/systemd/user
Salin file unit vncserver default:
cp /usr/lib/systemd/user/[email protected] ~/.config/systemd/user/
Beri tahu systemd bahwa ada unit file user baru:
systemctl --user daemon-reload
Mulai VNC service dan aktifkan saat boot:
systemctl --user enable vncserver@:1.service --now
Angka 1
setelah @:
menentukan display port tempat VNC service akan listen. Kami menggunakan 1
, yang berarti bahwa VNC server akan listen pada port 5901 seperti yang kita bahas di bagian sebelumnya.
Aktifkan lingering agar layanan pengguna mulai saat boot dan terus berjalan ketika pengguna tidak masuk:
loginctl enable-linger
Pastikan layanan berhasil dimulai dengan:
systemctl --user status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/home/linuxid/.config/systemd/user/[email protected]; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-01-30 22:14:08 UTC; 2s ago Process: 20813 ExecStart=/usr/bin/vncserver :1 (code=exited, status=0/SUCCESS) Process: 20807 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) CGroup: /user.slice/user-1000.slice/[email protected]/vncserver.slice/vncserver@:1.service ...
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 remote_server_ip
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 menggunakan Vncviewer
Untuk terhubung ke Server jarak jauh, buka VNC viewer Anda dan masukkan localhost:5901
.
Anda dapat menggunakan viewer apa pun seperti TigerVNC, TightVNC, RealVNC, UltraVNC Vinagre, dan VNC Viewer untuk Google Chrome.
Untuk tutorial ini kita akan menggunakan TigerVNC:
Masukkan kata sandi saat diminta, dan Anda akan melihat desktop Gnome default yang terlihat seperti ini:
Pada poin ini, Anda sekarang dapat mulai bekerja pada remote desktop dari mesin lokal Anda menggunakan keyboard dan mouse.
Kesimpulan
Kami telah menunjukkan kepada Anda cara menyiapkan VNC server dan terhubung ke mesin CentOS 8 jarak jauh.
Untuk memulai tampilan untuk lebih dari satu pengguna, ulangi langkah yang sama. Buat konfigurasi awal, atur kata sandi menggunakan perintah vncserver
, dan buat file layanan baru menggunakan port yang berbeda.