bersama catatan peribadi & teknikalnya.

Konfigurasi TigerVNC Sebagai Pelayan Tempatan untuk Desktop Jauh

Hos & Klien: Arch Linux


Paparan desktop hos (tetingkap sebelah kanan) dari skrin klien.

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).

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

Kedua-dua sistem bersambung di bawah rangkaian tempatan yang sama.


1. x0vncserver untuk kawalan langsung paparan jauh

A. Di dalam hos

  • Pasang pakej tigervnc.

    sudo pacman -S tigervnc 

  • Tetapkan kata laluan yang disimpan secara lalai di ~/.config/tigervnc/passwd.

    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. Port 5900 akan digunakan secara lalai jika tiada sebarang proses lain yang menggunakannya terlebih dahulu.

    x0vncserver -localhost -rfbauth ~/.config/tigervnc/passwd -SecurityTypes none & 

B. Di dalam klien

  • Untuk akses, buka klien vncviewer melalui SSH Tunnel dengan perintah berikut.
    vncviewer -via user@ip_address -PreferredEncoding=ZRLE -Shared -passwd ~/.config/tigervnc/passwd localhost:0 

Port selainnya ( ≥ 5901 ) boleh digunakan dengan opsyen -rfbport <port no> pada arahan x0vncserver. Paparan localhost melalui vncviewer juga mesti dikemaskini kepada nombor jujukan yang digunakan i.e. seandainya menggunakan port 5902, maka paparan di dalam klien adalah localhost:2.


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 /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.

~/.config/tigervnc/config (semak /usr/share/xsessions untuk entri session).

session=xfce
geometry=1920x1080
depth=24
localhost
alwaysshared

  • Mulakan servis systemd untuk pengaktifan server.

    sudo systemctl start vncserver@:1 

    • ATAU mulakannya dengan arahan berikut:
    vncserver :1 
    ...
     vncext:      Listening for VNC connections on local interface(s), port 5901 
     ...
    

B. Di dalam klien

  • Laksanakan vncviewer melalui SSH Tunnel dengan arahan berikut.

    vncviewer -via user@ip_address -PreferredEncoding=ZRLE -Shared -passwd ~/.config/tigervnc/passwd localhost:1 

  • Selain itu, Remmina juga tersedia di dalam repositori rasmi Arch Linux.

    Pemasangan:

    sudo pacman -S remmina libvncserver

    SSH Tunnel dari terminal:

    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.)

    Remmina: (abaikan percampuran bahasa antara BM dan English itu. 😁)

  • Jangan lupa untuk menggantikan user kepada pengguna tambahan (i.e. ibu) di mana vncserver berlangsung.

Tip: Bagi memudahkan urusan sambungan melalui SSH, tetapkan alamat IP lokal yang dimiliki oleh sistem hos/pelayan kepada nama domain yang dikehendaki di dalam /etc/hosts kemudian, tambahkan maklumat yang berkenaan seperti (tidak terhad kepada) Host, HostName (nama domain), User dan lain-lain ke dalam fail ~/.ssh/config.

/etc/hosts:

192.168.0.201  archlinux.local 

~/.ssh/config:

Host archl
    HostName archlinux.local 
    User ibu 

Maka setelah itu, ‘user@ip_address’ boleh digantikan dengan label hos itu sahaja, yakni ‘archl’.


Kaedah Lain

Aktifkan server sebenar X terus dari klien melalui SSH Tunnel:

  1. Untuk x0vncserver:

    ssh -t -L 5900:localhost:5900 user@ip_address "export DISPLAY=:0; x0vncserver -localhost -rfbauth ~/.config/tigervnc/passwd -SecurityTypes none" 

  2. Jika menggunakan x11vnc untuk kemudahan berkongi clipboard antara hos dan klien (in my case, it works both ways on Remmina, but with TigerVNC’s vncviewer, the clipboard only works from the host to the client, not the other way around.):

    ssh -t -L 5900:localhost:5900 user@ip_address "x11vnc -display :0 -localhost -rfbauth ~/.config/tigervnc/passwd" 



Kali terakhir dikemaskini:
Top