
因此,我有多個 Raspberry Pi 4B (8) 透過乙太網路電纜連接到我的 FritzBox。所有 Pi 都在其設定中啟動了 SSH,並且可以透過鍵入「ssh」在本地網路中使用 SSH[電子郵件受保護]「。我為我的路由器設定了 dynDNS 服務,這樣我就可以存取它,而無需知道確切的 IP 位址。這也很好用。
然後我使用 FritzBox 的「允許存取」選項將連接埠 22 和 3389 轉送到其中一台 RPi。現在我可以在該設備上使用 SSH 和 MS 遠端桌面。
問題:所有其他 RPi 都安裝了無頭 Raspberry OS Lite,我還需要從 Internet 為它們提供 SSH。但由於第一個樹莓派已經使用連接埠 22,我無法使用任何其他樹莓派的連接埠 22。
我在網路上多次閱讀過一種稱為連接埠重定向的方法。但沒有人能夠輕易地解釋這一點。所以,我必須找到一種方法來做到這一點:
路由器
|-> 外部連接埠 2200 -> Pi Nr. 的連接埠 22 0
|
|-> 外部連接埠 2201 -> Pi Nr. 的連接埠 22 1
|
|-> 外部連接埠 2202 -> Pi Nr. 的連接埠 22 2
|
|-> 外部連接埠 2203 -> Pi Nr. 的連接埠 22 3
但我不知道這是如何運作的;D
我必須在 RPi 上編輯哪個配置文件,或者我必須在路由器上更改哪些設定才能實現此目的?
謝謝你的回答:)
(PS:我是一個網路菜鳥。我已經為PC 編寫Java 軟體,有時還會寫Discord Bot 作為一種愛好,已經有兩年了。但我不知道所有這些網路東西是如何運作的,我想學習它XD)
答案1
我在網路上多次閱讀過一種稱為連接埠重定向的方法。但沒有人能夠輕易地解釋這一點。
在大多數路由器上,無論連接埠是否需要更改,允許外部存取內部 IPv4 主機實際上都是相同的功能。如果您的 Raspberry Pi 有私人 IP 位址,則路由器無論如何都必須執行 NAT,因此「連接埠重定向」是其中的一部分,而不是真正獨立的東西。
就您而言,如果您在同一“允許存取”部分中選擇“其他應用程式”,則 FRITZ!Box 似乎允許您輸入不同的“外部”和“內部”連接埠。
透過螢幕截圖在谷歌上找到的這將是:
- 應用:【其他應用】
- 協議:[TCP]
- 設備連接埠:[22] 至 [22]
- 外部請求的連接埠 (IPv4): [2201]
(此欄位被標記為IPv4 特定的,因為在IPv6 中,您將直接連接到Pi 自己的位址而不是路由器的位址,因此「外部」和「內部/到裝置」連接埠之間不會有任何分離。 )
我必須在 RPi 上編輯哪個配置文件,或者我必須在路由器上更改哪些設定才能實現此目的?
通常是一個或者另一個,取決於你想要什麼。
路由器 |-> 外部連接埠 2200 -> 連接埠22的 Pi Nr。 0 |-> 外部連接埠 2201 -> 連接埠22的 Pi Nr。 1 |-> 外部連接埠 2202 -> 連接埠22的 Pi Nr。 2
這可能就是您所說的“連接埠重定向”。它需要路由器轉換端口,並且不需要對 Pi 本身進行任何更改。
它通常是 IPv4 特有的;雖然 IPv6 在技術上仍然可行,但它被認為是「應該避免」的事情。 (這主要是因為在 IPv6 中每個你的 Pi 會有它自己的外部位址,因此連接埠 22 衝突問題沒有實際意義。
在 FRITZ!Box 上,這似乎隱藏在您已經使用的相同「允許存取」頁面中的「其他應用程式」選項下。
路由器 |-> 外部連接埠 2200 -> 連接埠2200的 Pi Nr。 0 |-> 外部連接埠 2201 -> 連接埠2201的 Pi Nr。 1 |-> 外部連接埠 2202 -> 連接埠2202的 Pi Nr。 2
這不需要路由器進行任何重寫(在 IPv4 和 IPv6 中工作相同),但需要 Pi 上的 SSH 服務來偵聽相應的連接埠。
在 Linux 上,該
Port
選項位於/etc/ssh/sshd_config
– 您可能應該新增兩次,分別用於預設連接埠 22 和自訂連接埠 2200。
你可以當然兩者都可以,例如將外部連接埠 2200 重寫為 Pi 埠 3300,但這是不必要的。
還有一個選項不是使其他 Pi 完全可以從外部存取。相反,您可以ssh -J
透過第 0 個 Pi 連接到所有這些,例如ssh -J public.ip lan.ip.pi2
。