從 Raspberry 反向 ssh 到雲端伺服器

從 Raspberry 反向 ssh 到雲端伺服器

我有一個用例,我有 6 個樹莓派位於私人防火牆後面,我需要從本機系統存取它們。所以我想出如下圖的架構

  1. 從我的 rpi 反向 ssh 到我的雲端伺服器的特定端口
  2. 並使用我的雲端伺服器作為跳轉盒(SSH ProxyJump)從我的本機系統連接到 rpi

                        Firewall
    +--------+              |    +---------+             +----------------+
    | Rpi 1  |-> 2101/tcp ->| -> |         | <- 22/tcp - | Local System 1 |
    +--------+              |    |         |             +----------------+
                            |    |         |
    +--------+              |    |  Cloud  |             +----------------+
    | Rpi 2  |-> 2201/tcp ->| -> | Server  | <- 22/tcp - | Local System 2 |
    +--------+              |    |         |             +----------------+
       ...                  |    |         |
    +--------+              |    |         |             +----------------+
    | Rpi 6  |-> 2601/tcp ->| -> |         | <- 22/tcp - | Local System 3 |
    +--------+              |    +---------+             +----------------+
    

最初,我使用直接 SSH 命令,但遇到了一些問題,例如連接在一段時間後變得陳舊且無響應。所以,我搬到了autossh。我開始systemd做這個操作。

autossh -Nf -M 0 -o ServerAliveInterval=120 -o ServerAliveCountMax=3 -R 2101:127.0.0.1:22 root@my-server-ip

這對我的 6 台設備來說效果很好。但是當我嘗試連接更多設備時,隧道似乎沒有連接(即)從 rpi 建立的隧道,但netstat -lnpt雲端伺服器上沒有任何內容。

現在我需要知道這是否是解決該用例的正確方法。有鑑於此,6 rpi 的計數將來可能會增加到 20 或 30。有什麼改進建議嗎?

相關內容