はじめに
これまでLAN内からラズパイにSSH接続する方法としてIPアドレスを固定するやり方、Avahiを使用するやり方について書いてきました。SSH接続というのは基本的にCLI(Command Line Interface)操作が前提となっています。
しかし、慣れていない人はどうしてもGUI(視覚的な操作)などのグラフィカルな操作ができたらいいのにと思う人もいるでしょう。(自分もそうでした。)
リモート接続としてコマンドラインを使用したSSH接続を紹介してきましたが、今回の記事では視覚的な操作を可能にする VNCを利用してリモート接続する方法 について書いていきたいと思います。
目次
- VNC(Virtual Network Computing)
- 環境
- VNCのセットアップ
- VNCをインストール
- VNCを有効化
- VNCサーバを起動
- VNCサーバへ接続
- VNCサーバの自動起動設定
- 最後に
VNC(Virtual Network Computing)
- VNCとは
リモートデスクトップの一種で、ネットワーク上の離れたコンピュータを画面を見ながら遠隔操作するものです。つまり、モニタなどを直接接続しなくても、自分の使用するPC上にラズパイの画面を表示して利用することができます。
オリジナルのVNCがオープンソースとして公開されているため、現在では様々なVNCの派生ソフトがあります。
- VNCサーバ
その名の通り、VNCを提供するサーバです。VNCサーバはソフトウェアとして動作します。このソフトウェアはサーバソフトと、クライアント(もしくはビューア)ソフトの2つに分かれており、ラズパイ上でサーバソフトを起動しておき、遠隔操作する側はクライアントソフトを起動させて接続しにいきます。
環境
今回は、以下の環境を想定して書いています。
- 接続元PC:Mac
- OS:macOS Catalina ver. 10.15.6
- 接続先PC:Raspberry Pi 3 model B
- OS:Raspbian GNU/Linux version: 8 jessie(Debian)
- 構成
- 今回はLAN内でのリモート接続を想定して設定をするのでPC、ラズパイ共に同じルータに接続してください。(同じ構成にしたい場合、こちらの記事を参考に)
- 今回はLAN内でのリモート接続を想定して設定をするのでPC、ラズパイ共に同じルータに接続してください。(同じ構成にしたい場合、こちらの記事を参考に)
VNCのセットアップ
VNCをインストール
### tightvncserverのインストール
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install tightvncserver
VNCを有効化
- CLIの場合 - `$ sudo raspi-config` - 『Interfacing Options Configure connections to peripherals』を選択 - 『VNC Enable/Disable graphical remote access to your Pi using RealVNC』を選択- 『<はい>』を選択
- 設定を反映
$ sudo reboot
VNCサーバを起動
- サーバ起動コマンドを実行
$ tightvncserver
- ※ 初回起動時にVNCログインパスワードを設定します
- 接続ポートの生存を確認
VNCはウェルノウンポート 5901番を使用します。
VNCサーバへ接続
- Finder から "サーバへ移動" を選択( コマンド(⌘)+K )
- ラズパイの接続IP(
vnc://[ラズパイのIPアドレス]:5901
)を入力する - 上で設定したVNCログインパスワードを求められる
VNCサーバの自動起動設定
ラズパイ起動時にVNCサーバも同時に立ち上げたい場合、以下の設定をしておきます。
また、今回使用している Raspberry Pi 3 model B のデフォルトの解像度は低すぎて、Macからリモート接続すると画質が一気に悪くなります。なので、ついでに解像度の設定も一緒に記述しておきます。
僕はPCのモニタとして1920x1080 (フルHD)
を使用しているので、設定もこれに合わせます。設定は自分の環境に合わせて変更してください。
- VNCサーバを自動起動させるには
vncboot
というスクリプトを書きます$ sudo nano /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 1920x1080 -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
- 作成したスクリプトに実行権限を付与して自動起動の登録をします
$ sudo chmod 755 /etc/init.d/vncboot
$ sudo update-rc.d vncboot defaults
- 再起動して、VNCサーバが自動起動することを確認
$ sudo reboot
- プロセスと
LISTEN
ポートの確認-
$ ps -ef | grep tightvnc | grep -v grep
- 以下を応答すれば問題なくプロセスが立ち上がっている
-
pi 857 1 0 04:18 ? 00:00:05 Xtightvnc :1 -desktop X -auth /home/pi/.Xauthority -geometry 1920x1080 -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
最後に
今回は、VNCを利用する方法としてtightVNCというソフトウェアをインストールして実行し、VNCクライアント(ホストPC)から接続してGUI利用する方法を紹介しました。
もちろんMacだけでなく、WindowsからもVNCを利用できます。その際はRealVNC, VNCViewerというものを使用する方法などがあります。詳しくは以下のURLを参考にしてみてください。
WindowsからRaspberry Pi 3 Model B+にリモート接続する
RaspberryPiのVNC設定をSSHで完結させる。
それでは 💪