私は離れた場所にあるルーターの後ろにビデオ監視システム(プライベートIPを備えたIPカメラの束)を持っています。その場所で利用できる唯一のISPは、3G/4G USBドングル(基本的にはモバイルインターネット)を提供してくれました。どうやらこのドングル(ルーターに接続する)はそれ自体でルーティング/魔法を実行する(そして構成できない)ので、ルーターを使用してポート転送を行うことはできません(少なくともそれは役に立ちません)。つまり、カメラはインターネットにアクセスできますが(情報をプッシュできます)、インターネット経由で直接アクセスすることはできません(つまり、基本的にライブフィードはありません)。
低電力のコンピューター(この質問ではソフトウェアはそれほど重要ではありませんが、Linuxを使用します)をIPカメラと同じサブネットに配置することでこれを回避することを考えています。このコンピューターをAと呼びましょう。また、インターネット経由で公的にアクセスできるVPSをどこかにレンタルしています。これをBと呼びましょう。
この設定により、ライブフィードの問題を回避できるはずだと思います。少なくとも概念的には、AにBへのトンネルを開かせれば、Bを介してAのネットワークにアクセスできるはずです。
上記の動作を前提として(理由はわかりませんが、..それが私が求めている理由です)、できるだけ大騒ぎせずに上記を達成できるシステムをお勧めできますか?つまり、AをVPNクライアント、BをVPNサーバーとしてVPNを設定する必要があります。それなら、カメラを見たい人は、BにインストールされているVPNサーバーに接続するだけですか?
これでうまくいくと思いますが、カメラをチェックしたい場所からすべてのコンピューターにVPNを設定するよりも簡単な方法があるかもしれません。
私はソフトウェアに直接興味はありません(それが存在すると確信しており、それを構成することができます)。
理想的な状況は、(たとえば)ポート8080でBに接続し、トラフィックがBからトンネルを介してAに自動的にルーティングされ、その時点でAがカメラ「1」から取得したデータをその接続を介してフィードすることです。 ;次に、カメラ「2」から8081など。
VPSがLinuxも実行していると仮定すると、Bがゲートウェイとして機能するAからBへのSSHトンネルをいくつかセットアップします。そうすれば、IPカメラ1のIPに対応するポート8080でリッスンするようにBに指示できます。
したがって、Aボックスから、これらのパラメーターを使用してsshを実行します。ssh -nNT -R 8080:ipcam1:<ipcamport> -R 8081:ipcam2:<ipcamport> <VPS IP>
うまくいけば、VPSには静的IPアドレスがあります。
また、SSHデーモンを変更してGatewayPorts
を有効にし、他のコンピューターがBを介して接続してAに到達できるようにする必要があるため、VPSを完全に制御できることを願っています。
Debianでは、GatewayPortsオプションは/etc/ssh/sshd_config
で指定されています。
そのファイルの最後にGatewayPorts yes
を追加するだけで十分であり、変更を有効にするにはsshデーモンを再起動します。
システムにssh
がインストールされている場合、3G/4Gルーターの背後で、このシステムから3G/4Gルーターの外部にある別のシステムにSSHで接続し、逆SSHトンネルを設定できます。
このトンネルにより、外部マシンのport @ Hostにアクセスできるようになり、3G/4Gルーターの背後にあるport @ Hostにアクセスできるようになります。
$ ssh -f -N -T \
-R 8080:cam1:<cam's port> \
-R 8081:cam2:>cam's port> \
<hostname of external system>
これらの質問を参照して、ルーターの背後にあるsshサーバーがローカルホスト以外のポートにアクセスできるようにしてください。この機能は、sshd_config
内のGatewayPortsと呼ばれます。
次のタイトルの2番目のリンクを必ず読んでください: ssh to private-ip 、私はあなたが望むことをする方法とGatewayPorts
などをセットアップする方法とテストする方法を非常に詳細にカバーしますセットアップ全体。