私はインストールしました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
私が手に入れようとするとUbuntu16.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
デフォルトではそうではありません。