やりたかったこと
- raspberry piに外部から接続したい。
- 仕事中、頻繁に家族からクレームが来るのでブラウザで自宅内の無線アクセスポイントを再起動するために繋ぎたかった。
- APについては以前ルータとして使用していたものをAPモードに変更して中継機にしている。
環境
ログイン元:Mac OSX 10.10.5 Yosemite
ログイン先:Raspberry Pi 1 model B Linux raspberrypi 3.2.27
準備とインストール
vncサーバーを入れましょう
$ sudo apt-get update
$ sudo apt-get install tightvncserver
この時リモートからログイン中で、
apt-getがSetting locale faildを吐いた場合は、
ログイン元から環境変数を送っている可能性があるので、
こちらを参照ください。
http://qiita.com/komacchi/items/9aee06fe50d3114fde31
vncserver起動
$ tightvncserver
New 'X' desktop is raspberrypi:1
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log
起動すると、初回はパスワードを聞かれるので入力し、
ログファイルも書き出されるのでここでportの確認をします。
$ cat /home/pi/.vnc/raspberrypi:1.log
.
.
.
25/11/15 05:58:07 Listening for VNC connections on TCP port 5901
.
.
.
ここ。TCP port 5901
5900番台を使用するので、
New 'X' desktop is raspberrypi:1
これの:1を追加したものがポート番号になります。
つまり、:1なら5901、:2なら5902です。
ちなみに、上記だとログインのたびにサーバー起動のコマンドが必要になりますが、
ラズパイの起動時にvncserverをサービスとして動作させておきたい場合はまた別の設定があります。/etc/rc.localにゴニョゴニョ書きますが、今回は常に起動させておきたくないので省略。
ポートフォワーディング
外部から接続する必要があるので、ルーターのポートを開放します。
ルーターの設定については割愛します。
今回の場合で言うと、TCP 5901をラズパイのIPアドレスに向けます。
mydnsなどのDDNSサービスを使用しているとしたらアドレスとしては
hoge.mydns.jp:5901
のような感じになります。
VNCクライアント
WindowsであればRealVNCなどが良いでしょう。
今回はOSXなので、クライアントは不要です。Finderから接続できます。
Finderから、メニュー→移動→サーバーへ接続 もしくは
command + Kでサーバーへ接続画面が出ます。
ここでアドレス欄に
vnc://hoge.mydns.jp:5901
で接続します。
パスワードを聞かれたら、初回起動で設定したパスワードを入力します。
接続ができたら、すでにvncserverは起動させているのでこのような画面になります。
chromium browserを入れる
Raspbian標準のブラウザはまったくもって使えないのでChromiumを入れます。
$ sudo apt-get install chromium-browser
そしてこんな感じになります。
これでブラウザ上から今回の目的であるAP設定画面に入れます。
実際のところ、ラズパイ上でGUI動作させようとすると重たすぎるので目的があれば、という感じでしょうか。
目的が達成できたら、vncserverを終了します。
tightvncserver -kill :1
とコマンド入力し、下記ログが出たら終了です。
Killing Xtightvnc process ID xxxx
おつかれさまでした。