あなたのRaspberry Piプロジェクトをブーストする5つのポイント
SSHからポートフォワーディングまで、Raspberry Piでの開発を容易にする技術
あなたはきっとコマンドラインを使える様になっており、NOOBSの設定に困ることもなくなり、ゆっくりながらも確実に、カードサイズのお手頃価格なDIY向きコンピュータ、Raspberry Piについて学んでいることだろう。
関連記事:Raspberry Pi(ラズベリー・パイ)を使ったハイテク・アクアリウム
しかしながら、初心者から中級者レベルに至るまでには、明らかなギャップがある。「Raspberry Piの設定」の様なレベルから、「メディアサーバの構築」のようなレベルをこなせる様になるまでには、事前に理解しておく事が結構ある。ここReadWriteで述べられているのも含め、Raspberry Piのチュートリアルでは、読者がセットアップについてはある程度できると仮定している。
全部のプロジェクトがここで挙げられているテクニックを必要としているわけではないが、これらの手続きを知っておく事で今後必要に迫られた時に慌てずに済むことだろう。初心者レベルを卒業するために、このチュートリアルではいくつかの事前に知っておくべき事を紹介する。
1)SSHの利用
SSHはSecure SHellの略であり、あなたのPCとRaspberry Piとのデータ通信をセキュアに行うための暗号化プロトコルである。プロジェクトによっては、Raspberry Piにモニタとキーボードを接続せずにコマンドライン経由でコントロールすることが必要になってくる。
SSHは現時点で、Raspberry PiのOS、Raspbianに含まれている。よって新しいバージョンのNOOBSを入れているのであれば、別途インストールする必要はない。
SSHを使うにはまずRaspberry PiのIPアドレスが必要になる。Raspberry Piのコマンドラインを立ち上げ、以下を入力する。
sudo ifconfig
3つの項目がでてくるだろう。IPアドレスはその一行目か三行目にでてくる。有線の場合は”eth0″から始まる一行目、WiFiの場合は”wlan0″から始まる三行目だ。
どちらにしろ、”inet addr”のあとに192.168.2.2のような、規定のIPアドレスが表示される。このチュートリアルでは、このアドレスを使用することとする。
PCからRaspberry PiにアクセスするためのIPアドレスはわかった。もしMacを使っているのであればSSHは入っているので、ターミナルを立ち上げて以下を入力する。
ssh pi@192.168.2.2
パスワードを求められる。デフォルトのパスは”raspberry”だ。もし変更しているのであればそれを入力する。これでRaspberry Piにログインできた。
もしWindowsを使っているのであれば一手間必要になる。
PuTTyもしくはその他のWindows用SSHクライアントをダウンロードして、図にあるようにIPアドレスを入力する。ポート番号はデフォルトのままの22でいい。エンターを押すと、ターミナルが立ち上がりログインIDとパスワードが求められるので、入力するとRaspberry Piにリモートログインできる。
2)リモートデスクトップでの操作
ターミナルでの遠隔操作はSSHでいい。しかしGUIでの遠隔操作はできるのだろうか? 幸いにMacでもWindowsでも方法はある。
Raspberry Piの(SSHの)ターミナル上で以下を入力する。
sudo apt-get install xrdp
Xrdpはリモートデスクトップサービスをバックグラウンドで走らせる、WindowsおよびMac上でのデーモンだ。これをRaspberry Piにインストールすると、MacやWindowsからクライアントを通じてアクセスできるようになる。
あなたのPC上で「リモートデスクトップクライアント」みたいな感じでプログラムを検索してほしい。これは全くこの通りの名前というわけではなく、アプリケーションフォルダにも入っていない。
IPアドレスの入力が求められるので入力すると、Xrdpが立ち上がるので、IDとパスワードを入力する。
全て完了すると、Raspberry Piのデスクトップが表示される。
3)固定IPを振る
ステップ1で述べたRaspbery PiのIPで今のところはいいとして、次回以降もルータが同じIPをRaspberry Piに割り当てるとは限らない。つまり同じネットワークセグメント上のコンピュータは、Raspberry PiにどのIPが振られているのかわからないということだ。では毎回”sudo ifconfig”と入力してIPを調べるのではなく、固定でIPを振るにはどうすればいいのか。
例によってifconfigを使う。以下を入力。
sudo ifconfig
書くものを用意し、eth0以降の3つのアドレスを記録する。(#以降はコメントなので、実際の画面には出てこない)
inet addr: 192.168.2.2 # Pi's Current IP Address
Bcast: 192.168.0.255 # The Broadcast IP Range
Mask: 255.255.255.0 # Subnet Mask Address
これの他にゲートウェイとデスティネーションの情報がいるので、以下を入力する。
netstat -nr
次にルータの設定をする(設定方法はルータによるのでマニュアルを参照のこと)。DHCPでデバイスにどのIPが振られているのかを調べ、その他の割り当てられていないIP(例えば192.168.2.2)を選ぶ。ルータはそのアドレスをRaspberry Piのようなデバイスに割り当てることができるだろう。できたならここで完了だ。
できなかったら、Raspberry Piに新しいIPを設定してやる必要がある。エディタで設定ファイルを編集する。
sudo nano /etc/network/interfaces
“iface eth0 inet dhcp”と書かれている行を”iface eth0 inet static”と書き換え、固定IPに設定する。
以下のXXXの部分を先ほど拾った情報に置き換えて入力する。一番上のアドレスが、先ほど割り当てることにした、DHCPで割り当てられていないIPだ。
address 192.168.2.2
netmask XXX.XXX.XXX.X
network XXX.XXX.X.X
broadcast XXX.XXX.X.X
gateway XXX.XXX.X.X
Raspberry Piを”sudo reboot”で再起動し、”ifconfig”を再度入力すると、設定した固定IPが表示されるはずだ。
4)Raspberry Piにポートフォワーディングする
いくつかのプロジェクトでは、Raspberry Piの特定のポートにフォワーディングを行う必要がある。ポートとは、コンピュータが持つ特定の受け入れ窓口のことだ。コンピュータがルータ越しに通信を行う際、場合によってポートフォワーディングが必要になる。いわば電話の内線番号を入力するようなものだ。
ポートフォワーディングは、Raspberry Pi Webサーバ、VoIPや、P2Pダウンロードのようなプロジェクトで使われる。ポート番号は65000あまりの中から選択できるので、Rapberry Piが行う通信ごとに異なるポート番号を割り当てることができる。
いくつかのポート番号はデフォルトで特定の用途に割り当てられている。80番はHTTP、21はFTP、1194はVPNサーバといった具合だ。多くの場合はデフォルトの割り当てで大丈夫だ。
ポートフォワーディングの設定はルータによって全く違うので、ポートフォワーディングが何をするものか以上のチュートリアルは難しい。ルータの説明書をよんで、設定を行ってほしい。
以下はメジャーなルータでのポートフォワーディングの設定になる。
- Belkin
- Netgear
- Linksys
5)インターネット上で固定IPを持つ
もしISPから固定のグローバルIPが割り当てられているのであれば、このセクションは関係ない。
ここまでで、Raspberry Piに内部ネットワーク上の固定IPを割り当てる事ができた。これで内側セグメント上のコンピュータはRaspberry Piを特定することができるということだ。しかしインターネットに接続するようなプロジェクトの場合はどうだろう? Raspberry PiでWebサーバを立ち上げる様な場合、外部からRaspberry Piを特定する必要があるので、固定に見えるIPを振らなければならない。
ここで「固定に見える」というのは、擬似的な固定IPを割り当てるからだ。例によってISPから割り当てられるIPは毎回変わる。これから書くスクリプトは、外部からRaspberry Piにアクセスがあった時に、「Raspberry Piのアドレスが変わったので新しいアドレスにリダイレクトします」と宣言するものだ。
これを実現するために動的DNS(DDNS)と、Raspberry PiがDDNSと直接やり取りするためのクライアント、DDClientを使う。
まずDNS Dynamicのような無料の動的ホストサービスにサインアップする。説明どおりに手続きを進め、Yourserver.dnsdynamic.comみたいなネームサーバを新しく作る。
次にRaspberry Piのターミナルから以下を入力し、DDClientをインストールする。
sudo apt-get install ddclient
DDClientの設定ファイルをセットアップしたネームサーバに応じた内容に編集する。
sudo nano /etc/ddclient/ddclient.conf
サービスによって設定が若干異なるのだが、DDNSサービスのWebサイトにどのような設定をしたらいいのかは書かれてるはずだ。DNS Dynamicの標準的な設定はこのようなものになる。コピペするといい。
このファイルがあるからといって、ISPはRaspberry Piに割り当てているIPの更新をやめたりはしない。このスクリプトの先頭行にdaemonの行を足して、IPアドレスに変更があったかどうかの定期チェックを行う必要がある。
daemon=600
# 600秒ごとにチェックする
この例では10分ごとにチェックを入れている。まぁ適正値だろう。毎秒ごとにチェックを入れるようのは、サーバに対するスパミングになるので妥当ではない。Ctrl+Xで設定ファイルをセーブし、エディタを閉じる。
その後、ターミナルから以下を入力する。
ddclient
これでRaspberry Piが動いている間、デーモンは動作し続ける。
再起動した時は、再び上記のコマンドでデーモンを走らせる。
これであなたのRaspberry Piの設定は完了で、更に難易度の高いチュートリアルに取り掛かれるようになった。大いに学び、楽しんでほしい。
関連記事:Raspberry Pi(ラズベリー・パイ)でここまで出来る!12のクールな使い方
Lauren Orsini
[原文]