web-dev-qa-db-ja.com

VPNなしでプライベートIPを使用してLinuxサーバーに到達する

パブリックIPアドレスを取得できない、またはVPNアクセスを設定できないネットワークで作業しています。ローカルサーバーとリモートクライアントの両方がアウトバウンドリクエストを行うクラウド内の仲介者を使用して、ローカルサーバーとリモートで通信できる方法はありますか?ローカルサーバーが数秒ごとにパブリック仲介(EC2)にリクエストを送信して、リモートクライアントがローカルサーバーとの通信を待機しているかどうかを確認する場合、パブリックIPがないことは問題ではありません。その時点で、離れた場所にいるクライアントからリクエストを送信し、パブリック仲介を介してサーバーにSSH接続することもできました。このようにして、クライアントとサーバーの両方が、ローカルネットワークに変更を加えることなく、プライベートIPから発信できるアウトバウンド要求を開始します。明るいアイデアはありますか?

7
Jonathan

この「クラウド」エンドポイントに対してリバースsshトンネルを開いたままにしておくことができます。

ボックスAがデスクトップ、ボックスPがプライベートIPを持つサーバー、ボックスCがクラウドサーバーであると仮定します。

pで、トンネルを開きます。

P% ssh C -R 2200:localhost:22

そのセッションを実行したままにします。

後でAから接続するには:

A% ssh C
C% ssh localhost -p 2200
P%    # you're now logged into P

これは、PからCへの最初のsshセッションを誰も中断しない限り機能しますが、中断しない限り機能します。

8
MadHatter

私は「アクセス可能なサーバーを介したトンネル」を何度も実行しました。しかし最近、IPv6を使用する方がはるかに簡単であることがわかりました。 Miredo をインストールする(またはWindowsでTeredoをアクティブ化する)だけで、グローバルにアクセス可能な独自のIPv6アドレスを取得できます。変更される傾向があるので、ダイナミックDNSを設定すれば、設定は完了です。

2
Javier

ntopからn2n を試して、ファイアウォールを変更せずに接続を確立することができます。

1
ewwhite

MadHatterによって投稿されたsshソリューションが最も簡単なソリューションだと思います。また、「VPNなし」の意味によっては、プライベートIPを備えたマシンにOpenVPNクライアントをセットアップし、中間にOpenVPNサーバーをセットアップできる場合があります。 OpenVPNクライアントは、仲介者への発信UDPトラフィックのみを提示しますが、仲介者にアクセスして、トンネルを介してプライベートマシンにフルアクセスできる必要があります。さらに言えば、中間で適切なOpenVPNサーバー構成を使用すると、リモートワークステーションを別のOpenVPNクライアントとして構成でき、サーバーに接続するだけでプライベートマシンを透過的に確認できます。

1
cjc