One place for hosting & domains

      Cara Menginstal dan Mengonfigurasi VNC pada Ubuntu 20.04


      Pengantar

      Virtual Network Computing, atau VNC, adalah sistem koneksi yang memungkinkan Anda untuk menggunakan kibor dan tetikus untuk berinteraksi dengan lingkungan desktop grafis pada server jauh. VNC memudahkan pengelolaan berkas, perangkat lunak, dan pengaturan pada server jauh bagi pengguna yang belum terbiasa dengan baris perintah.

      Dalam panduan ini, Anda akan menyiapkan server VNC dengan TightVNC pada server Ubuntu 20.04 dan menghubungkannya dengan aman melalui terowongan SSH. Kemudian, Anda akan menggunakan program klien VNC pada mesin lokal Anda untuk berinteraksi dengan server Anda melalui lingkungan desktop grafis.

      Prasyarat

      Untuk menyelesaikan tutorial ini, Anda membutuhkan:

      • Satu server Ubuntu 20.04 dengan pengguna administratif non-root dan sebuah firewall yang dikonfigurasi dengan UFW. Untuk menyiapkan ini, ikuti panduan penyiapan server awal untuk Ubuntu 20.04 dari kami.
      • Komputer lokal yang sudah terinstal dengan klien VNC. Klien VNC yang Anda gunakan harus mendukung koneksi melalui terowongan SSH:
        • Pada Windows, Anda dapat menggunakan TightVNC, RealVNC, atau UltraVNC.
        • Pada macOS, Anda dapat menggunakan program Screen Sharing bawaan, atau aplikasi lintas platform seperti RealVNC.
        • Pada Linux, Anda dapat memilih dari berbagai pilihan, termasuk vinagre, krdc, RealVNC, atau TightVNC.

      Langkah 1 — Menginstal Lingkungan Desktop dan Server VNC

      Secara asali, server Ubuntu 20.04 tidak dilengkapi dengan lingkungan desktop grafis atau server VNC yang sudah terinstal, sehingga Anda akan mulai dengan menginstalnya.

      Anda memiliki banyak pilihan terkait server VNC dan lingkungan desktop yang dapat Anda pilih. Dalam tutorial ini, Anda akan menginstal paket untuk lingkungan desktop Xfce terbaru dan paket TightVNC yang tersedia dari repositori Ubuntu resmi. Baik Xfce dan TightVNC dikenal ringan dan cepat, yang akan membantu memastikan bahwa koneksi VNC akan berjalan lancar dan stabil bahkan saat koneksi internet lambat.

      Setelah menghubungkan ke server Anda dengan SSH, perbarui daftar paket Anda:

      Sekarang, instal Xfce beserta dengan paket xfce4-goodies, yang berisi beberapa peningkatan untuk lingkungan desktop:

      • sudo apt install xfce4 xfce4-goodies

      Selama instalasi, Anda mungkin diminta untuk memilih manajer tampilan asali untuk Xfce. Manajer tampilan adalah program yang memungkinkan Anda untuk memilih dan log masuk ke lingkungan desktop melalui antarmuka grafis. Anda hanya akan menggunakan Xfce ketika Anda terhubung dengan klien VNC, dan dalam sesi Xfce ini, Anda sudah log masuk sebagai pengguna Ubuntu non-root. Jadi, terkait tujuan tutorial ini, pilihan manajer tampilan Anda tidak akan berpengaruh. Pilih salah satu dan tekan ENTER.

      Setelah instalasi selesai, instal server TightVNC:

      • sudo apt install tightvncserver

      Selanjutnya, jalankan perintah vncserver untuk mengatur kata sandi akses VNC, menciptakan berkas konfigurasi awal, dan memulai instans server VNC:

      Anda akan diminta untuk memasukkan dan melakukan verifikasi kata sandi untuk mengakses mesin Anda dari jarak jauh:

      Output

      You will require a password to access your desktops. Password: Verify:

      Kata sandi harus terdiri dari antara enam dan delapan karakter. Kata sandi yang terdiri dari lebih dari 8 karakter akan otomatis terpotong.

      Setelah Anda melakukan verifikasi kata sandi, Anda akan memiliki opsi untuk menciptakan kata sandi hanya-lihat. Pengguna yang log masuk dengan kata sandi hanya-lihat tidak akan bisa mengendalikan instans VNC dengan tetikus atau kibor mereka. Ini adalah opsi yang berguna jika Anda ingin menunjukkan sesuatu kepada orang lain yang menggunakan server VNC Anda, tetapi hal ini tidak diwajibkan.

      Proses ini kemudian menciptakan berkas konfigurasi asali dan informasi koneksi yang diperlukan untuk server. Selain itu, proses ini meluncurkan instans server asali pada porta 5901. Porta ini disebut porta tampilan, dan oleh VNC dirujuk sebagai :1. VNC dapat meluncurkan beberapa instans pada porta tampilan lain, dengan :2 yang merujuk ke porta 5902, :3 yang merujuk ke 5903, dan seterusnya:

      Output

      Would you like to enter a view-only password (y/n)? n xauth: file /home/sammy/.Xauthority does not exist New 'X' desktop is your_hostname:1 Creating default startup script /home/sammy/.vnc/xstartup Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      Perhatikan bahwa jika Anda ingin mengubah kata sandi Anda atau menambahkan kata sandi hanya-lihat, Anda dapat melakukannya dengan perintah vncpasswd:

      Di titik ini, server VNC sudah terinstal dan berjalan. Sekarang, mari kita mengonfigurasinya untuk menjalankan Xfce dan memberikan kita akses ke server melalui antarmuka grafis.

      Langkah 2 — Mengonfigurasi Server VNC

      Server VNC perlu mengetahui perintah mana yang harus dilaksanakan saat server memulai. Khususnya, VNC perlu mengetahui ke lingkungan desktop grafis mana server ini harus terhubung.

      Perintah yang dijalankan server VNC saat memulai terletak di dalam berkas konfigurasi yang disebut xstartup di dalam folder .vnc di bawah direktori rumah. Skrip pemulaian diciptakan saat Anda menjalankan perintah vncserver dalam langkah sebelumnya, tetapi Anda akan menciptakan skrip Anda sendiri untuk meluncurkan desktop Xfce.

      Karena Anda akan mengubah bagaimana server VNC dikonfigurasi, pertama-tama hentikan instans server VNC yang berjalan pada porta 5901 dengan perintah berikut:

      Keluarannya akan terlihat seperti ini, meskipun Anda akan melihat PID yang berbeda:

      Output

      Killing Xtightvnc process ID 17648

      Sebelum Anda memodifikasi berkas xstartup, buat cadangan berkas aslinya:

      • mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

      Sekarang, ciptakan berkas xstartup yang baru dan buka berkas itu dalam editor teks, seperti nano:

      Kemudian, tambahkan baris berikut pada berkas tersebut:

      ~/.vnc/xstartup

      #!/bin/bash
      xrdb $HOME/.Xresources
      startxfce4 &
      

      Baris pertama adalah shebang. Dalam berkas teks biasa yang dapat dijalankan pada platform *nix, shebang memberi tahu sistem ke penafsir mana berkas tersebut harus diberikan untuk dijalankan. Dalam kasus ini, Anda memberikan berkas itu ke penafsir Bash. Ini akan memungkinkan setiap baris suksesi dapat dilaksanakan sebagai perintah, secara berurutan.

      Perintah pertama dalam berkas, xrdb $HOME/.Xresources, menyuruh kerangka kerja GUI VNC untuk membaca berkas .Xresources milik pengguna server . Xresources adalah tempat di mana pengguna dapat melakukan perubahan terhadap pengaturan tertentu pada desktop grafis, seperti warna terminal, tema kursor, dan perenderan font. Perintah kedua menyuruh server untuk menjalankan Xfce. Setiap kali Anda memulai atau memulai ulang server VNC, perintah ini akan dilaksanakan secara otomatis.

      Simpan dan tutup berkas setelah menambahkan baris-baris ini. Jika Anda menggunakan nano, lakukan dengan menekan CTRL + X, Y, kemudian ENTER.

      Untuk memastikan server VNC dapat menggunakan berkas pemulaian awal yang baru ini dengan benar, Anda perlu membuatnya bisa dijalankan:

      Kemudian, hidupkan ulang server VNC:

      Perhatikan bahwa kali ini, perintah meliputi opsi -localhost, yang mengikat server VNC ke antarmuka loopback server Anda. Ini akan menyebabkan VNC hanya mengizinkan koneksi yang berasal dari server di mana VNC terinstal.

      Di langkah selanjutnya, Anda akan membangun terowongan SSH antara mesin lokal Anda dan server Anda, yang pada dasarnya memperdaya VNC agar berpikir bahwa koneksi dari mesin lokal Anda berasal dari server Anda. Strategi ini akan menambahkan lapisan keamanan tambahan di sekitar VNC, karena satu-satunya pengguna yang dapat mengaksesnya adalah pengguna yang telah memiliki akses SSH ke server Anda.

      Anda akan melihat keluaran yang serupa dengan ini:

      Output

      New 'X' desktop is your_hostname:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      Dengan konfigurasi yang ada, Anda siap terhubung ke server VNC dari mesin lokal Anda.

      Langkah 3 — Terhubung ke Desktop VNC dengan Aman

      VNC sendiri tidak menggunakan protokol yang aman saat membuat koneksi. Untuk terhubung dengan aman ke server, Anda akan membangun terowongan SSH dan kemudian menyuruh klien VNC Anda untuk terhubung dengan menggunakan terowongan itu alih-alih membuat koneksi langsung.

      Buat koneksi SSH pada komputer lokal Anda yang secara aman meneruskan ke koneksi localhost untuk VNC. Anda dapat melakukan ini melalui terminal pada Linux atau macOS dengan perintah ssh berikut:

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      Berikut ini makna opsi perintah ssh ini:

      • -L 59000:localhost:5901: Switch -L menetapkan bahwa porta yang ditentukan pada komputer lokal (59000) adalah untuk diteruskan ke hos yang ditentukan dan porta pada server tujuan (localhost:5901, yang berarti porta 5901 pada server tujuan, yang didefinisikan sebagai your_server_ip). Perhatikan bahwa porta lokal yang Anda tentukan bersifat arbitrer, yang berarti sejauh porta itu belum terikat ke layanan lain, Anda dapat menggunakannya sebagai porta penerus untuk terowongan Anda.
      • -C: Bendera ini mengaktifkan kompresi yang dapat membantu meminimalkan konsumsi sumber daya dan mempercepat semuanya.
      • -N: Opsi ini memberi tahu ssh bahwa Anda tidak ingin melaksanakan perintah jarak jauh apa pun. Pengaturan ini berguna saat Anda hanya ingin meneruskan porta.
      • -l sammy your_server_ip: Switch -l memungkinkan Anda untuk menentukan pengguna yang Anda inginkan untuk log masuk setelah Anda terhubung ke server. Pastikan untuk mengganti sammy dan your_server_ip dengan nama pengguna non-root dan alamat IP server Anda.

      Catatan: Perintah ini membangun terowongan SSH yang meneruskan informasi dari porta 5901 pada server VNC Anda ke porta 59000 pada mesin lokal Anda melalui porta 22 pada masing-masing mesin, porta asali untuk SSH. Dengan asumsi Anda telah mengikuti prasyarat panduan Penyiapan Server Awal untuk Ubuntu 20.04, Anda telah menambahkan aturan UFW untuk mengizinkan koneksi ke server Anda melalui OpenSSH.

      Ini lebih aman daripada hanya membuka firewall server Anda untuk mengizinkan koneksi ke porta 5901, karena itu akan mengizinkan siapa pun mengakses server Anda melalui VNC. Dengan terhubung melalui terowongan SSH, Anda membatasi akses VNC ke mesin-mesin yang sudah memiliki akses SSH ke server.

      Jika Anda menggunakan PuTTY untuk terhubung ke server Anda, Anda dapat menciptakan terowongan SSH dengan mengeklik kanan pada bilah atas jendela terminal, dan kemudian mengeklik opsi** Change Settings…**:

      Klik kanan pada bilah atas untuk membuka opsi Change Settings

      Temukan cabang Connection dalam menu pohon di sebelah kiri jendela PuTTY Reconfiguration. Perluas cabang SSH dan klik Tunnels. Pada layar Options controlling SSH port forwarding, masukkan 59000 sebagai Source Port dan localhost:5901 sebagai Destination, seperti ini:

      Contoh konfigurasi terowongan SSH PuTTY

      Kemudian, klik tombol Add, lalu tombol Apply untuk menerapkan terowongan.

      Setelah terowongan berjalan, gunakan klien VNC untuk terhubung ke localhost:59000. Anda akan diminta untuk mengautentikasi dengan menggunakan kata sandi yang Anda atur pada Langkah 1.

      Setelah terhubung, Anda akan melihat desktop Xfce asali. Itu akan terlihat seperti ini:

      Koneksi VNC ke server Ubuntu 20.04 dengan lingkungan desktop Xfce

      Anda dapat mengakses berkas-berkas di direktori rumah Anda dengan manajer berkas atau dari baris perintah, seperti yang terlihat di sini:

      Manajer Berkas melalui koneksi VNC ke Ubuntu 20.04

      Tekan CTRL+C pada terminal lokal Anda untuk menghentikan terowongan SSH dan kembali ke prompt Anda. Ini akan memutus sesi VNC Anda juga.

      Sekarang, Anda dapat mengonfigurasi server VNC untuk berjalan sebagai layanan systemd.

      Langkah 4 — Menjalankan VNC sebagai Layanan Sistem

      Dengan menyiapkan server VNC untuk berjalan sebagai layanan systemd, Anda dapat memulai, menghentikan, dan memulai ulang jika membutuhkannya, seperti layanan lainnya. Anda juga dapat menggunakan perintah manajemen systemd untuk memastikan bahwa VNC memulai saat server Anda melakukan boot.

      Pertama-tama, ciptakan berkas unit baru yang disebut /etc/systemd/system/[email protected]:

      Simbol @ pada akhir nama akan mengizinkan kita memasukkan argumen yang Anda dapat gunakan dalam konfigurasi layanan. Anda akan menggunakan ini untuk menentukan porta tampilan VNC yang Anda ingin gunakan saat Anda mengelola layanan.

      Tambahkan baris-baris berikut pada berkas. Pastikan untuk mengubah nilai User, Group, WorkingDirectory, dan nama pengguna dalam nilai PIDFILE yang sesuai dengan nama pengguna Anda:

      /etc/systemd/system/[email protected]

      [Unit]
      Description=Start TightVNC server at startup
      After=syslog.target network.target
      
      [Service]
      Type=forking
      User=sammy
      Group=sammy
      WorkingDirectory=/home/sammy
      
      PIDFile=/home/sammy/.vnc/%H:%i.pid
      ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
      ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
      ExecStop=/usr/bin/vncserver -kill :%i
      
      [Install]
      WantedBy=multi-user.target
      

      Perintah ExecStartPre menghentikan VNC jika VNC sudah berjalan. Perintah ExecStart memulai VNC dan mengatur kedalaman warna ke warna 24-bita dengan resolusi 1280×800. Anda dapat memodifikasi opsi pemulaian ini sesuai kebutuhan Anda. Juga, perhatikan bahwa perintah ExecStart meliputi opsi -localhost lagi.

      Simpan dan tutup berkas.

      Selanjutnya, buat sistem menyadari kehadiran berkas unit yang baru:

      • sudo systemctl daemon-reload

      Aktifkan berkas unit:

      Angka 1 yang mengikuti tanda @ menandakan di nomor tampilan mana layanan akan muncul, yang dalam kasus ini adalah di nomor asali :1 seperti yang dibahas dalam Langkah 2.

      Hentikan instans server VNC saat ini jika masih berjalan:

      Kemudian, jalankan sebagaimana Anda ingin memulai layanan systemd lainnya:

      • sudo systemctl start vncserver@1

      Anda dapat memverifikasi bahwa VNC telah memulai dengan perintah ini:

      • sudo systemctl status vncserver@1

      Jika VNC memulai dengan benar, keluarannya akan terlihat seperti ini:

      Output

      [email protected] - Start TightVNC server at startup Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-07 17:23:50 UTC; 6s ago Process: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Process: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS) Main PID: 39795 (Xtightvnc) ...

      Server VNC Anda sekarang siap digunakan kapan pun server Anda melakukan boot, dan Anda dapat mengelolanya dengan perintah systemctl seperti layanan systemd lainnya.

      Namun, tidak akan ada perbedaan di sisi klien. Untuk menghubungkan ulang, mulai terowongan SSH Anda kembali.

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      Lalu buat koneksi baru menggunakan perangkat lunak klien VNC ke localhost:59000 untuk terhubung ke server Anda.

      Kesimpulan

      Anda sekarang memiliki server VNC yang aman dan berfungsi pada server Ubuntu 20.04. Kini Anda dapat mengelola berkas, perangkat lunak, dan pengaturan Anda dengan antarmuka grafis yang ramah pengguna, dan Anda akan dapat menjalankan perangkat lunak grafis seperti peramban web dari jarak jauh.



      Source link

      So installieren und konfigurieren Sie VNC unter Ubuntu 20.04 [Quickstart]


      Einführung

      Virtual Network Computing oder VNC ist ein Verbindungssystem, das es Ihnen ermöglicht, die Tastatur und die Maus zur Interaktion mit einer grafischen Desktop-Umgebung auf einem entfernten Server zu verwenden. Es vereinfacht die Verwaltung von Dateien, Software und Einstellungen auf einem entfernten Server für Benutzer, die mit der Befehlszeile noch nicht so versiert sind.

      In dieser Kurzanleitung erfahren Sie, wie Sie einen VNC-Server mit TightVNC auf einem Ubuntu 20.04-Server einrichten und ihn sicher über einen SSH-Tunnel verbinden. Anschließend verwenden Sie ein VNC-Clientprogramm auf Ihrem lokalen Computer, um mit Ihrem Server über eine grafische Desktop-Umgebung zu interagieren.

      Voraussetzungen

      Um dieses Tutorial zu absolvieren, benötigen Sie:

      • Einen Ubuntu 20.04-Server mit einem administrativen non-root user und eine mit UFW konfigurierte Firewall. Um dies einzurichten, folgen Sie unserem Leitfaden für die Ersteinrichtung des Servers für Ubuntu 18.04.
      • Einen lokalen Computer mit einem installierten VNC-Client. Der VNC-Client, den Sie verwenden, muss Verbindungen über SSH-Tunnel unterstützen:

      Schritt 1 — Installation der Desktop-Umgebung und des VNC-Servers

      Nachdem Ihr Server mit SSH verbunden ist, aktualisieren Sie Ihre Paketliste:

      Installieren Sie dann Xfce zusammen mit dem xfce4-goodies-Paket, das einige Verbesserungen für die Desktop-Umgebung enthält:

      • sudo apt install xfce4 xfce4-goodies

      Wenn diese Installation abgeschlossen ist, installieren Sie den TightVNC Server:

      • sudo apt install tightvncserver

      Führen Sie als Nächstes den Befehl vncpasswd aus, um ein Zugangspasswort für VNC festzulegen, und erstellen Sie die Dateien für die Anfangskonfiguration:

      Sie werden dazu aufgefordert, ein Passwort einzugeben und zu verifizieren, um remote auf Ihren Rechner zuzugreifen:

      Output

      You will require a password to access your desktops. Password: Verify:

      Das Passwort muss aus sechs bis acht Zeichen bestehen; Passwörter mit mehr als 8 Zeichen werden automatisch gekürzt. Wenn Sie das Passwort überprüfen, haben Sie die Option, ein Passwort für den reinen Lesezugriff zu erstellen. Dies ist jedoch nicht zwingend erforderlich.

      Wenn Sie Ihr Passwort ändern möchten oder ein Passwort für den reinen Lesezugriff hinzufügen möchten, führen Sie den Befehl vncpasswd erneut aus.

      Schritt 2 — Konfiguration des VNC-Servers

      Die Befehle, die der VNC-Server beim Starten ausführt, befinden sich in einer Konfigurationsdatei namens xstartup im Ordner .vnc unter Ihrem Stammverzeichnis. In diesem Schritt erstellen wir ein benutzerdefiniertes xstartup-Skript, das den VNC-Server anweist, sich mit dem Xfce-Desktop zu verbinden.

      Erstellen Sie eine neue xstartup-Datei und öffnen Sie sie in einem Texteditor wie nano:

      Fügen Sie der neuen Datei folgende Zeilen hinzu:

      ~/.vnc/xstartup

      #!/bin/bash
      xrdb $HOME/.Xresources
      startxfce4 &
      

      Hinter dem sheband weist der erste Befehl in der Datei xrdb $HOME/.Xresources das GUI Framework des VNC an, die .Xresources-Datei des Serverbenutzers zu lesen. Der zweite Befehl weist den Server an, Xfce zu starten.

      Speichern und schließen Sie die Datei nach dem Hinzufügen dieser Zeilen. Wenn Sie nano verwendet haben, drücken Sie STRG+X, Y, dann die EINGABETASTE.

      Machen Sie die Datei anschließend ausführbar:

      Und starten Sie den VNC-Server mit dem Befehl vncserver:

      Dieser Befehl beinhaltet die Option -localhost, die den VNC-Server an die Loopback-Schnittstelle Ihres Servers bindet. Dadurch kann VNC nur Verbindungen zulassen, die von dem Server stammen, auf dem es installiert ist.

      Sie sehen eine Ausgabe, die dieser ähnelt:

      Output

      New 'X' desktop is your_hostname:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      Hier können Sie sehen, dass der Befehl eine standardmäßige Serverinstanz auf Port 5901 startet. Dieser Port wird als Anzeige-Port bezeichnet und wird vom VCN :1 genannt.

      Schritt 3 — Sichere Verbindung mit dem VNC-Desktop

      Um sich sicher mit Ihrem Server zu verbinden, richten Sie einen SSH-Tunnel ein und weisen Ihren VNC-Client an, diesen Tunnel zu verwenden, anstatt eine direkte Verbindung herzustellen.

      Erstellen Sie auf Ihrem lokalen Computer eine SSH-Verbindung, die sicher an die localhost-Verbindung für VNC weiterleitet. Sie können dies mit folgendem ssh-Befehl über den Terminal auf Linux oder macOS durchführen:

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      Der lokale Port kann jeder Port sein, der von einem anderen Programm oder Prozess nicht bereits blockiert wurde. Wir verwenden in diesem Beispiel jedoch 59000. Stellen Sie zudem sicher, sammy in Ihren Ubuntu-Benutzernamen und your_server_ip der IP-Adresse Ihres Servers entsprechend zu ändern.

      Wenn Sie PuTTY verwenden, um sich mit Ihrem Server zu verbinden, können Sie einen SSH-Tunnel erstellen, indem Sie mit der rechten Maustaste auf die obere Leiste des Terminalfensters und anschließend auf die Option Change Setting… (Einstellungen ändern) klicken:

      Klicken Sie mit der rechten Maustaste auf die oberen Leiste, um die Option Change Settings (Einstellungen ändern) einzublenden

      Suchen Sie den Verbindungszweig im Menübaum auf der linken Seite des Fensters PuTTY Reconfigure (PuTTY neu konfigurieren). Erweitern Sie den SSH-Zweig und klicken Sie auf Tunnels. Geben Sie auf dem Bildschirm Options controlling SSH port forwarding (Optionen für die Steuerung der SSH-Portweiterleitung) 59000 als Quell-Port und localhost:5901 als Destination an (wie in diesem Fall):

      Beispiel PuTTY SSH-Tunnelkonfiguration

      Klicken Sie anschließend auf die Schaltfläche Add (Hinzufügen) und danach auf die Schaltfläche Apply (Anwenden), um den Tunnel zu implementieren.

      Sobald der Tunnel läuft, verwenden Sie einen VCN Client, um sich mit localhost:59000 zu verbinden. Sie werden aufgefordert, sich mit dem in Schritt 1 eingestellten Passwort zu authentifizieren.

      Sobald die Verbindung steht, sehen Sie den Xfce Standard-Desktop. Sie sollte ungefähr wie folgt aussehen:

      VNC-Verbindung zum Ubuntu 20.04-Server mit der Xfce-Desktop-Umgebung

      Sie können mit dem Dateimanager auf Dateien in Ihrem Stammverzeichnis zugreifen oder von der Befehlszeile aus, wie nachstehend zu sehen ist:

      File Manager über VNC-Verbindung zu Ubuntu 20.04

      Drücken Sie STRG+C auf Ihrem lokalen Terminal, um den SSH-Tunnel zu stoppen und zu Ihrer Aufforderung zurückzukehren. Damit wird auch Ihre VNC Sitzung unterbrochen.

      Schritt 4 — VCN als Systemdienst ausführen

      Dadurch, dass der VNC-Server so eingerichtet wurde, dass er als systemd-Dienst ausgeführt wird, können Sie die systemd-Verwaltungsbefehle Start, Stop und Restart the server (Starten, Anhalten und Neustarten des Servers) nutzen. Zudem können Sie ihn so einstellen, dass er immer dann startet, wenn der Server hochgefahren wird.

      Erstellen Sie zunächst für die systemd-Einheit eine neue Datei namens /etc/system/[email protected]:

      Das @-Symbol am Ende des Namens gestattet uns, ein Argument aufzunehmen, das Sie in der Dienstkonfiguration verwenden können. Sie verwenden dies, um den VCN-Anzeige-Port anzugeben, den Sie bei der Dienstverwaltung einsetzen möchten.

      Fügen Sie der Datei folgende Zeilen hinzu und stellen Sie sicher, dass der Wert für User, Group und WorkingDirectory geändert wird und der Benutzername im Wert von PIDFILE Ihrem Benutzernamen entspricht:

      /etc/systemd/system/[email protected]

      [Unit]
      Description=Start TightVNC server at startup
      After=syslog.target network.target
      
      [Service]
      Type=forking
      User=sammy
      Group=sammy
      WorkingDirectory=/home/sammy
      
      PIDFile=/home/sammy/.vnc/%H:%i.pid
      ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
      ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
      ExecStop=/usr/bin/vncserver -kill :%i
      
      [Install]
      WantedBy=multi-user.target
      

      Speichern und schließen Sie die Datei.

      Machen Sie als Nächstes das System auf die neue Unit-Datei aufmerksam:

      • sudo systemctl daemon-reload

      Aktivieren Sie die Unit-Datei:

      Die 1 nach dem @-Zeichen gibt an, über welcher Anzeigenummer der Dienst angezeigt werden soll; in diesem Fall ist der Standard :1, wie wir bereits in Schritt 2 besprochen haben.

      Stoppen Sie die aktuelle Instanz des VNC-Servers, wenn er noch läuft:

      Starten Sie ihn dann wie jeden anderen systemd-Dienst:

      • sudo systemctl start vncserver@1

      Sie können verifizieren, dass er mit diesem Befehl gestartet wurde:

      • sudo systemctl status vncserver@1

      In unserem Tutorial How To Use Systemctl to Manage Systemd Services and Units (So nutzen Sie Systemctl für die Verwaltung von Systemd-Diensten und -Units) finden Sie für weitere Informationen zu systemctl.

      Um Ihren SSH-Tunnel erneut zu verbinden, starten Sie ihn erneut:

      • ssh -L 59000:127.0.0.1:5901 -C -N -l sammy your_server_ip

      Stellen Sie dann mit Ihrer VCN-Client-Software eine neue Verbindung zum localhost:59000 her, um sich mit Ihrem Server zu verbinden.

      Zusammenfassung

      Jetzt läuft ein sicherer VCN Server auf Ihrem Ubuntu 20.04 Server. Jetzt können Sie Ihre Dateien, Software und Einstellungen mit einer benutzerfreundlichen grafischen Oberfläche verwalten und grafische Software wie Web-Browser per Fernzugriff ausführen.



      Source link

      So installieren und konfigurieren Sie VNC unter Ubuntu 20.04


      Einführung

      Virtual Network Computing, auch VNC genannt, ist ein Verbindungssystem, das es Ihnen ermöglicht, mithilfe Ihrer Maus und Tastatur mit einer grafischen Desktop-Umgebung auf einem entfernten Server zu interagieren. Es vereinfacht die Verwaltung von Dateien, Software und Einstellungen auf einem entfernten Server für Benutzer, die mit der Befehlszeile noch nicht so versiert sind.

      In dieser Kurzanleitung erfahren Sie, wie Sie einen VNC-Server mit TightVNC auf einem Ubuntu 20.04-Server einrichten und ihn sicher über einen SSH-Tunnel verbinden. Anschließend verwenden Sie ein VNC-Clientprogramm auf Ihrem lokalen Computer, um mit Ihrem Server über eine grafische Desktop-Umgebung zu interagieren.

      Voraussetzungen

      Um dieses Tutorial zu absolvieren, benötigen Sie:

      • Einen Ubuntu 20.04-Server mit einem administrativen Nicht-Root-Benutzer und eine mit UFW konfigurierte Firewall. Um dies einzurichten, folgen Sie unserem Leitfaden für die Ersteinrichtung des Servers für Ubuntu 20.04.
      • Einen lokalen Computer mit einem installierten VNC-Client. Der VNC-Client, den Sie verwenden, muss Verbindungen über SSH-Tunnel unterstützen:

      Schritt 1 — Installation der Desktop-Umgebung und des VNC-Servers

      Standardmäßig wird ein Ubuntu 20.04 Server nicht mit einer grafischen Desktop-Umgebung oder einem installierten VNC-Server geliefert. Daher beginnen Sie mit deren Installation.

      Bei der Wahl des VNC-Servers und der Desktop-Umgebung haben Sie viele Optionen, aus denen Sie auswählen können. In diesem Tutorial installieren Sie Pakete für die aktuellste Xfce-Desktop-Umgebung und das TightVNC-Paket, das im offiziellen Ubuntu Repository verfügbar ist. Sowohl Xfce als auch TightVNC sind für ihre leichte und schnelle Ausführung bekannt. Dadurch wird sichergestellt, dass die VNC-Verbindung reibungslos funktioniert und auch bei langsameren Internetverbindungen stabil bleibt.

      Sobald Ihr Server mit SSH verbunden ist, aktualisieren Sie Ihre Paketliste:

      Installieren Sie nun Xfce zusammen mit dem xfce4-goodies-Paket, das einige Verbesserungen für die Desktop-Umgebung enthält:

      • sudo apt install xfce4 xfce4-goodies

      Während der Installation werden Sie möglicherweise dazu aufgefordert, einen standardmäßigen Display-Manager für Xfce auszuwählen. Ein Display-Manager ist ein Programm, mit dem Sie sich über eine grafische Oberfläche in einer Desktop-Umgebung einloggen und Vorgaben auswählen können. Sie verwenden Xfce nur, wenn Sie sich mit einem VNC-Client verbinden. In diesen Xfce-Sitzungen sind Sie bereits als Nicht-Root-Benutzer für Ubuntu angemeldet. Für die Zwecke dieses Tutorials ist Ihre Auswahl des Display-Managers nicht relevant. Wählen Sie entweder einen aus oder drücken Sie ENTER.

      Wenn diese Installation abgeschlossen ist, installieren Sie den TightVNC Server:

      • sudo apt install tightvncserver

      Führen Sie als Nächstes den Befehl vncserver aus, um ein VNC-Zugangspasswort festzulegen, die anfänglichen Konfigurationsdateien zu erstellen und eine VNC-Serverinstanz zu starten:

      Sie werden dazu aufgefordert, ein Passwort einzugeben und zu verifizieren, um ferngesteuert auf Ihren Rechner zuzugreifen:

      Output

      You will require a password to access your desktops. Password: Verify:

      Das Passwort muss zwischen sechs und acht Zeichen lang sein. Passwörter mit mehr als 8 Zeichen werden automatisch verkürzt.

      Sobald Sie das Passwort verifiziert haben, können Sie ein schreibgeschütztes Passwort einrichten. Benutzer, die sich mit dem schreibgeschützten Passwort anmelden, können die VNC-Instanz nicht mit der Maus oder Tastatur steuern. Das ist eine hilfreiche Option, wenn Sie mit Ihrem VNC-Server anderen etwas zeigen möchten, ist aber nicht erforderlich.

      Der Prozess erstellt dann die notwendigen Standard-Konfigurationsdateien und Verbindungsinformationen für den Server. Zudem startet er eine Standard-Serverinstanz auf Port 5901. Dieser Port nennt sich Anzeige-Port und wird vom VNC als :1 bezeichnet. VNC kann mehrere Instanzen auf anderen Anzeige-Ports starten. :2 bezieht sich auf Port 5902, :3 auf 5903 und so weiter:

      Output

      Would you like to enter a view-only password (y/n)? n xauth: file /home/sammy/.Xauthority does not exist New 'X' desktop is your_hostname:1 Creating default startup script /home/sammy/.vnc/xstartup Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      Wenn Sie Ihr Passwort ändern oder ein schreibgeschütztes Passwort hinzufügen möchten, beachten Sie, dass Sie dies mit dem Befehl vncpasswd tun können:

      Das ist der Moment, ab dem der VNC-Server installiert ist und läuft. Nun konfigurieren wir ihn, um Xfce zu starten und um uns Zugriff auf den Server über eine grafische Oberfläche zu erteilen.

      Schritt 2 — Konfiguration des VNC-Servers

      Der VNC-Server muss wissen, welche Befehle er beim Start ausführen soll. VNC muss vor allem wissen, mit welcher grafischen Desktop-Umgebung er sich verbinden soll.

      Die Befehle, die der VNC-Server beim Starten ausführt, befinden sich in einer Konfigurationsdatei namens xstartup im Ordner .vnc unter Ihrem Stammverzeichnis. Das Start-Skript wurde erstellt, als Sie den vncserver im vorherigen Schritt ausgeführt haben, aber Sie erstellen Ihr eigenes, um den Xfce-Desktop zu starten.

      Da Sie die Konfiguration des VNC-Servers ändern werden, müssen Sie zunächst die VNC-Server-Instanz stoppen, die auf Port 5901 ausgeführt wird. Dazu verwenden Sie den folgenden Befehl:

      Die Ausgabe sollte wie folgt aussehen, auch wenn Sie eine andere PID sehen werden:

      Output

      Killing Xtightvnc process ID 17648

      Bevor Sie die Datei xstartup ändern, sollten Sie ein Backup der Originaldatei vornehmen:

      • mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

      Erstellen Sie eine neue xstartup-Datei und öffnen Sie sie in einem Texteditor wie nano:

      Fügen Sie der Datei anschließend folgende Zeilen hinzu:

      ~/.vnc/xstartup

      #!/bin/bash
      xrdb $HOME/.Xresources
      startxfce4 &
      

      Die erste Zeile ist ein shebang. In ausführbaren Klartext-Dateien auf *nix-Plattformen weist ein shebang das System an, an welchen Interpreter die Datei zur Ausführung weitergegeben wird. In diesem Fall übergeben Sie die Datei dem Bash-Interpreter. Dies erlaubt es, jede aufeinanderfolgende Zeile als Befehl der Reihe nach auszuführen.

      Der erste Befehl in der Datei, xrdb $HOME/.Xresources weist das GUI Framework des VNC an, die .Xresources-Datei. . des Serverbenutzers zu lesen. Xresources ist der Ort, an dem ein Benutzer bestimmte Einstellungen des grafischen Desktops ändern kann, wie die Terminal-Farben, Cursor-Gestaltung und das Font-Rendering. Der zweite Befehl weist den Server an, Xfce zu starten. Immer, wenn Sie den VNC-Server starten oder neu starten, werden diese Befehle automatisch ausgeführt.

      Speichern und schließen Sie die Datei nach dem Hinzufügen dieser Zeilen. Wenn Sie nano verwendet haben, drücken Sie STRG+X, Y, dann ENTER.

      Um sicherzustellen, dass der VNC-Server diese neue Start-Datei ordnungsgemäß verwenden kann, müssen Sie sie ausführbar machen:

      Starten Sie den VNC-Server anschließend neu:

      Achten Sie dieses Mal darauf, dass dieser Befehl die Option -localhost beinhaltet, die den VNC-Server an die Loopback-Schnittstelle Ihres Servers bindet. Dadurch kann VNC nur Verbindungen zulassen, die von dem Server stammen, auf dem es installiert ist.

      Im nächsten Schritt richten Sie einen SSH-Tunnel zwischen Ihrem lokalen Rechner und Ihrem Server ein und gaukeln VNC damit im Grunde vor, dass die Verbindung von Ihrem lokalen Rechner von Ihrem Server stammt. Diese Strategie fügt eine zusätzliche Sicherheitsebene um VNC herum hinzu, da die einzigen Benutzer, die darauf zugreifen können, bereits SSH-Zugriff auf Ihren Server haben.

      Sie sehen eine Ausgabe, die dieser ähnelt:

      Output

      New 'X' desktop is your_hostname:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      Da die Konfiguration nun betriebsbereit ist, können Sie jetzt die Verbindung von Ihrem lokalen Rechner zum VNC-Server herstellen.

      Schritt 3 — Eine sichere Verbindung mit dem VNC-Desktop

      VNC selbst verwendet keine sicheren Protokolle beim Verbinden. Um sich sicher mit Ihrem Server zu verbinden, richten Sie einen SSH-Tunnel ein und weisen Ihren VNC-Client an, diesen Tunnel zu verwenden, anstatt eine direkte Verbindung herzustellen.

      Erstellen Sie auf Ihrem lokalen Computer eine SSH-Verbindung, die sicher an die localhost-Verbindung für VNC weiterleitet. Sie können dies mit folgendem ssh-Befehl über den Terminal auf Linux oder macOS durchführen:

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      Im Folgenden wird die Bedeutung dieses ssh-Befehls erklärt:

      • -L 59000:localhost:5901: Der -L-Schalter gibt an, dass der angegebene Port auf dem lokalen Computer (59000) an den angegebenen Host und den Port auf dem Zielserver weitergeleitet werden soll (localhost:5901, bedeutet Port 5901 auf dem Zielserver, definiert als your_server_ip). Beachten Sie, dass der von Ihnen angegebene lokale Port etwas willkürlich ist. Solange der Port nicht bereits in einen anderen Dienst eingebunden ist, können Sie ihn als Weiterleitungsport für Ihren Tunnel verwenden.
      • -C: Dieses Flag ermöglicht eine Komprimierung, mit der die Ressourcennutzung minimiert und die Prozesse beschleunigt werden können.
      • -N: Diese Option weist ssh an, dass Sie keine Remote-Befehle ausführen möchten. Diese Einstellung ist hilfreich, wenn Sie Ports lediglich weiterleiten möchten.
      • -l sammy your_server_ip: Mit dem -l-Schalter legen Sie den Benutzer fest, mit dem Sie sich anmelden wollen, sobald Sie sich mit dem Server verbinden. Stellen Sie sicher, dass Sie sammy und your_server_ip durch den Namen Ihres Nicht-root-Benutzers und der IP-Adresse Ihres Servers ersetzen.

      Hinweis: Dieser Befehl richtet einen SSH-Tunnel ein, der Informationen von Port 5901 auf Ihrem VNC-Server an Port 59000 auf Ihrem lokalen Rechner über Port 22 auf jedem Rechner (den Standardport für SSH) weiterleitet. Wenn Sie dem Leitfaden für Ersteinrichtung eines Servers für Ubuntu 20.04 gefolgt sind, der als Voraussetzung gilt, haben Sie eine UFW-Regel hinzugefügt, die Verbindungen zu Ihrem Server über OpenSSH erlaubt.

      Dies ist sicherer als einfach die Firewall Ihres Servers für Verbindungen zu Port 5901 zu öffnen. Denn dadurch würde jedermann über VNC auf Ihren Server zugreifen können. Durch das Verbinden eines SSH-Tunnels begrenzen Sie den VNC-Zugriff auf Computer, die bereits SSH-Zugriff auf den Server haben.

      Wenn Sie PuTTY verwenden, um sich mit Ihrem Server zu verbinden, können Sie einen SSH-Tunnel erstellen, indem Sie mit der rechten Maustaste auf die obere Leiste des Terminalfensters und anschließend auf die Option Change Setting… (Einstellungen ändern) klicken:

      Klicken Sie mit der rechten Maustaste auf die obere Leiste, um die Option Change Settings (Einstellungen ändern) einzublenden

      Suchen Sie den Verbindungszweig im Menübaum auf der linken Seite des Fensters PuTTY Reconfigure (PuTTY neu konfigurieren). Erweitern Sie den SSH-Zweig und klicken Sie auf Tunnels. Geben Sie auf dem Bildschirm Options controlling SSH port forwarding (Optionen für die Steuerung der SSH-Portweiterleitung) 59000 als Quell-Port und localhost:5901 als Destination an (wie in diesem Fall):

      Beispiel PuTTY SSH-Tunnelkonfiguration

      Klicken Sie anschließend auf die Schaltfläche Add (Hinzufügen) und dann auf die Schaltfläche Apply (Anwenden), um den Tunnel zu implementieren.

      Sobald der Tunnel läuft, verwenden Sie einen VNC Client, um sich mit localhost:59000 zu verbinden. Sie werden aufgefordert, sich mit dem in Schritt 1 eingestellten Passwort zu authentifizieren.

      Sobald die Verbindung steht, sehen Sie den Xfce Standard-Desktop. Sie sollte ungefähr wie folgt aussehen:

      VNC-Verbindung zum Ubuntu 20.04-Server mit der Xfce-Desktop-Umgebung

      Sie können mit dem Dateimanager auf Dateien in Ihrem Stammverzeichnis zugreifen oder von der Befehlszeile aus, wie nachstehend zu sehen ist:

      File Manager über VNC-Verbindung zu Ubuntu 20.04

      Drücken Sie CTRL+C auf Ihrem lokalen Terminal, um den SSH-Tunnel zu stoppen und zu Ihrer Aufforderung zurückzukehren. Damit wird auch Ihre VNC-Sitzung unterbrochen.

      Jetzt können Sie Ihren VNC-Server so konfigurieren, dass er als systemd-Dienst ausgeführt wird.

      Schritt 4 — VNC als Systemdienst ausführen

      Da der VNC-Server für die Ausführung als systemd-Dienst eingerichtet wurde, können Sie ihn wie jeden anderen Dienst nach Bedarf starten, anhalten und neu starten. Sie können auch die Verwaltungsbefehle von systemd nutzen, um sicherzustellen, dass VNC beim Hochfahren Ihres Servers startet.

      Erstellen Sie zunächst eine Unit-Datei namens /etc/systemd/system/[email protected]:

      Das @-Symbol am Ende des Namens gestattet uns, ein Argument aufzunehmen, das Sie in der Dienstkonfiguration verwenden können. Sie verwenden dies, um den VNC-Anzeige-Port anzugeben, den Sie bei der Dienstverwaltung einsetzen möchten.

      Fügen Sie der Datei folgende Zeilen hinzu. Vergewissern Sie sich, dass Sie den Wert von User, Group, WorkingDirectory und den Benutzernamen im Wert von PIDFILE ändern, damit er mit Ihrem Benutzernamen übereinstimmt:

      /etc/systemd/system/[email protected]

      [Unit]
      Description=Start TightVNC server at startup
      After=syslog.target network.target
      
      [Service]
      Type=forking
      User=sammy
      Group=sammy
      WorkingDirectory=/home/sammy
      
      PIDFile=/home/sammy/.vnc/%H:%i.pid
      ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
      ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
      ExecStop=/usr/bin/vncserver -kill :%i
      
      [Install]
      WantedBy=multi-user.target
      

      Der Befehl ExecStartPre stoppt VNC, wenn er bereits läuft. Der ExecStart Befehl startet VNC und stellt die Farbtiefe auf 24-Bit-Farbe mit einer Auflösung von 1280 x 800. Sie können diese Startoptionen auch je nach Wunsch ändern. Beachten Sie auch, dass der Befehl ExecStart wieder die Option -localhost beinhaltet.

      Speichern und schließen Sie die Datei.

      Machen Sie als Nächstes das System auf die neue Unit-Datei aufmerksam:

      • sudo systemctl daemon-reload

      Aktivieren Sie die Unit-Datei:

      Die 1 nach dem @-Zeichen gibt an, über welche Anzeigenummer der Dienst angezeigt werden soll; in diesem Fall ist der Standard :1, wie wir bereits in Schritt 2 besprochen haben.

      Stoppen Sie die aktuelle Instanz des VNC-Servers, wenn er noch läuft:

      Starten Sie ihn dann wie jeden anderen systemd-Dienst:

      • sudo systemctl start vncserver@1

      Sie können verifizieren, dass er mit diesem Befehl gestartet wurde:

      • sudo systemctl status vncserver@1

      Falls er richtig gestartet wurde, sollte die Ausgabe wie folgt aussehen:

      Output

      [email protected] - Start TightVNC server at startup Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-07 17:23:50 UTC; 6s ago Process: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Process: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS) Main PID: 39795 (Xtightvnc) ...

      Ihr VNC-Server ist jetzt betriebsbereit, sobald Ihr Server hochfährt, und Sie können ihn mit systemctl-Befehlen wie jeden anderen systemd-Dienst verwalten.

      Es gibt jedoch keinen Unterschied auf der Client-Seite. Um Ihren SSH-Tunnel erneut zu verbinden, starten Sie ihn erneut:

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      Stellen Sie dann mit Ihrer VNC-Client-Software eine neue Verbindung zu localhost:59000 her, um sich mit Ihrem Server zu verbinden.

      Zusammenfassung

      Jetzt läuft ein sicherer VNC-Server auf Ihrem Ubuntu 20.04 Server. Jetzt können Sie Ihre Dateien, Software und Einstellungen mit einer benutzerfreundlichen grafischen Oberfläche verwalten und grafische Software wie Web-Browser per Fernzugriff ausführen.



      Source link