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클라우드 서버에는 아무것도 없습니다.

이제 이것이 이 사용 사례를 해결하기 위한 올바른 접근 방식인지 알아야 합니다. 이를 감안할 때 이 6rpi 수는 향후 20~30개까지 늘어날 수 있습니다. 개선을 위한 제안이 있으십니까?

관련 정보