ubuntuusers.de

X11VNC richtig einrichten

Status: Ungelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

DaHorstl

Anmeldungsdatum:
3. August 2012

Beiträge: 11

Hallo alle miteinander! Ich hoffe, Ihr könnt mir helfen. ☺

Ich habe auf meinem Server Ubuntu 12.04.4 LTS Server mit Unity/Gnome Desktop und noch einige andere Dienste installiert und laufen (u.a. MythTV). Der Server soll aber in einen anderen Raum, daher möchte ich gerne einen Fernzugriff einrichten. Mit Teamviewer läuft das zwar relativ gut, leider nur etwas ruckelig.

Ich würde es zwar gerne über VNC probieren, ich bin aber anscheinend zu blöd, den Server (X11VNC über den Ubuntu Software Center) richtig zu konfigurieren. Versuche ich von einem Windows-Rechner mittels TightVNC Viewer zuzugreifen, bekomme ich folgende Fehlermeldungen: "Errer in TightVNC Viewer: Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte" oder netterweise einfach nur ein "Connection has been gracefully closed". Woran kann das liegen?

Außerdem möchte gerne auch - wenn das möglich ist - über Fernzugriff aus der Firma über HTTP (Port 80) auf meinen Server zugreifen. Das soll über VNC ja auch möglich sein. Stimmt das?

Danke für Eure Infos! 😎

Liebe Grüße, DaHorstl

Benno-007

Anmeldungsdatum:
28. August 2007

Beiträge: 29240

Wohnort: Germany

DaHorstl schrieb:

Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte" oder netterweise einfach nur ein "Connection has been gracefully closed". Woran kann das liegen?

Kein Netz? ping kennst du?

Außerdem möchte gerne auch - wenn das möglich ist - über Fernzugriff aus der Firma über HTTP (Port 80) auf meinen Server zugreifen. Das soll über VNC ja auch möglich sein. Stimmt das?

Wenn du mit VNC über Port 80 tunnelst, könnte das vielleicht funktionieren. Aber frag mich nicht, wie.

DaHorstl

(Themenstarter)

Anmeldungsdatum:
3. August 2012

Beiträge: 11

Servus Benno,

danke für Deine Antwort - SO blöd bin ich auch wieder nicht. 🙄 Natürlich habe ich eine Verbindung zum Server. Nicht nur über Ping, sondern auch über Samba. 😉

Lg, DaHorstl

Benno-007

Anmeldungsdatum:
28. August 2007

Beiträge: 29240

Wohnort: Germany

Ich kann dir nur mal meine Anleitung von meiner Benutzerseite kopieren, die bei mir funktioniert hat - mit SSH und Keys. Im LAN kann die Verschlüsselung auch nicht schaden.

