it-swarm.com.de

VNC Server wartet nur auf Verbindungen von localhost

Ich habe TightVNCServer auf Raspbian (Version vom September 2.017) für meinen Raspberry Pi 2 B + installiert:

[email protected]:~$  vncserver -name Frambuesio -geometry 1280x1024 -depth 16

New 'Frambuesio' desktop at :1 on machine Frambuesio

Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/luis/.vnc/Frambuesio:1.log

Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/luis/.vnc/passwd :1 to connect to the VNC server.

[email protected]:~$ netstat -ano | grep "5901"
tcp        0      0 127.0.0.1:5901          0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp6       0      0 ::1:5901                :::*                    LISTEN      off (0.00/0/0)

Mein VNC Viewer (von RealVNC auf einem Windows-Remotecomputer) erhält jedoch die Meldung " Verbindung abgelehnt ", wenn versucht wird, eine Verbindung herzustellen, und der Port scheint nicht angezeigt zu werden zuhören:

[email protected]:~$ Sudo nmap Frambuesio- -p 5900,5901,5902
[Sudo] password for luis:

Starting Nmap 7.01 ( https://nmap.org ) at 2017-10-18 16:58 CEST
Nmap scan report for Frambuesio- (192.168.11.142)
Host is up (0.00050s latency).
PORT     STATE  SERVICE
5900/tcp closed vnc
5901/tcp closed vnc-1
5902/tcp closed vnc-2
MAC Address: B8:27:EB:7D:7C:B0 (Raspberry Pi Foundation)

Nmap done: 1 IP address (1 Host up) scanned in 0.67 seconds

Wenn ich es mit Ubuntu 16.04.3 auf einem anderen Raspberry Pi versuche, läuft alles in Ordnung (beachten Sie die unterschiedlichen netstat Ergebnisse):

[email protected]:~$ vncserver -name Zarzaparrillo -geometry 1280x1024 -depth 16

New 'Zarzaparrillo' desktop is Zarzaparrillo:1

Starting applications specified in /home/luis/.vnc/xstartup
Log file is /home/luis/.vnc/Zarzaparrillo:1.log

[email protected]:~$ netstat -ano | grep 5901
tcp6       0      0 :::5901                 :::*                    LISTEN      off (0.00/0/0)

Gleiche Ergebnisse mit VNC4Server .

Ich habe das offizielle Himbeerpapiere gelesen, das aus der Installation des Pakets realvnc-vnc-server Besteht. Aber das RealVNC-Programm installiert eine Menge zusätzliche Pakete und ist nicht Open Source, selbst wenn es für Bildungszwecke kostenlos ist. Ich würde einige offenere Richtlinien von GNU für meinen VNC bevorzugen, solange diese in einer Produktionsumgebung für Unternehmen verwendet werden können.

Meine Problemumgehung besteht derzeit darin, X11vnc zu verwenden, um die Anzeige auf einem anderen zu bedienen Hafen:

[email protected]:~$  vncserver -name Frambuesio -geometry 1280x1024 -depth 16

[... on another terminal: ]
[email protected]:~$ Sudo x11vnc -display :1 -passwd anypassword -auth guess -forever

... und jetzt stellt das Programm X11vnc Anzeige: 1 zur Verfügung. Beachten Sie, dass X11VNC, solange der Port 5901 TCP belegt) belegt ist, den 5900 TCP (aka :0 port) Verwendet:

The VNC desktop is:      Frambuesio:0
PORT=5900

Beachten Sie die Ausgabe netstat, die sich jetzt in einem funktionierenden Zustand befindet:

[email protected]:~$ netstat -ano | grep 5900
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp6       0      0 :::5900                 :::*                    LISTEN      off (0.00/0/0)
[email protected]:~$ netstat -ano | grep 5901
tcp        0      0 127.0.0.1:5901          0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp6       0      0 ::1:5901                :::*                    LISTEN      off (0.00/0/0)

Warum fallen meine VNC-Server aus und wie kann ich das lösen?

Das Problem scheint nur ein Standardargument auf VNCServer mit der falschen Option (für Ihren Fall) zu sein.

Über die Befehlszeilenhilfe vncserver:

[-localhost yes|no]    Only accept VNC connections from localhost

Dies sollte Ihr Problem lösen:

vncserver -localhost no

Wenn Sie dasselbe letzte Beispiel in der ursprünglichen Frage interpretieren, beachten Sie das 0.0.0.0:5900 bedeutet "Abhören von Verbindungen von überall bei 5900 TCP":

[email protected]:~$ netstat -ano | grep 5900
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp6       0      0 :::5900                 :::*                    LISTEN      off (0.00/0/0)

Beachten Sie in der Zwischenzeit die 127.0.0.1:5901 bedeutet "Abhören von Verbindungen von localhost bei 5901 TCP"

[email protected]:~$ netstat -ano | grep 5901
tcp        0      0 127.0.0.1:5901          0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp6       0      0 ::1:5901                :::*                    LISTEN      off (0.00/0/0)
11

Ich bin auf dasselbe Problem gestoßen und habe es herausgefunden. Führen Sie über die Befehlszeile Folgendes aus:

tigervncserver -localhost no :1

Machen Sie es dauerhaft, indem Sie der Datei /etc/vnc.conf die Option hinzufügen:

$localhost = "no"

Obwohl in der Datei steht, dass der Standardwert localhost=no Ist, ist dies nicht der Fall.

4
Jose Sanchez