VNC 서버는 localhost의 연결만 수신합니다.

VNC 서버는 localhost의 연결만 수신합니다.

나는 설치했다TightVNC 서버내 Raspberry Pi 2 B+의 Raspbian(2017년 9월 버전):

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)

하지만 내 VNC 뷰어(원격 Windows 시스템의 RealVNC에서)는 "연결이 거부되었습니다." 연결을 시도할 때 포트가 수신 대기 중인 것으로 나타나지 않습니다.

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

내가 얻으려고 하면우분투16.04.3 다른 Raspberry Pi에서는 모든 것이 잘 작동합니다(다른 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)

결과는 다음과 같습니다.VNC4 서버.

내가 읽고라즈베리파이 공식 논문, 설치 패키지 포함 realvnc-vnc-server. 하지만 RealVNC 프로그램은 다수의추가 패키지그리고는오픈 소스가 아님, 교육 목적으로는 무료이지만. 저는 기업 프로덕션 환경에서 사용할 수 있는 한 VNC에 대해 GNU의 보다 개방적인 정책을 선호합니다.

내 거해결책이제 사용이 포함됩니다.X11vnc다른 포트에서 디스플레이를 제공합니다.

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

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

...이제 X11vnc 프로그램은 display:1을 사용할 수 있게 만듭니다. X11VNC는 :0 portTCP 포트 5901이 사용되는 한 TCP 5900(일명 )을 사용합니다 .

The VNC desktop is:      Frambuesio:0
PORT=5900

netstat이제 출력은 다음과 같습니다 .피복재건강 상태:

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)

내 VNC 서버가 제대로 작동하지 않는 이유는 무엇이며 이 문제를 해결하려면 어떻게 해야 합니까?

답변1

문제는 (귀하의 경우) 옵션이 잘못된 VNCServer의 기본 매개변수인 것 같습니다.

명령줄 vncserver도움말에서:

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

이렇게 하면 문제가 해결됩니다.

vncserver -localhost no

원래 질문의 마지막 예를 설명하려면 0.0.0.0:5900"연결 듣기"가 무엇을 의미하는지 참고하세요.어디에서나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)

또한 127.0.0.1:5901"연결 듣기"의 의미에 유의하십시오.로컬호스트에서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)

답변2

나는 같은 문제가 있었고 그것을 해결했습니다. 명령줄에서 실행:

tigervncserver -localhost no :1

/etc/vnc.conf 파일에 옵션을 추가하여 영구적으로 만드십시오.

$localhost = "no"

문서에 나와 있지만 localhost=no기본적으로는 그렇지 않습니다.

관련 정보