SSH 터널을 CIDR 범위 또는 localhost의 여러 로컬 IP로 전달하는 방법

SSH 터널을 CIDR 범위 또는 localhost의 여러 로컬 IP로 전달하는 방법

다음과 같이 SSH 터널을 열고 싶습니다.

ssh -f -N -L 172.16.0.0/12:5433:127.0.0.1:5432 server

하지만 이 명령은 오류를 발생시킵니다:

channel_setup_fwd_listener_tcpip: getaddrinfo(172.16.0.0/12): Name or service not known
Could not request local forwarding.

내 로컬 시스템의 여러 인터페이스에 터널을 전달하려면 어떻게 해야 합니까?

해당 CIDR 범위 내의 모든 Docker 컨테이너에서 터널에 액세스할 수 있도록 이를 구현하고 싶습니다 172.16.0.0/12.

서버와 로컬 시스템 모두 Ubuntu 22.04.1 LTS에 있습니다.OpenSSH_8.9p1 Ubuntu-3ubuntu0.1, OpenSSL 3.0.2 15 Mar 2022

해결 방법으로 이제 다음과 같이 로컬 IP당 또는 더 광범위하게 터널을 열 수 있습니다.

ssh -f -N -L 0.0.0.0:5433:127.0.0.1:5432 server

꼭 그러고 싶지는 않습니다.

답변1

SSH 터널이 이런 식으로 작동한다고 생각하지 마십시오. 컨테이너 연결을 보호하려면 Wireguard를 권장합니다.

구경하다https://www.linuxserver.io/blog/routing-docker-host-and-container-traffic-through-wireguard

이 개념은 별도의 Wireguard 컨테이너(lscr.io/linuxserver/wireguard:latest)를 기반으로 합니다. Wireguard 서버입니다

보호할 컨테이너가 이에 연결됩니다. 그런 다음 라우팅을 통해 트래픽을 Wireguard 컨테이너 전체에 효율적으로 분산할 수 있습니다. 모든 것을 유지 관리할 수 있도록 클라이언트 구성(Wireguards 클라이언트용)의 공유 폴더가 생성되었습니다.

이 모든 것이 상대적으로 복잡하기 때문에 먼저 모든 것을 종이에 적어서 IP와 라우팅을 준비하는 것이 좋습니다.

관련 정보