Javaで内蔵NATをどうやって実現するか
内線の外部アクセスは、NgrokやFrp、Sunnyなどのオープンソースツールを使用することで実装できます。
- Ngrokを使用する:
- Ngrok(https://ngrok.com/)をダウンロードしてインストールします。
- Ngrok公式ウェブサイトでアカウントを作成し、ログイン。
- ターミナルまたはコマンドラインにて、`ngrok authtoken [あなたの認証トークン]`を実行します。認証トークンに、Ngrokアカウントのトークンを置換します。
- ngrok tcp [ローカルポート]を実行し、ローカルポートを自分が経由させたいローカルサービスのポート番号に置き換えます。
- Ngrokはインターネット上のURLを作成し、それを使うことでローカルサービスにアクセスできます。
- Frpを使う:
- Frpをダウンロードしてインストールします(https://github.com/fatedier/frp)。
- Frpサーバーとクライアントを配置し、サーバー側の設定ファイルに、連携させるローカルサービスのポート番号を指定してから、設定ファイルをサーバーにアップロードします。
- サーバー上でFrpサーバープログラムを実行し、サーバー側のファイアウォールまたはルーター上のポートを開いておいてください。
- クライアント側で Frp クライアントプログラムを実行し、クライアントのファイアウォールやルーター上のポートが開いていることを確認する。
- クライアントの設定ファイルでサーバーのIPアドレスとポート番号を指定し、設定ファイルをクライアントにアップロードします。
- クライアントとサーバの間で接続が確立されると、サーバのグローバルIPアドレスとポート番号を指定することで、ローカルサービスにアクセスできます。
- サニーを使用する:
- Sunny (https://github.com/wangyi2005/sunny)をダウンロードしてインストールします。
- ターミナルまたはコマンドプロンプトから、sunny client -l :[Local_Port] -r [Public_IP]:[Public_Port]を実行。Local_Portは、透過させたいローカルサービスのポート番号に置き換え、Public_IPとPublic_Portは、グローバルIPとポート番号に置き換えてください。
- パブリックインターネット上でSunnyサーバを起動し、ファイヤウォールまたはルータ上のポートを開く。
- パブリックIPとポート番号を通じてローカルサービスにアクセスできます。
これらのツールはどれも使い方が簡単なので、自分のニーズに合ったものを選んで実装できます。