Vpnクライアントのポートフォーワード

私のVPNプロバイダーはポートフォワーディングを許可しています。Firewalla(ルーターモードにて)をWireGuardまたはOpenVPNクライアントとしてVPNプロバイダーに接続できます。その後、VPNプロバイダーポータルでフォワードしたいポートを指定します。では、その着信のポートフォワーディングを内部ネットワーク上の自分のデバイスにどうやって向ければいいでしょうか?名前やIPを使うのは問題ありません。GUIのルート機能を使ってるのでしょうか?

ルータからそのポートを公開する必要はなく、しない方が良いです。これはVPNサーバー側で行うもので、トンネルを通じて全てが行われるため、特別なことは必要ありません。

そうですね、それは理解しています。ただ、論理的にはVPNトンネルから正しいホストにインバウンドを向ける方法が必要です。つまり、FirewallaがVPNクライアントとして動作している場合(ネットワーク知識が乏しくてすみません…)、そのVPN接続をFirewallaグループに割り当てます。そのグループ内で、外部からのポート(VPNトンネル経由の)を特定のクライアントに向けたいのです。

どうやってこれを実現すれば良いでしょうか?

または、単純に、VPNクライアントを一台のデバイスのみに有効にした場合、これがルーティングの変更を必要とせずに済むのなら、それはそれで簡単です。理想的には、そのVPNに接続されたデバイスのグループを作りたいのですが、もしそれが非常に面倒だったり不可能だったりするなら…

いいえ、これはトンネル(例:AirVPNを通じて)を使ったサービスホスティングのためです。これにより、私のメインISPリンクから分離されていると論理的に区分されます。

なるほど、どちらでも問題ないはずです。サーバーがポートフォワーディングされている同じポートでリスニングしていることを確認してください。複数のサービスがある場合はリバースプロキシを使う必要があります。

以下はPIAを例にした基本的な例です(重要ではありません)。サーバーが起動して動作していると、VPNのIPとポートにアクセスでき、それがサーバーに到達します。

admin@raspberrypi:~$ piactl get portforward
49050
admin@raspberrypi:~$ curl icanhazip.com
181.214.xxx.xxx
admin@raspberrypi:~$ python3 -m http.server 49050 サーブ中:HTTPが209.0.0.0のポート49050で稼働中...
xx.xxx.xx.xxx - - [06/Oct/2023 10:46:46] "GET / HTTP/1.1" 200 -
xx.xxx.xx.xxx - - [06/Oct/2023 10:46:49] "GET / HTTP/1.1" 200 -
xx.xxx.xx.xxx - - [06/Oct/2023 10:46:49] "GET / HTTP/1.1" 200