GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana memulai server vnc untuk tampilan aktual (scraping) dengan TigerVNC

VNC adalah aplikasi berbagi desktop (Virtual Network Computing) untuk menghubungkan dan mengontrol desktop komputer (jarak jauh atau lokal) melalui koneksi jaringan.

Namun, pada sistem linux, banyak aplikasi server VNC hanya mengizinkan untuk terhubung ke desktop virtual dan tidak ke desktop sebenarnya. Howto ini menawarkan solusi, untuk terhubung melalui server TigerVNC ke sesi aktif yang sebenarnya di desktop Linux Anda.

Persyaratan

  • Lingkungan desktop linux yang berfungsi penuh
  • hak istimewa root (untuk menginstal server TigerVNC)
  • pengetahuan dasar tentang shell linux

Untuk mendapatkan paket terbaru, Anda mungkin ingin memperbarui.

[email protected]:~$ sudo apt-get update

Howto ini telah diuji pada Debian/GNU Linux 9.5 (stretch) dan Ubuntu 18.04

Instal TigerVNC

Pertama, Anda harus menginstal server TigerVNC.

[email protected]:~$ sudo apt-get install tigervnc-scraping-server

Perhatikan, bahwa pada sebagian besar sistem berbasis debian, ada paket kecil bernama tigervnc-scraping-server, yang perlu Anda instal. Anda tidak perlu menginstal server TigerVNC utama (nama paket:tigervnc-standalone-server) untuk memiliki fungsionalitas untuk terhubung ke sesi desktop yang sedang berjalan, hanya jika Anda lebih suka terhubung ke desktop virtual juga.

Server TigerVNC menyediakan aplikasi yang lebih kecil (x0vncserver) untuk memberikan akses ke sesi aktif.

Kemudian, buat direktori .vnc di rumah Anda:

[email protected]:~$ mkdir -p ~/.vnc

Buat kata sandi untuk sesi vnc Anda:

[email protected]:~$ vncpasswd
Sandi:
Verifikasi:
Apakah Anda ingin memasukkan sandi hanya lihat (y/n)? n

Memulai server VNC

Deskripsi singkat tentang x0vncserver:

x0tigervncserver adalah Server TigerVNC yang membuat tampilan X dapat diakses dari jarak jauh melalui VNC, TigerVNC, atau pemirsa yang kompatibel. Tidak seperti Xvnc(1), ia tidak membuat tampilan virtual. Sebagai gantinya, itu hanya berbagi server X yang ada (biasanya, yang terhubung ke layar fisik).

Sekarang Anda telah berhasil menginstal server TigerVNC di komputer Anda, membuat kata sandi dengan perintah vncpasswd, kita dapat mulai menjalankan server vnc kita. Pastikan Anda berada di sesi aktif, dan tulis (sebagai pengguna):

[email protected]:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0

Rabu 10 Okt 22:17:16 2018
Geometri:Geometri desktop disetel hingga 1920x1080+0+0
Utama:Ekstensi XTest hadir - versi 2.2
Utama:Mendengarkan pada port 5900

Opsi -passwordfile ~/.vnc/passwd membaca file kata sandi yang dibuat sebelumnya dengan vncpasswd memerintah. Opsi kedua -display :0 artinya, Anda ingin terhubung ke sesi pada tampilan :0, yang biasanya merupakan sesi aktif.

Sekarang Anda dapat mengakses desktop Anda yang sebenarnya dengan aplikasi penampil vnc apa pun pada port vnc default 5900.

Anda dapat menghentikan proses ini kapan pun Anda mau dengan menekan Ctrl-c.

Jika Anda ingin menjalankannya di latar belakang, ketik:

[email protected]:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0>/dev/null 2>&1 &

Sekarang semua keluaran standar keluaran dan kesalahan dialihkan ke /dev/null dan dengan &di akhir, itu akan berjalan di latar belakang. Namun, Anda tidak akan dapat lagi menghentikan server vnc dengan menekan Ctrl-c, sebaliknya Anda harus mematikan id prosesnya (lihat di bawah bagian "Menghentikan server vnc").

Untuk opsi dan sintaks lainnya, periksa manual x0vncserver.

Menghentikan server VNC

Jika server vnc Anda berjalan di latar belakang, Anda harus mengetahui id prosesnya, untuk menghentikannya.

[email protected]:~$ ps -fu user | grep [x]0vncserver
pengguna    1328    1   0 23:11 pts/2    00:00:00    /usr/bin/x0vncserver -display :0 -passwordfile /home/user/.vnc/passwd -rfbport 5900

Outputnya akan seperti ini, jadi perhatikan pid 1328. Untuk menghentikan server vnc, kita harus "membunuh" proses ini.

[email protected]:~$ kill -9 1328

Opsi -9 untuk perintah kill akan mengirimkan sinyal KILL ke id proses untuk memastikannya berhenti.

Script untuk menjalankan server VNC

Ada skrip untuk memulai dan menghentikan aplikasi x0vncserver di github. Untuk tujuan pengujian, Anda juga mengunduh paket psmisc:

