読者です 読者をやめる 読者になる 読者になる

きょーちか実験室

Raspberry Piで遊んだり、ブログのアクセス解析したり

ChromebookからRaspberry PiへVNCでリモート接続する方法

Raspberry Piで遊ぼうにも、ウチにはちょうどいいサイズのディスプレイがないために作業が面倒になってしまうという課題がありました。

Raspberry Piにちょうどいいディスプレイも探してみたのですが、「いつも使っているノートパソコンからリモート接続できるといいな」と思い、設定してみました。今回はそのメモです。

ちなみに私の家にはWindowsMacもなく、Chromebookのみです。Chrome OSからRaspberry Piへの接続方法をまとめます。

 

f:id:KyoChika:20170117065700p:plain

 

Raspberry Piへリモート接続する方法

参考にしたのはこちらのサイト。

一部つまづいた箇所があったのでメモしていきます。

 

yamaryu0508.hatenablog.com

 

VNCサーバーのインストール

まずはVNCサーバーをインストールします。

 

VNCとは、ネットワークを通じて別のコンピュータに接続し、そのデスクトップ画面を呼び出して操作することができるリモートデスクトップソフトの一つ。

VNCとは|Virtual Network Computing − 意味 / 定義 / 解説 / 説明 : IT用語辞典 

 

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

 

次にVNCサーバーの設定です。

パスワードの入力を求められますので忘れづらいのにしておきました。 

 

$ tightvncserver

 

VNCサーバーの自動起動

これでVNCサーバーの設定は一応出来たのですが、このままではRaspberry Piを起動する度にコマンドを打たないとVNCサーバーが起動しません。面倒なのでOSの起動と同時にVNCサーバーも自動起動させる設定を行います。

 

$ sudo vi /etc/init.d/vncboot

 

ファイルの編集を行います。ここでは今まで参考にしていたサイトの方法ではうまくいかなかったので、別のファイルを作成しました。

 

#! /bin/sh
# /etc/init.d/vncboot
 
### 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
 
USER=root
HOME=/root
 
export USER HOME
 
case "$1" in
 start)
   /usr/bin/vncserver :1 -geometry 1280x800 -depth 24
   echo "Starting VNC Server."
   ;;
 
 stop)
   /usr/bin/vncserver -kill :1
   echo "VNC Server Has been stoped."
   ;;
 
 *)
   echo "Usage: /etc/init.d/vncboot {start|stop}"
   exit 1
   ;;
esac
 
exit 0

 

どうやらはじめに記述している

#! /bin/sh
# /etc/init.d/vncboot

の位置がファイルの先頭にないとダメだったようです。

 

ファイル編集モードをEsc、:w、:qで離脱して、以下のコマンドを打ちます。ファイルの実行権限を変えるために行うそうです。最後に再起動を行って自動起動設定は終了。

 

$ sudo chmod 755 /etc/init.d/vncboot
$ sudo update-rc.d vncboot defaults
$ sudo reboot

 

再起動後、うまくVNC自動起動しているかを確認するために以下のコマンドを打ちます。

 

$ netstat -nlt

 

VNCサーバーように開けたポート5901がLISTENになっているので、成功のようです。

 

VNCクライアントから接続

次にクライアントであるChromebook側の準備です。Chromeブラウザしか持たないChrome OSでもリモート接続できるんですね。以下のアプリをダウンロードします。

 

VNC® Viewer for Google Chrome™ - Chrome Web Store

 

Raspberry Piに戻ってIPアドレスを調べてみます。

 

$ ifconfig

 

私の環境では192.168.24.14だったので、ChromebookVNCアプリから192.168.24.14:1に接続してみます。

 

ここで、はじかれました…

 

Raspberry Piファイアウォールを無効化する

色々調べていく内に、Raspberry Piから自分にPingを打っても通らないという現象になっていることに気付きました。

 

ping: icmp open socket: 許可されていない操作です

 

Pingが通らない現象について調べていくとファイアウォールが関係している可能性が高いとわかり、とりあえずファイアウォールを無効にして再チャレンジしてみることに。ファイアウォールの無効手順はこちらのコマンドを打ちました(参考にしたのはコチラ

 

$ sudo ufw reset
$ sudo ufw disable

 

これでChromebookから再接続を試みると、つながりました!

 

まとめ

ファイアウォールにつまづくことって結構あって、しかも気づきづらいので割と困ります。何かいい方法はないものか…

今回はとりあえずつながりましたが、IPアドレスの固定化やホスト名での接続をしないといつかはつながらなくなりそうだし、ファイアウォールも部分的な解除にしておかないとセキュリティ的に危なそうです。早めに対応したいです。