Konfigurasi Pelayan TigerVNC (Dalaman) untuk Desktop Jauh
Hos & Klien: Arch Linux
vncviewer
.
Ditulis semula.
Melalui perbincangan bersama anak-anak, saya jelaskan bahawa ada ketikanya saya akan melihat aktiviti di komputer riba mereka (menggunakan distro Arch Linux
) melalui skrin sistem operasi saya (juga distro Arch Linux
).
Hal ini juga sesungguhnya menyenangkan apabila saya perlu mengambil alih laptop mereka sebagai “admin” setiap kali diadukan sebarang masalah berkait sistem.
Sebelum ini, saya gunakan DWService
untuk memantau dari web browser saya. Selepas merajinkan diri meneroka pakej-pakej server (pelayan) VNC, berhasil jugalah mendapatkannya dengan pakej-pakej binari yang tersedia dalam TigerVNC
.
Di sini, saya catatkan cara-caranya bersama maklumat paparan yang kedua-dua peranti gunakan.
- Desktop Environment (DE) di dalam hos:
XFCE4
&LightDM
(Display Manager) - Pengurus tetingkap (Window Manager) di dalam klien:
i3-gaps
1. x0vncserver untuk kawalan langsung paparan jauh
A. Di dalam hos
Pasang pakej
tigervnc
.bash
sudo pacman -S tigervnc
Tetapkan kata laluan yang disimpan secara lalai di
~/.config/tigervnc/passwd
.bash
vncpasswd
Cara yang mudah untuk mengautomasi
x0vncserver
adalah dengan menambah baris di bawah ke dalam file~/.xprofile
. Server ini akan dimulakan secara auto setiap kali pengguna log masuk ke dalam pelayan X. Port5900
akan digunakan secara lalai jika tiada sebarang proses lain yang menggunakannya terlebih dahulu.~/.xprofile
x0vncserver -localhost -rfbauth ~/.config/tigervnc/passwd -SecurityTypes none &
B. Di dalam klien
Untuk akses, buka klien
vncviewer
melaluiSSH Tunnel
dengan perintah berikut.bash
vncviewer -via user@ip_address -PreferredEncoding=ZRLE -Shared -passwd ~/.config/tigervnc/passwd localhost:0
Port selainnya ( ≥ 5901 ) boleh digunakan dengan opsyen-rfbport
pada arahanx0vncserver
. Paparan localhost melaluivncviewer
juga mesti dikemaskini kepada nombor jujukan yang digunakan i.e. seandainya menggunakan port5902
, maka paparan di dalam klien adalahlocalhost:2
.Kaedah Lain
Aktifkan server sebenarX
terus dari klien melaluiSSH Tunnel
:- Untuk
x0vncserver
:bash
ssh -t -L 5900:localhost:5900 user@ip_address "export DISPLAY=:0; x0vncserver -localhost -rfbauth ~/.config/tigervnc/passwd -SecurityTypes none"
- Jika menggunakan
x11vnc
untuk kemudahan berkongiclipboard
antara hos dan klien (in my case, it works both ways on Remmina, but with TigerVNC'svncviewer
, the clipboard only works from the host to the client, not the other way around.):bash
ssh -t -L 5902:localhost:5902 user@ip_address "x11vnc -display :0 -localhost -rfbauth ~/.config/tigervnc/passwd -rfbport 5902"
- Untuk
2. vncserver untuk virtual remote desktop
A. Di dalam hos
Bagi tujuan kerja-kerja lain di komputer atau sistem hos misalnya yang melibatkan pentadbiran serta memerlukan GUI, disarankan untuk menjalankan pelayan VNC sebagai pengguna lain agar tidak mengganggu pelayan semasa X yang sedang berlangsung di dalam peranti sebenar.
Tambahkan pengguna yang berkenaan (e.g. ibu);
Log masuk sebagai pengguna tersebut;
Dan tetapkan server SSH seperti biasa agar dapat bersambung tanpa kata laluan.
Sunting fail berikut.
/etc/tigervnc/vncserver.users
# TigerVNC User assignment # # This file assigns users to specific VNC display numbers. # The syntax is <display>=<username>. E.g.: # # :2=andrew # :3=lisa :1=ibu
Tambah fail
config
ke dalam direktori~/.config/tigervnc
dengan perincian berikut. (Semak/usr/share/xsessions
untuk entri session.)~/.config/tigervnc/config
session=xfce geometry=1920x1080 depth=24 localhost alwaysshared
Mulakan servis
systemd
untuk pengaktifan server.bash
sudo systemctl start vncserver@:1
ATAU mulakannya dengan arahan berikut:
bash
vncserver :1
... vncext: Listening for VNC connections on local interface(s), port 5901 ...
B. Di dalam klien
Laksanakan
vncviewer
melaluiSSH Tunnel
dengan arahan berikut.bash
vncviewer -via user@ip_address -PreferredEncoding=ZRLE -Shared -passwd ~/.config/tigervnc/passwd localhost:1
Selain itu,
Remmina
juga tersedia di dalam repositori rasmiArch Linux
.✧ Pemasangan:
bash
sudo pacman -S remmina libvncserver
✧ SSH Tunnel dari terminal:
bash
ssh -N -L 5901:localhost:5901 user@ip_address &
(
-N
is for port-forwarding only, and&
at the end is used to run the command in the background.)✧ Di
Remmina
: (abaikan percampuran bahasa antara BM dan English itu. 😁)