基本的に、私の目標は、100%ポータブルで独立したサーバーを用意することです。私はソーラーパネルとバッテリーを搭載したRaspberry Piを使用して構築しています。4gホットスポットを使用してインターネットに接続します。 SSHサービスとVPNサービスの2つの機能があれば十分です。
これが私の問題です。
私が最初にこのプロジェクトを始めたのは、私の最大の問題はIPローミングになると考えていたからです。自分でダイナミックDNSドメインを設定し、60秒ごとに更新するcronを作成しました。次に、ホットスポットをPiにポート転送しました(ホットスポットは基本的にルーターであり、piにはwifiドングルがあります)。
しかし、パブリックIPを使用してホットスポットルーターに接続できませんでした。その後、すべての4G LTEデバイスは、サブネット上ではるかに大きなNATにIPを受信します。これは、明らかに4Gの新しいプラクティスです。到達可能なパブリックIPを受信するために使用される3Gデバイスです。
基本的に、固有のIPを持たないVPNサーバーに到達する方法が必要です。
VPNサーバーがクライアントとの接続を確立することは可能ですか?逆SSHトンネルのようなものですか?
同様に、1つが接続を受け入れるまで一連のIPアドレス(または動的DNSドメイン)を継続的にポーリングするか、現在接続を「望んでいる」IPのリストを含む別のサーバーをポーリングすることができます(これらのIPは基本的にそのサーバーをポーリングしてVPN接続を要求します)。
私はそれが遅れていることを知っており、クライアントサーバーモデルを壊しますが、私はここで一種の必死です。出来ますか?
ご覧のとおり、システムに接続するのはそれほど簡単ではありません。あなたの問題の本質は、あなたがDNS登録を行うことができさえすれば(サーバーがお互いを見つけるのに適格になります)、あなたのマシン間の実際のIP接続はさらに不可能であることです。
あなたの問題には複数の解決策があります。
最も単純なのは、あるタイプの中央サーバー(パブリック固定IPを使用)があり、その上でVPNサーバーが実行されている場合です。他のクライアントと同様に、rasperry piでは、VPNクライアントのみが実行されます。このサーバーは、ラスペリーと他のデバイス間の中間ゲートウェイとして機能しました。
Raspberry -> Central GW machine <- Your any other system
DNS登録の問題とIP連絡先の問題の両方を解決しました。
ネットワークの観点からは、誰もあなたのラスペリーに接続していません。中央GWに接続されているのはラズベリーだけoutです。
OpenVPNはそのための非常に美しいソリューションです。
よりトリッキーな解決策もあります。たとえば、ラズペリーにクライアントにconnectoutとなんとかして言い、vpnを実行することができます。ただし、クライアントがNATの背後にある場合は機能しませんでした。NATは、特にモバイルネットワークでは、現在非常に一般的です。
または、torを使用して、背後にある中間サーバーを見つけることもできます。はい、torは実際にはクラッカーツールではありません。通常のタスクにも使用できます。しかし、それは本当に信頼できず、かなり遅いです。
オープンホットスポットに接続しているときにRaspberry Piに接続するときにいくつかの問題も発生しました(私の場合はOptimum WiFiでした)( Raspberry Pi 2 @ Optimum WiFiへのSSH-Raspberry Pi Stack Exchange )。
それで、このsshリバーストンネルを使用してRaspberry Pi 2
に入る方法を共有したいと思います。
pi@raspberrypi ~ $ crontab -l | tail -1
@hourly ssh -S alexus -O check XXX > /dev/null 2>&1 ; if [ $? != 0 ] ; then ssh -M -S alexus -fN -R2222:localhost:22 -p 443 XXX ; fi
pi@raspberrypi ~ $
このソリューションでは、ラズベリーにSSHで接続できる別のホストが稼働している必要があります。このソリューションがうまくいかなくても、他の人にはうまくいくかもしれません)
近い将来、openvpnオプションも検討する予定です。
ニキータ、実際にはいくつかの選択肢があります。専用電源でこの方法でRPをセットアップしましたが、ボードに搭載されているのはmifiカードのみです。
最も簡単な解決策は、ISPに連絡して、パブリックまたは静的なNAT IPアドレスを要求することです。ほとんどのワイヤレスプロバイダーがこれを行いますが、課金される場合があります。Verizonは、アカウントごとに500ドルの料金を請求しますが、アカウントのデバイスに必要なだけパブリックIPを設定できますが、他のプロバイダーが課金するかどうか、またどのくらい課金するかはわかりません。
別のオプションは、リバースSSHで貧乏人のVPNをセットアップすることです。これにより、Piはサーバーへの接続を作成し、SSH接続を経由してデバイスに戻ることができます。手順については、この記事を参照してください http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnel/
同様に機能するリモート管理クライアントは多数ありますが、パブリックIPがプライベートNATのIPではなく、Piに接続を確立させる必要があることを覚えておいてください。幸い、これはほとんどのクライアントがホームネットワーク上で動作する方法であるため、多くのソリューションがあります。