Keperluan remote desktop, banyak yang menggunakan XFCE, selain karena ukurannya yang kecil, juga karena hemat memory. Dengan XFCE, 1 GB memory bisa diakses oleh beberapa orang, dengan catatan tidak semua menggunakan browser ;) Karena penggunaan browser ini memakai memory yang besar, jadi sebaiknya menggunakan memory 4 GB. Dengan menggunakan VNC kita menggunakan server kita sebagai komputer remote, karena kita bisa menginstall semua aplikasi dan mengaksesnya dengan tampilan GUI.
Di Linux ada banyak aplikasi VNC Server yang bisa digunakan, yang menjadi default di Debian 11 adalah TigerVNC. VNC terbagi menjadi 2, VNC Server sebagai aplikasi yang menjalankan proses VNC, dan VNC client yang mengakses VNC tersebut (remote desktop).
Update Debian 11
Hal ini sangat disarankan untuk dijalankan, agar sistem anda mendapat update terbaru. Jalankan perintah ini secara berkala
sudo apt update; sudo apt upgrade -y
bila terdapat update kernel, reboot server anda.
sudo reboot
Install XFCE
Bila anda menggunakan debian tanpa Desktop Environment, ataupun menggunakan DE selain XFCE install paket XFCE terlebih dahulu
sudo apt install xfce4 -y
paket yang di install xfce4 hanya core untuk xfce saja, untuk menginstall tambahan seperti terminal dan berbagai plugin xfce install
sudo apt install xfce4-goodies -y
Install VNC Server
Untuk menginstall TigerVNC di jalankan
sudo apt install tigervnc-standalone-server -y
Set Password User VNC
Jangan jalankan VNC sebagai sebagai root, karena banyak hal-hal yang tidak diinginkan bisa terjadi, banyak bot berkeliaran yang. Buat password VNC sebagai user anda, disini saya menggunakan user jaranguda.
vncpasswd
masukkan password anda, jangan lebih dari 15 karakter karena beberapa VNC Client tidak support lebih dari 15 karakter.
Service Systemd
Agar mempermudah mejalankan service VNC, kita akan membuat service systemd, jadi bisa dijalankan, diberhentikan dengan systemctl. Buat file /etc/systemd/system/vncserver@1.service
, yang isinya
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=jaranguda ExecStartPre=-/usr/bin/vncserver -kill :%i ExecStart=/usr/bin/vncserver -localhost no :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target
ganti jaranguda
menjadi user anda.
Agar TigerVNC dijalankan setelah booting, aktifkan dengan systemctl
systemctl enable vncserver@1.service
Untuk menjalankan TigerVNC, eksekusi
systemctl start vncserver@1.service
Cek status VNC
systemctl status vncserver@:1.service
Lihat Process TigerVNC
Selain dengan menjalankan systemctl status vncserver@1.service
bisa dicek dengan ss -tunlp
$ sudo systemctl status vncserver@1.service ● vncserver@1.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@1.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2021-11-23 13:39:10 WIB; 2min 1s ago Process: 3926 ExecStartPre=/usr/bin/vncserver -kill :1 (code=exited, status=1/FAILURE) Process: 3929 ExecStart=/usr/bin/vncserver -localhost no :1 (code=exited, status=0/SUCCESS) Main PID: 3935 (vncserver) Tasks: 31 (limit: 16613) Memory: 49.6M CPU: 414ms CGroup: /system.slice/system-vncserver.slice/vncserver@1.service ├─3935 /usr/bin/perl /usr/bin/vncserver -localhost no :1 ├─3936 /usr/bin/Xtigervnc :1 -rfbport 5901 -localhost=0 -SecurityTypes VncAuth,TLSVnc -PasswordFile /home/jaranguda/.vnc/passwd -ClientWaitTimeMillis 30000 -geometry 1920x1200 -desktop kahowa.`:1 (jaranguda> ├─3951 /bin/sh /etc/X11/Xtigervnc-session ├─3955 tigervncconfig -iconic ├─3956 xfce4-session └─4002 /usr/bin/ssh-agent x-session-manager Nov 23 13:39:07 kahowa systemd[1]: Starting Remote desktop service (VNC)... Nov 23 13:39:07 kahowa vncserver[3926]: vncserver: No matching VNC server running for this user! Nov 23 13:39:07 kahowa vncserver[3935]: New Xtigervnc server 'kahowa.`:1 (jaranguda)' on port 5901 for display :1. Nov 23 13:39:07 kahowa vncserver[3935]: Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /home/jaranguda/.vnc/passwd kahowa.`:1 to connect to the VNC server. Nov 23 13:39:10 kahowa systemd[1]: Started Remote desktop service (VNC). $ ss -tunlp Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process udp UNCONN 0 0 0.0.0.0:5353 0.0.0.0:* udp UNCONN 0 0 0.0.0.0:39595 0.0.0.0:* udp UNCONN 0 0 [::]:53868 [::]:* udp UNCONN 0 0 [::]:5353 [::]:* tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* tcp LISTEN 0 5 0.0.0.0:5901 0.0.0.0:* users:(("Xtigervnc",pid=3936,fd=9)) tcp LISTEN 0 128 [::]:22 [::]:* tcp LISTEN 0 5 [::]:5901 [::]:* users:(("Xtigervnc",pid=3936,fd=10))
Login ke VNC Server
Akses VNC server dengan vncviewer dari terminal, ataupun VNC client yang lain.
vncviewer IP-SERVER:5901
masukkan password VNC Server
Mengamankan VNC Server
Cara untuk mengamankan VNC adalah dengan menggunakan SSH Tunnel, jadi VNC hanya bisa dari server tersebut (private IP), bukan dari public IP. Tanpa pengamanan ini pun VNC anda sudah bisa digunakan, tapi sangat direkomendasikan untuk menjalankan settingan ini.
Buka kembali file /etc/systemd/system/vncserver@:1.service
, ubah bagian
ExecStart=/usr/bin/vncserver -localhost no :%i
menjadi
ExecStart=/usr/bin/vncserver -localhost yes :%i
lalu restart service systemd
# karena konfigurasi service systemd dirubah, harus di clear cachenya sudo systemctl daemon-reload # restart vnc sudo systemctl restart vncserver@1.service
pastikan VNC sudah listening ke 127.0.0.1
atau [::1]
Sekarang untuk login pertama kali harus bind port 5901 dari server ke localhost:5901 bisa juga menggunakan private IP contoh 192.168.88.1:5901, 5901 bisa diganti dengan port lainnya, misalkan 8080 selama port tersebut belum digunakan dan bisa diakses oleh user.
ssh user@SERVER -L 5901:localhost:5901
untuk mengakses remote desktop, jalankan
vncviewer localhost:5901