概要
Raspberry Pi 4でrestAPIを受け付けるサーバを構築します。
ローカルネットワーク内でのサーバー構築が終わって色々と動作ができるようになると、「やっぱり家の外からでも何かを動かしたい」となることも多いと思います。そんなときに必要となるのが「ポート転送」の設定です。
サーバ構築はこちらを参照
[Raspberry Piで簡単IoT] サーバ構築編~tornadoの雛形~
ポート転送の設定もとても簡単です。まだ設定していない人は、ちょちょっと設定してしまって、家の外からでも色々な家電やiot機器操作を出来るようにしてしまいましょう(エアコン付けたり電気消したり・・)
ポート転送の大まかな手順
[Raspberry Piの設定]
①raspberry piのipアドレスを固定する。
②raspberry piのmacアドレスを調べる。
[ルーターの設定] (ソフトバンク光を例に説明します)
③IPアドレスの固定割当を設定する。
④ポート転送を設定する。
⑤グローバルアドレスを調べる。
[テスト]
⑥Postmanからグローバルアドレスにpostしてテストする。
流れはこんな感じです!順番に説明していきます。
手順の詳細
①raspberry piのipアドレスを固定する。
$sudo nano /etc/dhcpcd.conf
下までスクロールしていって、
interface wlan0
static ip_address=192.168.3.**/24
static routers=192.168.3.*
static domain_name_servers=192.168.3.*
の4行を付け加えます。**には任意の数値。*はルータのアドレスを入れてください。(こちらはwifiを想定しています。有線の場合は、wlan0をeth0に読み替えてください。)
終わったら、
ctrl + x
で、保存しますか?と聞かれるので y と答えて、保存ファイル聞かれるのでenterと答えて完了です。終わったら、
$sudo reboot
で再起動しましょう。
②raspberry piのmacアドレスを調べる。
$ifconfig | grep 'ether'
で調べるとmacアドレスが表示できます。2つ出てくるので、wifiの場合は下にdてくる方のアドレスをメモしてください。
普通に、ifconfigで調べても大丈夫です。
③IPアドレスの固定割当を設定する。
③-⑤の手順についてはこちらを見ながらやると良いです
https://www.softbank.jp/support/faq/view/19680
ルータ設定のページに飛びます。
触った記憶がなければ、初期値は以下です。
ユーザー名 : user パスワード : user
手順に沿って、raspberry piのIPアドレスとMACアドレスを入力します(①で設定したipアドレス、②で調べたmacアドレスです。)
④ポート転送を設定する。
手順に沿って、プロトコルと、WAN側/LAN側両方のポート番号を設定します。
プロトコルは用いるプロトコルを選びます。(TCP/UDPにしとけば無難です)
WANとはWide Area Networkの略です。つまりWAN側ポート番号とは、外側から通信を受けるときのポート番号です。任意の番号(4桁)を設定してください。
LANとはLocal Area Networkの略です。つまりLAN側ポート番号とは、内側(宅内)に通信を転送するときのポート番号です。RaspberryPiで構築したサーバで設定したポート番号と合わせてください。
サーバ構築時のポート設定はこちらを参考にしてください。
[Raspberry Piで簡単IoT] サーバ構築編~tornadoの雛形~
⑤グローバルアドレスを調べる。
ポート転送設定ページの設定/接続情報から確認ができます。
または、以下のページからも確認ができます。
https://www.cman.jp/network/support/ip.html
⑥Postmanからグローバルアドレスにpostしてテストする。
最後は、グローバルアドレスにhttpリクエストを送ってテストしましょう。
簡単にhttpリクエストを試せるのは、chromeアプリにもなっているpostmanだと思います。
最後に
こんな感じでポート転送の設定ができます。これで、家の外からでも遠隔でRaspberry Piを操作できるようになります。つまり、Raspberrry Piを通じて宅内の電気や家電なども操作できるようになりますので、色々と遊べるようになるかと思います。グローバルアドレスやポート番号は流出すると危険なのでそこは気を付けてくださいね。
その他のリンクはこちら★