今日はラズパイにVNCサーバーを立ち上げて、MacやPCからのVNC接続でGUI環境を遠隔操作する方法についてまとめてみようと思います。

ラズパイを操作する場合、ほとんどの場合はsshで用が足りるのですが、GUI環境でも操作したいぞということもあるかと思います。その場合に必要なのがVNCサーバーのインストールと設定です。

そもそもラズパイのVNCはRealVNCが標準なのですが、Mac標準のVNCクライアントで接続するには、RealVNCのパスワードを設定しなくてはなりません。ですが、そのパスワードを設定するには、ラズパイにモニター、キーボード、マウスを繋げてGUI環境から設定する必要があります。

その一方で、TightVNCのインストールから自動起動の設定まではsshのみでできてしまうため、こちらの方が楽だなぁ〜と感じでしまうわけであります。

では、早速インストールと設定を行なっていきましょう。

スポンサーリンク




目次

  1. TightVNCのインストール
  2. init.d スクリプトで自動起動させる
  3. VNCクライアントから接続する方法
  4. まとめ

1. TightVNCのインストール

それではまず、TightVNCをインストールしましょう。TightVNCはapt-getで簡単にインストールすることができます。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install tightvncserver

インストール後に、まずは起動してみましょう。

$ tightvncserver

初回の起動でパスワードを聞かれるので必ず設定しておきましょう。

2. init.d スクリプトで自動起動させる

インストールするだけで、ひとまずVNCクライアントから接続できる状態にはなりますが、ラズパイを起動させた時にTightVNCが自動で起動してくれた方が便利ですよね。というわけで、init.d スクリプトを書いて、自動起動するようにしてみたいと思います。

$ sudo vi /etc/init.d/vncboot
#! /bin/sh

### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO

# /etc/init.d/vncboot

USER=pi
HOME=/home/pi

export USER HOME

case "$1" in
	start)
		echo "Starting VNC Server"
		#Insert your favoured settings for a VNC session
		su $USER -c '/usr/bin/vncserver :1 -geometry 1024x768 -depth 24'
		;;

	stop)
		echo "Stopping VNC Server"
		su $USER -c '/usr/bin/vncserver -kill :1'
		;;

	*)
		echo "Usage: /etc/init.d/vncboot {start|stop}"
		exit 1
		;;
esac

exit 0

1行目:
「# ! /bin/sh」は冒頭で宣言した方がよいと思います。

24行目:
この行に「1024×768」とありますが、これは画面解像度の設定なので、好みのサイズにしておいてください。

次いで、chmodコマンドでスクリプトのパーミッションを変更し実行ファイルにしておきます。

$ sudo chmod 755 /etc/init.d/vncboot

今度は、update-rc.dコマンドでデーモン登録します。これでスクリプトによる自動起動が可能になります。

$ sudo update-rc.d vncboot defaults

登録が終わったら再起動してみましょう。

$ sudo shutdown -r now

再起動したらsshで再接続し、psコマンドでTightVNCが起動しているか確認してみましょう。

$ ps -ef | grep tightvnc | grep -v grep

pi         607     1  0 12:35 ?        00:00:07 Xtightvnc :1 -desktop X -auth /home/pi/.Xauthority -geometry 1024×768 -depth 24 -rfbwait 120000 -rfbauth /home/pi/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb

こんな風に表示されたらOKです。netstatコマンドでポートが開いているか確認することもできます。

$ netstat -nlt

Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN

ちゃんと「LISTEN」してればOKです!

3. VNCクライアントから接続する方法

先ほど「LISTEN」しているポートは「5901」でした。つまりVNCクライアントからアクセスするには、このポート番号を使います。

USBケーブルをラズパイのUSBポートに直結している場合は「raspberrypi.local」というホスト名も使えますが、WiFiを使った遠隔操作の場合はローカルIPアドレスを指定します。

vnc://raspberrypi.local:5901

Mac標準のVNCクライアントから接続する場合は、下記の画面のようにFinderメニューの「移動」→「サーバーへ接続」から接続します。

初回起動時に設定したパスワードを入力してVNC接続します。

おー、ラズパイのアンコールワット寺院(?)のデスクトップが表示されました!

4. まとめ

今日は、TightVNCを使ったVNCサーバーの設定の方法についてまとめてみました。ラズパイでVNCクライアント接続をしなければならない状況ってあまりないとは思いますが、遠隔でGUI環境による操作をしたいということもあるかもしれませんね。そんな時は是非、TightVNCでVNCサーバーを立ち上げてみてください。

参考にさせていただいた記事:

Raspberry Piの設定【VNCサーバ(tightVNC)の設定】