ポート転送を使用して、ローカル PC との間のすべてのトラフィックを AWS インスタンス経由でルーティングすることは可能ですか?

ポート転送を使用して、ローカル PC との間のすべてのトラフィックを AWS インスタンス経由でルーティングすることは可能ですか?

私は、PuTTY のポート転送機能を利用して、自宅の PC (Windows 11 で実行) から、プロビジョニングしてセットアップした AWS Lightsail インスタンス (Ubuntu LTS 20.04 で実行) への接続を確立しようとしています。その目的は、自宅の PC 経由でインスタンスに利用可能なインターネット接続を使用することです。これは、インターネットにアクセスするためにプロキシ サーバーまたは VPN を使用するようなものです。

次のパラメータを想定します。

  • AWS インスタンスのパブリック IP アドレス:x.x.x.x
  • AWS インスタンスのプライベート IP アドレス:Y.Y.Y.Y
  • SSH ポート:22
  • 6088アカウントレベルとインスタンスレベルの両方でポートを開きました
  • ローカル PC のパブリック IP アドレス (ルーター IP):a.a.a.a
  • ローカル PC のプライベート IP アドレス:b.b.b.b

これまでの私の理論的な理解では、リモート Lightsail インスタンスのポート 6088 を自宅の PC の対応するローカル ポート 6088 にリモート ポート転送するには、PuTTY を使用する必要があります。

自宅の PC のプロキシ設定を に設定した後、自分の PC からリモート インターネットにアクセスしようとしましたが、失敗しました。localhost:6088当初は VNC クライアント サーバー スキームを介してリモート インスタンスにアクセスする予定でしたが、これもうまくいきませんでした。

少しグーグルで検索してみたところ、AWS では VPN ネットワークの設定専用のインスタンスも提供しており、これらによって私が検討しているようなユースケースが実現できることが分かりました。

正しい方法を提案してくれる人はいますか?

答え1

  1. 転送モードが逆になっています。「リモート」転送では、サーバーがリスナーになり、サーバー アドレス:ポート (サーバー内からは localhost:6088、他のホストからは serverip:6088 など) への接続が行われ、クライアント システムに転送されます。

    あなたがやろうとしているのはそれとは全く逆のことなので、SSHが「ローカル」転送モードのようなものになるはずです。クライアントポート 6088 のリスナーです (AWS サーバーのファイアウォール ルールは関係ありません)。

  2. 「リモート」モードと「ローカル」モードはどちらも固定機能です。つまり、アプリが接続先を指定することはできません。常に指定された宛先にのみ転送します。たとえば、ローカルポートが6088でリモート宛先がgoogle.com:443の「ローカル」転送がある場合、localhost:6088 への接続は google.com:443 に中継され、他の場所には中継されません。

    (これはまた、「ローカル」または「リモート」であってもだった適切なモードでは、ポートをプロキシ構成 – 実際のサービスであるかのように直接使用します。

    代わりに、PuTTY の 3 番目のモードである「動的」転送が必要になります。これは「ローカル」と同じカテゴリですが、PuTTY を SOCKS プロキシのように動作させます。ポート 6088 で「動的」転送を使用すると、ブラウザを設定して localhost:6088 を SOCKS プロキシとして使用し、AWS サーバーを介して参照できるようになります。

  3. PuTTY は SOCKS プロキシとしてのみ機能し、Firefox と Chrome は SOCKS を話すプロキシの使用方法を認識しますが、他の多くのアプリは認識しません。したがって、「HTTP CONNECT」はサポートしていても SOCKS をサポートしていないアプリは比較的よく見られます。

    PuTTYにはそれをエミュレートする機能がないので、本物AWS サーバー上に HTTP プロキシ サーバー (例: Squid または Privoxy) を配置し、"ローカル" 転送を使用して SSH 経由でアクセスします。(または、Tor が実行していた/実行していたように、Privoxy/Polipo をローカルで実行し、PuTTY の "動的" ポートを指定して、'ブラウザー→HTTP→Privoxy→SOCKS→PuTTY→SSH→AWS' と移動します。)

  4. 上記のすべては TCP トラフィックのみを処理できます。何らかの目的で UDP が必要な場合 (またはpingプロキシを使用する場合)、これらのプロキシ タイプはいずれも機能しません。

    その場合、PC と AWS サーバーの間に VPN トンネル全体を設定する必要があります。(SSH は Windows ではこれを実行できず、一般的にはあまり適していません。代わりに、OpenVPN、Tailscale、WireGuard などを使用します。) この目的のために特別な種類のサーバーは必要ありません。

    (VPN の設定に適さないサーバーの種類があります。具体的には、一部のプロバイダーが提供する非常に安価な「VPS」です。これらは OpenVZ コンテナーを偽装しただけのものですが、通常は少なくとも OpenVPN をホストできます。AWS にはそのようなものはないと思います。AWS の VPS はすべて完全に機能する仮想サーバーです。)

関連情報