Documentation for a newer release is available. View Latest

TigerVNC

TigerVNC (Tiger Virtual Network Computing) adalah sistem untuk berbagi desktop grafis yang memungkinkan Anda untuk mengontrol komputer lain dari jarak jauh.

TigerVNC bekerja pada jaringan klien-server: server berbagi keluarannya (vncserver) dan klien (vncviewer) menyambung ke server.

Tidak seperti di Fedora 15 dan Red Hat Enterprise Linux 6, TigerVNC di Fedora menggunakan daemon manajemen sistem systemd untuk konfigurasinya. Berkas konfigurasi /etc/sysconfig/vncserver telah diganti dengan /etc/systemd/system/vncserver@.service.

Server VNC

vncserver adalah utilitas yang memulai desktop VNC (Virtual Network Computing). Itu menjalankan Xvnc dengan opsi yang sesuai dan memulai manajer jendela di desktop VNC. vncserver memungkinkan pengguna untuk menjalankan sesi terpisah secara paralel pada mesin yang kemudian dapat diakses oleh sejumlah klien dari mana saja.

Memasang Server VNC

Untuk memasang server TigerVNC, jalankan perintah berikut sebagai root:

# dnf install tigervnc-server

Mengonfigurasi Server VNC

Mengonfigurasi koneksi VNC pertama
  1. Berkas konfigurasi bernama /etc/systemd/system/vncserver@.service diperlukan. Untuk membuat berkas ini, salin berkas /lib/systemd/system/vncserver@.service sebagai root:

    # cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service

    Tidak perlu menyertakan nomor tampilan dalam nama berkas karena systemd secara otomatis membuat instansi yang diberi nama sesuai dalam memori sesuai permintaan, mengganti '%i' dalam berkas layanan dengan nomor tampilan. Untuk satu pengguna, tidak perlu mengganti nama berkas. Untuk beberapa pengguna, berkas layanan yang bernama unik untuk setiap pengguna diperlukan, misalnya, dengan menambahkan nama pengguna ke nama berkas dalam beberapa cara. Lihat Mengonfigurasi Server VNC untuk Dua Pengguna untuk detailnya.

  2. Sunting /etc/systemd/system/vncserver@.service, ganti USER dengan nama pengguna yang sebenarnya. Biarkan baris berkas sisanya tidak dimodifikasi. Argumen -geometry menentukan ukuran desktop VNC yang akan dibuat; secara baku, ini diatur ke 1024x768.

    ExecStart=/sbin/runuser -l USER -c "/usr/bin/vncserver %i -geometry 1280x1024"
    PIDFile=/home/USER/.vnc/%H%i.pid
  3. Simpan perubahan.

  4. Untuk membuat perubahan seketika berlaku, jalankan perintah berikut:

    # systemctl daemon-reload
  5. Atur kata sandi untuk pengguna atau para pengguna yang ditentukan dalam berkas konfigurasi. Perhatikan bahwa Anda perlu beralih dari root ke USER terlebih dahulu.

    # su - USER
    $ vncpasswd
    Password:
    Verify:

    Kata sandi yang disimpan tidak dienkripsi; siapa pun yang memiliki akses ke berkas kata sandi dapat menemukan kata sandi teks polos.

Lanjutkan ke Memulai Server VNC.

Mengonfigurasi Server VNC untuk Dua Pengguna

Jika Anda ingin mengonfigurasi lebih dari satu pengguna di mesin yang sama, buat berkas layanan bertipe templat yang berbeda, satu untuk setiap pengguna.

  1. Buat dua berkas layanan, misalnya vncserver-USER_1@.service dan vncserver-USER_2@.service. Di kedua berkas ini ganti USER dengan nama pengguna yang benar.

  2. Atur kata sandi untuk kedua pengguna:

    $ su - USER_1
    $ vncpasswd
    Password:
    Verify:
    $ su - USER_2
    $ vncpasswd
    Password:
    Verify:

Memulai Server VNC

