Servidor VNC não está escutando conexões, mas de localhost

2

Eu instalei o TightVNCServer em RaspBian (a versão de setembro de 2.017) para o meu RaspBerry Pi 2 B +:

luis@Frambuesio:~$  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.

luis@Frambuesio:~$ 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)

Mas meu VNC Viewer (do RealVNC em uma máquina Windows remota) recebe a mensagem " Conexão recusada " ao tentar se conectar, e a porta não parece estar ouvindo :

luis@Hipatio:~$ 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

Se eu tentar do Ubuntu 16.04.3 em outro RaspBerry, tudo correrá bem (observe os diferentes resultados netstat ):

luis@Zarzaparrillo:~$ 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

luis@Zarzaparrillo:~$ netstat -ano | grep 5901
tcp6       0      0 :::5901                 :::*                    LISTEN      off (0.00/0/0)

Mesmos resultados com VNC4Server .

Eu li os documentos oficiais do RaspBerry , consistindo na instalação do pacote realvnc-vnc-server . Mas o programa RealVNC instala uma tonelada de pacotes extras e não é código aberto , mesmo quando está livre para fins educativos. Eu preferiria algumas políticas mais abertas do GNU para o meu VNC, desde que ele pudesse ser usado no ambiente de produção da empresa.

Minha Solução alternativa agora consiste em usar X11VNC para exibir a exibição em outra porta:

luis@Frambuesio:~$  vncserver -name Frambuesio -geometry 1280x1024 -depth 16

[... on another terminal: ]
luis@Frambuesio:~$ sudo x11vnc -display :1 -passwd anypassword -auth guess -forever

... e agora o programa X11VNC exibe: 1 disponível. Note que, enquanto a porta 5901 TCP estiver ocupada, o X11VNC usa o TCP 5900 (também conhecido como :0 port ):

The VNC desktop is:      Frambuesio:0
PORT=5900

Observe a netstat output, agora em uma condição working :

luis@Frambuesio:~$ 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)
luis@Frambuesio:~$ 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)

Por que meus servidores VNC estão falhando e como posso resolvê-lo ?

    
por Sopalajo de Arrierez 18.10.2017 / 18:04

2 respostas

3

O problema parece ser apenas um argumento padrão no VNCServer com a opção imprópria (para o seu caso).

Da ajuda da linha de comando vncserver :

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

Isso deve resolver seu problema:

vncserver -localhost no

Interpretando o mesmo último exemplo na pergunta original, observe o 0.0.0.0:5900 que significa "conexões de escuta de qualquer lugar a 5900 TCP":

luis@Frambuesio:~$ 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)

Enquanto isso, observe o 127.0.0.1:5901 que significa "conexões de escuta do host local no 5901 TCP"

luis@Frambuesio:~$ 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)
    
por 18.10.2017 / 18:19
1

Eu encontrei o mesmo problema e descobri. A partir da linha de comando, execute:

tigervncserver -localhost no :1

Torne-o permanente adicionando ao arquivo /etc/vnc.conf a opção:

$localhost = "no"

Mesmo que o arquivo leia que o padrão é localhost=no , esse não é o caso.

    
por 30.07.2018 / 01:42

Tags