Tutorial ini menjelaskan cara menginstal dan mengkonfigurasi server VNC di Debian 9. Kami juga akan menunjukkan cara membuat terowongan SSH dan terhubung dengan aman ke server VNC.
Virtual Network Computing (VNC) adalah sistem berbagi desktop grafis yang memungkinkan Anda menggunakan keyboard dan mouse untuk mengontrol komputer lain dari jarak jauh.
Prasyarat #
Sebelum melanjutkan tutorial, pastikan Anda masuk sebagai pengguna dengan hak istimewa sudo.
Memasang Lingkungan Desktop #
Kemungkinan server Debian Anda tidak akan menginstal lingkungan desktop. Langkah pertama kami adalah memasang lingkungan desktop yang ringan.
Ada beberapa lingkungan desktop (DE) yang tersedia di repositori Debian. Kami akan menggunakan Xfceas sebagai lingkungan desktop pilihan kami. Ini cepat, stabil, dan ringan, yang membuatnya ideal untuk digunakan di server jauh.
Perbarui indeks paket dan instal Xfce di server Debian Anda dengan perintah berikut:
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Bergantung pada sistem Anda, mengunduh dan menginstal paket Xfce mungkin memakan waktu.
Instalasi VNC Server #
Ada juga beberapa server VNC berbeda yang tersedia di repositori Debian seperti TightVNC, TigerVNC, dan x11vnc. Setiap server VNC memiliki kelebihan dan kekurangan dalam hal kecepatan dan keamanan.
Kami akan menggunakan TigerVNC, yang merupakan server VNC berkinerja tinggi yang dipelihara secara aktif. Untuk menginstal TigerVNC di server Debian Anda, jalankan perintah berikut:
sudo apt install tigervnc-standalone-server tigervnc-common
Setelah server VNC terinstal, jalankan vncserver
perintah untuk 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 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.
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/linuxize/.Xauthority does not exist
New 'debian9.localdomain:1 (linuxize)' desktop at :1 on machine debian9.localdomain
Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/linuxize/.vnc/debian9.localdomain:1.log
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/linuxize/.vnc/passwd :1 to connect to the VNC server.
Saat Anda menjalankan vncserver
perintah untuk pertama kalinya, itu akan membuat dan menyimpan file kata sandi di ~/.vnc
direktori.
Perhatikan :1
setelah nama host di output di atas. Ini menunjukkan nomor port tampilan tempat server vnc berjalan. Dalam kasus kami, 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 diperhatikan adalah ketika bekerja dengan server VNC, :X
adalah port tampilan yang mengacu pada 5900+X
.
Sebelum melanjutkan ke langkah berikutnya, hentikan instance VNC menggunakan vncserver
perintah dengan -kill
opsi dan nomor server sebagai argumen. Dalam hal ini server berjalan di port 5901 (:1
), jadi kami akan menghentikannya dengan:
vncserver -kill :1
Killing Xtigervnc process ID 6677... success!
Konfigurasi Server VNC #
Sekarang setelah Xfce dan TigerVNC diinstal pada mesin, kita perlu mengkonfigurasi TigerVNC untuk menggunakan Xfce. Untuk melakukannya, buat file berikut:
nano ~/.vnc/xstartup
~/.vnc/xstartup#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
Setelah selesai, simpan dan tutup file. Script di atas akan dijalankan secara otomatis setiap kali Anda memulai atau me-restart server TigerVNC.
~/.vnc/xstartup
file juga harus memiliki izin eksekusi. Jalankan chmod
berikut ini perintah untuk memastikan izin sudah benar:
chmod u+x ~/.vnc/xstartup
Jika Anda perlu memberikan opsi tambahan ke server VNC, Anda dapat membuat file bernama config
dan tambahkan satu opsi per baris. Ini contohnya:
geometry=1920x1080
dpi=96
Membuat file unit Systemd #
File unit systemd akan memungkinkan kita untuk memulai, menghentikan, dan memulai ulang layanan VNC dengan mudah sesuai kebutuhan.
Buka editor teks Anda dan salin dan tempel konfigurasi berikut ke dalamnya. Jangan lupa untuk mengganti username pada baris 7 agar sesuai dengan username 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 [email protected]
baru file ada dengan menjalankan perintah berikut:
sudo systemctl daemon-reload
Selanjutnya, aktifkan layanan:
sudo systemctl enable [email protected]
Nomor 1
setelah @
tanda mendefinisikan port tampilan di mana layanan VNC akan berjalan. Seperti yang telah kita bahas di bagian sebelumnya karena kita menggunakan 1
server VNC akan mendengarkan pada port 5901
.
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 Wed 2018-10-03 05:23:33 PDT; 51s ago
Process: 7063 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 7071 (vncserver)
Tasks: 0 (limit: 4915)
CGroup: /system.slice/system-vncserver.slice/[email protected]
‣ 7071 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440x900 -alwaysshared -fg
Menghubungkan ke server VNC #
VNC bukan protokol terenkripsi dan dapat menjadi sasaran packet sniffing. Pendekatan yang disarankan adalah membuat terowongan SSH yang akan 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 ssh
perintah:
ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
Anda akan diminta untuk memasukkan kata sandi pengguna.
Jangan lupa ganti 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, perluas 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. Sekarang yang perlu Anda lakukan adalah memilih sesi yang disimpan dan login ke server jauh dengan mengklik tombol Open
tombol.
Menghubungkan menggunakan Vncviewer #
Sekarang setelah Anda menyiapkan tunneling SSH, 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.
Dalam contoh ini, kita akan menggunakan TigerVNC. Buka penampil VNC Anda, masukkan localhost:5901
, dan klik tombol Connect
tombol.
Masukkan kata sandi Anda saat diminta, dan Anda akan melihat desktop Xfce default. Seharusnya terlihat seperti ini:
Pada titik ini, Anda telah berhasil terhubung ke server Anda melalui VNC. Sekarang Anda dapat mulai berinteraksi dengan desktop XFCE jarak jauh dari komputer lokal Anda menggunakan keyboard dan mouse.