Untuk memulai atau mengaktifkan layanan, tentukan nomor tampilan langsung di perintah. Berkas yang dikonfigurasi di atas di Mengonfigurasi koneksi VNC pertama berfungsi sebagai templat, di mana %i diganti dengan nomor tampilan oleh systemd. Dengan nomor tampilan yang valid, jalankan perintah berikut:

# systemctl start vncserver@:nomor_tampilan.service

Anda juga dapat mengaktifkan layanan agar berjalan secara otomatis saat sistem mulai. Kemudian, ketika Anda masuk, vncserver secara otomatis dimulai. Sebagai root, jalankan perintah sebagai berikut:

# systemctl enable vncserver@:display_number.service

Pada titik ini, pengguna lain dapat menggunakan program penampil VNC untuk terhubung ke server VNC menggunakan nomor tampilan dan kata sandi yang ditentukan. Asalkan desktop grafis dipasang, instansi desktop itu akan ditampilkan. Ini tidak akan menjadi instansi yang sama seperti yang saat ini ditampilkan pada mesin target.

Mengonfigurasi Server VNC untuk Dua Pengguna dan Dua Tampilan Berbeda

Untuk dua server VNC yang dikonfigurasi, vncserver-USER_1@.service dan vncserver-USER_2@.service, Anda dapat mengaktifkan nomor tampilan yang berbeda. Misalnya, perintah berikut akan menyebabkan server VNC untuk USER_1 dimulai pada tampilan 3, dan server VNC untuk USER_2 untuk memulai pada tampilan 5:

# systemctl start vncserver-USER_1@:3.service
# systemctl start vncserver-USER_2@:5.service

Mengakhiri Sesi VNC

Mirip dengan mengaktifkan layanan vncserver, Anda dapat menonaktifkan menjalankan otomatis layanan saat sistem dimulai:

# systemctl disable vncserver@:display_number.service

Atau, saat sistem Anda berjalan, Anda dapat menghentikan layanan dengan menjalankan perintah berikut sebagai root:

# systemctl stop vncserver@:display_number.service

Penampil VNC

vncviewer adalah program yang menunjukkan antarmuka pengguna grafis bersama dan mengontrol server.

Untuk mengoperasikan vncviewer, ada menu pop-up yang berisi entri yang melakukan berbagai tindakan seperti beralih masuk dan keluar dari mode layar penuh atau keluar penampil. Atau, Anda dapat mengoperasikan vncviewer melalui terminal. Masukkan vncviewer -h pada baris perintah untuk melihat daftar parameter vncviewer.

Memasang Penampil VNC

Untuk memasang klien TigerVNC, vncviewer>, jalankan perintah berikut sebagai root:

# dnf install tigervnc

Menyambung ke Server VNC

Setelah server VNC dikonfigurasi, Anda dapat terhubung ke sana dari penampil VNC mana pun. Untuk melakukannya, jalankan perintah vncviewer dalam format berikut:

vncviewer address:port_number

Di mana address adalah 'IP' atau nama host.

Contoh 1. Satu Klien Terhubung ke Server VNC

Dengan alamat IP 192.168.0.4 dan nomor tampilan 3 perintah terlihat sebagai berikut:

$ vncviewer 192.168.0.4:3

Mengonfigurasi Firewall untuk VNC

Saat menggunakan koneksi non-terenkripsi, firewalld mungkin memblokir koneksi. Untuk memungkinkan firewalld meloloskan paket VNC, Anda dapat membuka port tertentu untuk lalu lintas TCP. Saat menggunakan opsi -via, lalu lintas dialihkan melalui SSH yang diaktifkan secara baku di firewalld.

Port baku server VNC adalah 5900. Untuk mencapai port di mana desktop jarak jauh akan dapat diakses, jumlahkan port baku dan nomor tampilan yang ditetapkan pengguna. Misalnya, untuk port kedua: 2 + 5900 = 5902.