Fernsteuerung per VNC und ssh-Schlüsseln

  • gemeinsame Fernsteuerung eines anderen PCs per VNC:

    • Möchte man einer vertrauten Person durch Fernsteuerung des PCs etwas einrichten, ist etwas wie ssh -CX oft nicht ausreichend: Für grafische Fernsteuerung des gesamten Desktops bietet sich VNC an. Darüber hinaus sind so auch Vorführungen und gemeinsame Übungen möglich.

    • Die vorinstallierten grafischen Varianten funktionieren bei mir nicht über SSH-Tunnel, wären also unverschlüsselt und damit für das Internet nicht verwendbar. Im Folgenden beschreibe ich aber eine einfache Terminalvariante, welche bei mir wunderbar funktioniert. Diese bietet "unendlich" viele Optionen, ich setze hier aber auf das "sinnvolle Minimum" (KISS-Prinzip) und auf möglichst wenige Konfigurationsänderungen außerhalb der Befehlszeilen, so dass man das Verfahren auch schnell auf anderen PCs anwenden kann.

    • x11vnc hat generell einige Vorteile:

      • man kann gleichzeitig von nah und fern den Rechner steuern und in einer Textdatei "chatten" - sieht also dasselbe Bild, den selben Mauszeiger, die selben Tastatureingaben und betätigten Menüs

      • die Unity-Leisten links und oben fehlen nicht, im Gegensatz zu meinen Versuchen mit tightvncserver

      • sehr schnell

    • Vorbereitungen:

      • Nötige Programme installieren:

        • Fremdrechner:

          sudo apt-get install openssh-server x11vnc
        • Viewer:

          sudo apt-get install xtightvncviewer
      • Verschlüsselung konfigurieren und Passwörter einrichten:

        • Damit die Sitzung, Daten und Passwörter nicht abgehört werden sowie die Sitzung nicht durch Fremdeingriffe beeinträchtigt werden, muss man zuvor eine Verschlüsselung per SSH konfigurieren. Ich habe die nötigen Optionen zusammengefasst, die bei einer Standard-Vorkonfiguration von SSH unter Ubuntu mindestens nötig sind (Variante sehr langes Zertifikat anstatt unsicheres Passwort):

        • Zunächst muss man noch Port 22 in seinem Router am Fremdrechner freischalten (lassen), falls dort uPnP zur automatischen Portweiterleitung nicht aktiviert ist. Letzteres ist unsicherer und damit zu vermeiden. Die Einstellung findet sich im Routermenü, abhängig vom jeweiligen Modell. Handbuch oder Suchmaschine hilft. Danach sollte einer Anmeldung an ssh nichts mehr im Wege stehen:

        • Schlüssel am lokalen Rechner erzeugen und zum Server hochladen ("Menüs" seklbsterklärend):

          ssh-keygen -t rsa
          ssh-copy-id -i ~/.ssh/id_rsa.pub nutzer@1.2.3.4

          Es folgt die Anmeldung am Fremdrechner per ssh. Hierfür braucht man Nutzername und Passwort des Nutzers am Fremdrechner, der ferngesteuert werden soll. Beispielhaft steht hier die IP 1.2.3.4 - eingesetzt werden muss die IP des Fremdrechners, die sich dort am einfachsten von der zu supportenden Person über http://www.wieistmeineip.de herausfinden lässt (wird angezeigt).

        • Server auf Fremdrechner nun etwas nachkonfigurieren und root sowie PW deaktivieren, zunächst am Fremdrechner anmelden:

          ssh nutzer@1.2.3.4
          sudo nano /etc/ssh/sshd_config

          Dort folgendes überprüfen:

          PermitRootLogin no
          PasswordAuthentication no
          UsePAM no

          Mit F3 speichern, mit F2 verlassen. Neustart von ssh:

          sudo reload ssh
        • Passwort für x11vnc anlegen:

          x11vnc -storepasswd
    • Anwendung - Aufbau einer Verbindung:

      • 1. Per ssh am Fremdrechner anmelden (falls noch nicht/ nicht mehr angemeldet):

        ssh nutzer@1.2.3.4

        Hierfür braucht man Nutzername und Passwort des eben neu angelegten Zertifikats des Nutzers am Fremdrechner, der ferngesteuert werden soll.

      • 2. Auf Fremdrechner x11vnc starten:

        x11vnc -localhost -usepw -display :0

      • 3. Auf lokalem Rechner vncviewer starten:

        vncviewer -via nutzer@1.2.3.4 -compresslevel 9 localhost:0

        Nur das gelb Markierte muss angepasst werden, localhost am Ende muss stehenbleiben (über ssh ist man auch auf dem entfernten Rechner "lokal"). Hinweis: -compresslevel 9 ist die höchste Kompressionsstufe, die gerinste sollte 1 nicht unterschreiten. Die höchste spart Datenvolumen und Bandbreite, könnte aber eventuell etwas ausbremsen, vor allem auch sehr schwache PCs. Es sollte sich dann ein Fenster öffnen, auf dem der gesamte Desktop des fremden Rechners sichtbar ist. Der fremde Nutzer muss bei dieser Variante bereits eingeloggt sein. Eine Bildschirmsperre ist ok.

    • Weitere Details, Sonderfälle, Probleme und Hinweise zur Neueinrichtung werden in den verlinkten Artikeln behandelt, insbesondere in SSH. Wie bereits erwähnt: Nicht vergessen, dass es auch im Router freigeschalten sein muss (Port 22).

    • Schließen durch Schließen des VNC-Fensters. Die ssh-Verbindung und damit auch die VNC-Verbindung kann man durch exit trennen. Man kann stattdessen auch der zu supportenden Person sagen, dass man den PC später selbst herunterfährt, per sudo shutdown -h now oder über VNC per gewöhnlichem grafischen Herunterfahren.

    • Sicherheit:

      • Nun läuft alles verschlüsselt und über ein seeehr langes Zertifkat als Passwort-Ersatz abgesichert. Idealerweise wurde für das Zertifikat auch ein PW bei der Frage nach dem Anlegen eines PW vergeben. sshd startet nun immer, den x11vnc-Server startet man sicherheitshalber allerdings erst dann manuell selbst, wenn man es braucht bzw. die andere Person dies wünscht/ erlaubt.

      • Der VNC-Server ist doppelt abgesichert: Zum einen erlaubt die Option -localhost nur Verbindungen von Benutzern auf dem selben Rechner (einschließlich über kryptographisch stark abgesichertes ssh), zum anderen wird mit der Option -usepw auch das zuvor gesetzte VNC-Passwort erzwungen. Ohne die Einrichtung der relativ aufwendigen ssh-Verschlüsselung fallen allerdings diese Sicherheitsmerkmale weg bzw. ist das Passwort beim Login leicht über das Internet oder geteiltes (W)LAN erschnüffelbar.

      • Soll der ssh-Zugriff wieder entzogen werden, kann

        • entweder sshd aus dem Autostart genommen werden (Dienste) oder

        • das hochgeladene Zertifikat auf dem Server entfernt werden (aus ~/.ssh/authorized_keys bzw. mit # am Zeilenanfang des Blockes auskommentieren und ssh oder den Computer neu starten)

        • das Passwort des Nutzers geändert werden (passwd), falls er der Einzige bzw. Einzige mit SSH-Konfiguration/ Erlaubnis ist (auf all diese Varianten gehe ich hier jedoch nicht näher ein)

    • Anleitung wurde getestet, aber ist aus Wiki, History und Gedächtnis rekonstruiert. Ich hoffe, ich habe nichts vergessen.

    • Notiz für mich: alternativ eigenes Bild, aber keine Unity-Leisten per

      vncserver -localhost :0

    • Auflösung: Bei x11vnc als auch (tight)vncserver kann man mit -geometry noch die Größe des VNC-Viewers beeinflussen, z.B. mit 1600x900. Bei x11vnc kann man eine leichte Vergrößerung auch durch Werte größer 1 erreichen, kleiner 1 verkleinert. Beispiel für geringfügige Vergrößerung: -geometry 1.04.

    • weitere Tests wegen Verschlüsselung und Traffic etc. (einzeln):

      • x11vnc: -ssl -speeds modem -notruecolor -gui (und expert options)

      • xtightvncviewer: -bgr233 -quality 0 -nojpeg -encodings Tight

        • fett: sehr gute Kompression auf 1/3 Verbrauch durch Verringerung von 24 auf 8 Bit Farbtiefe (dafür teils falsche Farben)

    • Anmeldung am Loginscreen (mit sudo und lightdm):

      sudo x11vnc -localhost -usepw -display :0 -auth /var/run/lightdm/root/:0

homer65

Avatar von homer65

Anmeldungsdatum:
8. November 2005

Beiträge: 570

Wohnort: bochum, germany

Läuft denn überhaupt ein VNC Server? Per "telnet ip port" könnte man testen, ob der Port (Bei VNC in der Regel 5900) offen ist.

cptechnik

Avatar von cptechnik

Anmeldungsdatum:
28. Dezember 2007

Beiträge: 305

Wohnort: NRW-Windeck

Beim vino-server hatte ich ein Authentifizierungsproblem...

meine Lösung - Verschlüsselung aus! : VNC#Authentifizierungsproblem-vino-server

Ich konnte durch eine Verbindung vom selben PC aus feststellen, dass der Server ja läuft. (Nur betrachten einschalten, sonst bekommt man Probleme mit der Mausführung... 😉 🙄 )

Nur egal mit welchem Android-VNC-Viewer ich drauf Zugriff nehmen wollte, meldete die App(likation) ein Authentifizierungsproblem.

Ralph.Rupprich

Avatar von Ralph.Rupprich

Anmeldungsdatum:
29. Dezember 2005

Beiträge: 50

Hallo Benno, hallo an alle übrigen, die das lesen und eine Idee haben ☺,

ich bin grade dabei, das VNC zu meiner Mama ihrem Rechner einzurichten. Beide Rechner wurden mit Kubuntu 15.10 frisch aufgesetzt.

Deine Einrichtung scheitert bei mir an folgendem Befehl (bis hierher läuft alles reibungslos):

x11vnc -localhost -usepw -display :0

Die Quittung lautet:

08/01/2016 12:15:28 XOpenDisplay(":0") failed.

Meine laienhafte, logische Erklärung dafür lautet: Display :0 ist mit meiner Mama ihrem Login lokal offen, aber ich versuche mit meinem Login drauf zuzugreifen. Schlußfolgerung: entweder ging das vor 15.10 und scheitert seitdem an einem Recht, an das ich nicht gedacht habe (oder es nicht weiß), oder es geht so gar nicht mehr (was blöd wäre).

Wie richtig liege ich mit meinem Wissen, bzw. (viel wichtiger für mich): gibt es etwas, was ich tun kann, dass das ganze mal funktioniert?

Grüße,

Ralph

Antworten |