[email protected]:~$ sudo apt-get install git psmisc

Kemudian, unduh skrip startvnc menggunakan perintah git:

[dilindungi email]:~$ git clone https://github.com/sebestyenistvan/runvncserver
Kloning ke 'runvncserver'...
jarak jauh:Menghitung objek:77, selesai.
jarak jauh:Menghitung objek:100% (77/77), selesai.
jarak jauh:Mengompresi objek:100% (57/57), selesai.
jarak jauh:Total 77 (delta 25), digunakan kembali 60 (delta 18), pack-reused 0
Membongkar objek:100% (77/77), selesai.

Output Anda akan terlihat seperti di atas.

Salin skrip startvnc dari direktori runvncserver ke rumah Anda:

[email protected]:~$ cp ~/runvncserver/startvnc ~

Ubah izin menjadi executable, untuk menjalankan skrip:

[dilindungi email]:~$ chmod +x ~/startvnc

Kemudian, jalankan skrip.

[email protected]:~$ ./startvnc

Penggunaan:./startvnc start|stop|restart|status

Skrip ini hanya akan berfungsi, jika Anda memiliki direktori .vnc di rumah Anda dan membuat vncpasswd (ia memeriksa file ~/.vnc/passwd). Kami telah membuat direktori .vnc dan kata sandi sebelumnya.

Untuk memulai server vnc pada tampilan sebenarnya, cukup ketik:

[email protected]:~$ ./startvnc start
Memulai Server VNC di layar :0 [ok]

Anda dapat menguji, apakah server vnc Anda berjalan dengan opsi:

[email protected]:~$ ./startvnc status
Status server VNC:[running] (pid:1328)

Beberapa contoh:

Atau dengan memeriksa port TCP 5900 pada sistem Anda dengan perintah fuser (dari paket psmisc):

[email protected]:~$ fuser -vn tcp 5900
                  PENGGUNA      PID     AKSES      COMMAND
5900/tcp:            Anda akan mendapatkan output seperti ini jika server vnc berjalan pada port 5900.

Petunjuk lebih lanjut untuk skrip ini dapat Anda temukan di file readme:

[dilindungi email]:~$ kurang runvncserver/README.md

Script akan membuat file log, tempat output disimpan. Jika terjadi kesalahan atau Anda tidak dapat memulai atau menghentikan x0vncserver, lihat file log di bawah ~/.vnc/logfile

Mulai server VNC secara otomatis

Jika Anda ingin mengakses sesi desktop aktif secara otomatis, Anda perlu mengedit file .xsessionrc di direktori home Anda.

[email protected]:~$ echo "/home/user/startvnc start>/dev/null 2>&1">> ~/.xsessionrc

Ganti pengguna dengan nama pengguna Anda dan itu akan berjalan secara otomatis saat memulai sesi X. Script mencatat aktivitasnya di ~/.vnc/logfile, jika terjadi kesalahan, Anda dapat memeriksa file log di sana.

Catatan

Tutorial ini tidak membahas pengaturan desktop virtual VNC.

Keamanan

Ketahuilah, bahwa x0vncserver tidak menggunakan enkripsi secara default, jadi gunakan dengan hati-hati melalui internet. Jika Anda ingin menggunakannya dari jarak jauh, Anda dapat melakukan tunnel melalui ssh. Namun, ada cara lain di mana Anda dapat menemukan solusi untuk mengenkripsi sesi VNC Anda.

Atau Anda dapat melihat paket ssvnc.

Pemirsa VNC

Jika Anda mencari pemirsa VNC, ada banyak, misalnya:

  • gvncviewer
  • tigervnc-viewer
  • xtightvncviewer
  • xvnc4viewer

Geometri

Server x0vnc pada tampilan sebenarnya akan menggunakan geometri yang sama dengan desktop yang berjalan pada tampilan :0. Jadi jika Anda mengatur opsi -geometry ke ukuran yang lebih rendah, itu tidak akan diskalakan, Anda hanya akan melihat sebagian kecil dari ukuran desktop.

Umpan Balik

Jangan ragu untuk menulis umpan balik. Jika Anda menguji tutorial ini atau bahkan skrip di sistem lain.


Linux
  1. Bagaimana Memulai Server Vnc Saat Boot?

  2. Bagaimana Cara Memperbaiki "A Start Job Is Running For The Raise Network" Di Ubuntu Server 16.0 Lts?

  3. CentOS / RHEL 6:Cara memaksa sinkronisasi NTP dengan server NTP

  1. Bagaimana cara menjalankan server web Golang saya di latar belakang?

  2. tr perintah - cara mengganti string \n dengan baris baru yang sebenarnya (\n)

  3. Bagaimana cara mengubah direktori di Git Bash dengan Git untuk Windows?

  1. Bagaimana Cara Mengetahui Apa Itu Domain Untuk Menghubungkan Dengan Samba?

  2. Bagaimana cara menentukan file kunci untuk sshfs?

  3. Bagaimana cara menginstal PhantomJS untuk digunakan dengan Python Selenium di Raspberry Pi?