나는 설치했다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 port
TCP 포트 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
기본적으로는 그렇지 않습니다.