
そこで、私は複数のRaspberry Pi 4B(8)をイーサネットケーブルでFritzBoxに接続しています。すべてのPiは設定でSSHが有効になっており、「ssh」と入力することでローカルネットワーク内でSSH接続が可能です。[メールアドレス]「ルーターに dynDNS サービスを設定したので、正確な IP アドレスを知らなくてもルーターにアクセスできます。これも問題なく機能しました。」
次に、FritzBox の「アクセスを許可」オプションを使用して、ポート 22 と 3389 を RPi の 1 つに転送しました。これで、その RPi で SSH と MS リモート デスクトップを使用できるようになりました。
問題: 他のすべての RPi にはヘッドレス Raspberry OS Lite がインストールされており、それらにもインターネットからの SSH が必要です。しかし、最初の RPi がすでにポート 22 を使用しているため、ポート 22 で他の RPi を使用することはできません。
ポート リダイレクトと呼ばれる方法があり、インターネットで何度も読んだことがあります。しかし、それを簡単に説明してくれる人は誰もいませんでした。そのため、これを行う方法を見つける必要があります。
ルーター
|-> 外部ポート 2200 -> Pi Nr. 0 のポート 22
|
|-> 外部ポート 2201 -> Pi Nr. 1 のポート 22
|
|-> 外部ポート 2202 -> Pi Nr. 2 のポート 22
|
|-> 外部ポート 2203 -> Pi Nr. 3 のポート 22
でも、それがどのように機能するのか全く分かりません ;D
これを実現するには、RPi のどの設定ファイルを編集するか、またはルーターのどの設定を変更する必要がありますか?
回答ありがとうございます:)
(追記: 私はネットワーク初心者です。趣味で PC 用の Java ソフトウェアや Discord ボットを 2 年ほどコーディングしてきました。でも、インターネットの仕組みがまったくわからないので、学びたいと思っています XD)
答え1
ポート リダイレクトと呼ばれる方法があり、インターネットで何度も読んだことがあります。しかし、それを簡単に説明してくれる人は誰もいませんでした。
ほとんどのルーターでは、ポートを変更する必要があるかどうかに関係なく、内部 IPv4 ホストへの外部アクセスを許可することは文字通り同じ機能です。Raspberry Pi にプライベート IP アドレスがある場合、ルーターはいずれにしても NAT を実行する必要があるため、「ポート リダイレクト」はその一部であり、実際には別のものではありません。
あなたの場合、FRITZ!Box では、同じ「アクセスを許可」セクションで「その他のアプリケーション」を選択すると、異なる「外部」ポートと「内部」ポートを入力できるようです。
スクリーンショットからGoogleで見つけたこれは:
- 用途: [その他の用途]
- プロトコル: [TCP]
- ポートからデバイスへ: [22] から [22]
- 外部から要求されたポート (IPv4): [2201]
(このフィールドに IPv4 固有というラベルが付いているのは、IPv6 ではルーターのアドレスではなく Pi 自身のアドレスに直接接続するため、「外部」ポートと「内部/デバイス」ポートが区別されないためです。)
これを実現するには、RPi のどの設定ファイルを編集するか、またはルーターのどの設定を変更する必要がありますか?
通常は1つまたは他には、あなたが望むものに応じて選択してください。
ルーター |-> 外部ポート 2200 -> ポート22円周率0 |-> 外部ポート 2201 -> ポート22円周率1 |-> 外部ポート 2202 -> ポート22円周率2
これはおそらく「ポート リダイレクト」と呼ばれるものです。ポートを変換するにはルーターが必要ですが、Pi 自体に変更を加える必要はありません。
これは一般的に IPv4 に特有のものです。IPv6 でも技術的には可能ですが、「避けるべき」ものと考えられています。(これは主に IPv6 ではそれぞれあなたのPiは独自の外部アドレスなので、ポート 22 の衝突問題は意味をなさないでしょう。
FRITZ!Box では、これは、すでに使用しているのと同じ「アクセスを許可」ページの「その他のアプリケーション」オプションの下に隠されているようです。
ルーター |-> 外部ポート 2200 -> ポート2200円周率0 |-> 外部ポート 2201 -> ポート2201円周率1 |-> 外部ポート 2202 -> ポート2202円周率2
これにはルーターからの書き換えは必要ありません (IPv4 と IPv6 の両方で同じように動作します) が、Pi 上の SSH サービスが対応するポートをリッスンする必要があります。
Linux では、これは
Port
オプションです/etc/ssh/sshd_config
。おそらく、デフォルトのポート 22 とカスタム ポート 2200 の両方に 2 回追加する必要があります。
あなたできたもちろん両方を実行します。たとえば、外部ポート 2200 を Pi ポート 3300 に書き換えますが、これは不要です。
また、ないssh -J
他の Pi に外部からアクセスできないようにします。代わりに、 0 番目の Pi を介してすべての Pi に接続するためにを使用できます(例: ) ssh -J public.ip lan.ip.pi2
。