2017-11-12 12 views
0

이동하는 장치를 따라가는 정적 IP 서버에 정적 SSH 끝점을 갖고 싶습니다.SSH 프록시 서버가 있습니까


나는 IP를 및 포트 많은 사이에 이동 장치를 가지고있다. 그것이 움직일 때, 그것은 "집에 전화"그래서 나는 그것에 연결하는 데 사용할 수있는 IP:port을 알고 있습니다.

동적 DNS 사용은 장치가 포트를 변경하기 때문에 작동하지 않습니다.

특히, 내 장치에서 ngrok을 사용하고 있습니다. 예, 이것에 상응하는 금액을 지불하기도하지만 내 서버에서이 작업을 수행하는 것이 좋습니다. 이 문제는 다른 상황에도 적용됩니다.

먼저 정적 IP 서버로 ssh하고 로밍 장치로 쉽게 ssh 할 수있는 스크립트가 있습니다. ssh -p $roamingPort [email protected]$roamingIp. 또는 로밍 장치가 현재있는 고정 IP 서버와 SSH를 로밍 장치에 직접 묻는 클라이언트 장치에서 실행되도록 비슷한 스크립트를 만듭니다.

HTTP의 경우 현재 도구를 사용하는 것이 상대적으로 쉽습니다. 예를 들어 nginx를 사용하여 다른 URL로 요청을 프록시합니다.

그러나 로밍 장치를 따라 다니는 일부 정적 SSH 끝점에 대한 "훌륭한 사용자 환경"을 제공하는 것은 아니며 많은 SSH 클라이언트에서 사용할 수 있습니다.

나는 이것을하기위한 방법을 찾고 있었고 빈손으로 나왔다.

이 해결책은 무엇이든간에 known_hosts을 잘 처리해야합니다.

이것은 다소 Hookable SSH proxy server to direct connection to remote host과 관련이 있지만 제어 할 수있는 상자에서 해당 서비스를 실행하고 싶습니다.


편집 : 다음은 수동으로 다시 시작될 때까지 한 번만 작동합니다. 또한 독자적으로 닫히지 않습니다.

mkfifo fifo && nc -l -p $staticPort < fifo | nc $roamingIP $roamingPort > fifo

+0

왜 당신은 ssh 포트를 변경? – nbari

+0

@nbari 난 아니야, 앤그 로크. –

답변

0

당신은 saltstack 같은 것을 사용할 수 있습니다, 이것은 당신이 원하는 것을 너무 많이 아마 수 있지만 동적 클라이언트 임의 변경하고 단지 그들에를 통해 접근 할 필요가/노드를 가진 특히 매우 유용 할 수있다 알려진 호스트 : 포트. 예를 들어 일반적으로로드 균형 조정에 사용됩니다.

이것은 서버 (솔트 마스터)와 노드 (클라이언트/인스턴스/장치)가 필요함을 의미합니다.

경우에 따라 salt mines을 사용하여 백엔드를 자동으로 업데이트하는 고정 고정 IP/포트 서버에서 HAproxy를 사용할 수 있습니다.

이의 예

는 여기에서 찾을 수 있습니다 : https://docs.saltstack.com/en/latest/topics/mine/#example