Untuk tampilkn 0 hingga 3, gunakan dukungan firewalld bagi layanan VNC melalui opsi service seperti yang dijelaskan di bawah ini. Perhatikan bahwa untuk nomor tampilan yang lebih besar dari 3, port yang sesuai harus dibuka secara khusus seperti yang dijelaskan dalam Membuka Port di firewalld.

Mengaktifkan Layanan VNC di firewalld
  1. Jalankan perintah berikut untuk melihat informasi mengenai pengaturan firewalld:

    $ firewall-cmd --list-all
  2. Untuk mengizinkan semua koneksi VNC dari alamat tertentu, gunakan perintah sebagai berikut:

    # firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.122.116" service name=vnc-server accept'
    success

    Lihat Panduan Keamanan Red Hat Enterprise Linux 7 untuk informasi lebih lanjut tentang penggunaan perintah bahasa firewall yang kaya.

  3. Untuk memverifikasi pengaturan di atas, gunakan perintah sebagai berikut:

    # firewall-cmd --list-all
    public (default, active)
      interfaces: bond0 bond0.192
      sources:
      services: dhcpv6-client ssh
      ports:
      masquerade: no
      forward-ports:
      icmp-blocks:
      rich rules:
    	rule family="ipv4" source address="192.168.122.116" service name="vnc-server" accept

Untuk membuka port atau rentang port tertentu, gunakan opsi --add-port ke alat baris perintah firewall-cmd. Misalnya, layar VNC 4 memerlukan port 5904 dibuka untuk lalu lintas TCP.

Membuka Port di firewalld
  1. Untuk membuka port untuk lalu lintas TCP di zona publik, jalankan perintah sebagai root sebagai berikut:

    # firewall-cmd --zone=public --add-port=5904/tcp
    success
  2. Untuk melihat port yang saat ini terbuka untuk zona publik, jalankan perintah sebagai berikut:

    # firewall-cmd --zone=public --list-ports
    5904/tcp

Port dapat dihapus menggunakan perintah firewall-cmd --zone=zone --remove-port=number/protocol.

Untuk informasi selengkapnya tentang membuka dan menutup port di firewalld, lihat tautan:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/[Panduan Keamanan Red Hat Enterprise Linux 7].

Menghubungkan ke Server VNC Menggunakan SSH

VNC* adalah protokol jaringan teks yang polos tanpa keamanan terhadap kemungkinan serangan atas komunikasi. Untuk membuat komunikasi aman, Anda dapat mengenkripsi koneksi server-klien Anda dengan menggunakan opsi -via. Ini akan membuat terowongan SSH antara server dan klien VNC.

Format perintah untuk mengenkripsi koneksi server-klien VNC adalah sebagai berikut:

$ vncviewer -via user@host:display_number
Contoh 2. Menggunakan Opsi -via
  1. Untuk menyambungkan ke server VNC menggunakan SSH, masukkan perintah sebagai berikut:

    $ vncviewer -via USER_2@192.168.2.101:3
  2. Saat Anda diminta, ketik kata sandi, dan konfirmasi dengan menekan Enter.

  3. Jendela dengan desktop jarak jauh muncul di layar Anda.

Membatasi Akses VNC

Jika Anda lebih suka hanya koneksi terenkripsi, Anda dapat mencegah koneksi yang tidak terenkripsi sama sekali dengan menggunakan opsi -localhost di berkas systemd.service, baris ExecStart:

ExecStart=/sbin/runuser -l user -c "/usr/bin/vncserver -localhost %i"

Ini akan menghentikan vncserver dari menerima koneksi dari apa pun kecuali host lokal dan koneksi port-forwarded yang dikirim menggunakan SSH sebagai akibat dari opsi -via.

Untuk informasi selengkapnya tentang penggunaan SSH, lihat OpenSSH.

Sumber Daya Tambahan

Untuk informasi lebih lanjut tentang TigerVNC, lihat sumber daya yang tercantum di bawah ini.

Dokumentasi Terpasang
  • vncserver(1) — Halaman manual server VNC.

  • vncviewer(1) - Halaman manual penampil VNC.

  • vncpasswd(1) - Halaman manual kata sandi VNC.