ラズパイで外出先からWebカメラをみる

2021.10.20
15分で読了
Raspberry PiVPNWebカメラ

概要

自宅に設置しているウェブカメラを外で見たいと思ったことありませんか?「みてるちゃん」や「360eyes Wifi IP CAMERA」など、自宅のWifiに接続するカメラが外出先で見ることができますので、家族、ペット、防犯に役立てることができます。できる限り安く簡単にその方法を実現したいと思います。

ラズパイで外出先からWebカメラをみる

ラズパイで外出先からWebカメラをみる

必要な物

  • • 自宅のネット環境(Wifi 2.4GHzあればOK)
  • • Webカメラ(Wifi接続のもの)
  • • ラズパイ(Raspberry Pi)

接続の方法として、インターネットVPN(Virtual Private Network)接続という方法で、外部から内部へアクセスします。(セキュリティ的には普通)通常、VPNの設定は専門業者に頼むことによってある程度の費用がかかりますが、今回はラズパイ1個(¥2,000程度)用意し、そのラズパイに無料のソフトウェアをインストールするだけなので、高コスパです。構成から、カメラの表示までみてきましょう。

ネットワーク構成図

ネットワーク構成図

ネットワーク構成図

ネットワーク(外部)からネットワーク(内部・自宅)へ繋ぐためのネットワーク構成図になります。

例えば、外出先でスマホの4G回線から、自宅のネットワークのWebカメラへのアクセスとなります。

まず、自宅のネットワークのルーターを介してラズパイに接続を試みます。ルーターには契約しているプロバイダから、グローバルIPアドレスが割り振られています。(私の場合はNURO光を契約しています)

グローバルIPアドレスは固定ではない契約なので、DDNSサービスである「No-IP」を利用します。このサービスは、ドメイン名でIPアドレスを解決してくれるので、IPアドレスが固定じゃなくてもドメイン名で自宅ルーターにアクセス可能になります。

ただし、IPアドレスが変わったことを「No-IP」に知らせる必要がありますので、ラズパイに「DDclient」をインストールします(後述)。

ラズパイには、VPNの機能である「WireGuard」をインストールします。これにより、VPNの仮想ネットワークが構築されていますので、スマホがそのネットワークに加わるという感じです。

ざっくりこのような構成になります

ラズパイにインストールするもの

インストールパッケージ

インストールするもの

それではラズパイにインストールするものをみていきます。

まず、「WireGuard」ですが、VPN接続するためには必須です。インストールは少し待ってください。

つぎに、「PiVPN」です。直接の機能的には不要ですが、先の「WireGuard」を簡単に設定するために最初にインストールします。

さいごに、「DDclient」をインストールします。こちらは、先のIPアドレスが変更された時に「No-IP」に通知するためにインストールします。

ルーターの設定

ルーター設定

ルーター設定

自宅のルーターにポートフォワーディング設定を行います。

私の場合は、NURO光の「FG4023B」を使用していますので、以下の設定を行います。[インターネット]-[ポートフォワーディング]

その際、ラズパイのプライベートIPアドレスを指定しますが、IPは事前に固定してください。(固定の仕方は他の記事を参考にされてください)

設定画面1

設定画面1

設定画面2

設定画面2

ラズパイの設定

PiVPNをインストール

ラズパイはOSをインストールしてインターネットに接続できる状態にしてください。 (いつか記事をまとめますが、他の方のサイトをご参考ください(˘ω˘))

PiVPNをインストールします。

curl -L https://install.pivpn.io | bash

VPNにアクセスする端末で使用しますためのWireGuardの設定を作成します

pivpn add

手順通りに進めた後、/home/pi/configs/任意の名前.confが作成されます。こちらは後でスマホに転送します

WireGuardをインストール

上記のみだと、WireGuardが起動しない可能性があるため、インストールします。

sudo apt install wireguard

WireGuardの設定ファイルを編集します。

sudo nano /etc/wireguard/wg0.conf

以下の内容に編集します。PostUp とPostDown を追加します。

[Interface]
PrivateKey = そのまま
Address = 10.6.0.1/24
MTU = 1420
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE; iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wlan0 -j MASQUERADE; iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
### begin client01 ###
[Peer]
PublicKey = そのまま
PresharedKey = そのまま
AllowedIPs = 10.6.0.2/32

WireGuardを起動しておきます。

sudo wg-quick up wg0

止めるときはこちら

sudo wg-quick down wg0

起動確認

ip addr
5: wg0: ~~
link/none
inet 10.6.0.1/24 scope global wg0
valid_lft forever preferred_lft forever

上記の通りwg0が表示されていたらOKです。

DDclientをインストール

sudo apt install ddclient -y

DDclientの設定ファイルを編集します。

sudo nano /etc/ddclient.conf
# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
use=web
ssl=yes
protocol=noip
login=アドレス
password=パスワード
No-IPで設定したDNSアドレス

Webカメラの設定

購入した製品によって設定の仕方が異なりますが、独自のアプリをインストールして、自宅のWifiに接続して、アプリで映像をみるまでは同じです。

スマホの設定

App Storeまたは、Google Playより、WireGuardのアプリをインストールします。インストール後はまだ何もしなくて良いです。

先程ラズパイで設定したWireGuardの設定ファイルをスマホにダウンロードします。 ラズパイからGoogleドライブにアップロードして、スマホから設定ファイルをダウンロードするのが一番楽だと思います。

注意!このファイルはとても重要ですので、漏洩しないようにしてください。

スマホにダウンロードできたら、WireGuardのアプリに取り込みます。

WireGuard設定画面

WireGuard設定画面

「ファイル、アーカイブから作成」を選択して、設定ファイルを取り込みます。

Wifiを切って、モバイル通信(LTE, 4Gなど)に変更します。その後、WireGuardアプリから取り込んだ設定をONにします。

Webカメラのアプリを起動し、Webカメラがモバイル通信で見れたら接続完了です。

まとめ

VPN接続で外出先からWebカメラにアクセス完了

Raspberry Pi

PiVPN、WireGuard、DDclientの設定と管理

VPN接続

セキュアなリモートアクセスの実現

Webカメラ

外出先から自宅の監視が可能

重要なポイント

これで外出先から自宅のWebカメラにアクセスできるようになりました。
セキュリティも考慮されたVPN接続で、安心して使用できます。
高コスパで実現できる監視システムの完成です!

家族やペットの見守り、防犯対策に活用してください!

他の記事も見る