我有一个用例,其中有 6 个 Raspberry Pi 位于私人防火墙后面,我需要从本地系统访问它们。因此,我想出了一个如下所示的架构
- 从我的 rpi 反向 ssh 到我的云服务器的特定端口
然后从我的本地系统使用我的云服务器作为跳转箱 (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。有什么改进建议吗?