2017-11-12 3 views
0

静的IPサーバー上に静的なSSHエンドポイントを置いておきたいと思います。SSHプロキシサーバーがありますか


私は、IPアドレスとポートたくさんの間を移動するデバイスを持っています。それが動くとき、それは "家に帰る"ので、私はそれに接続するために何を使うことができるかを知っています。IP:port

デバイスがポートを変更するため、残念なことに、ダイナミックDNSの使用は機能しません。

特に、私のデバイスにはngrokが使用されています。はい、私もこれに相当するものを得るためにそれらを支払っていますが、私自身のサーバーでこれを行うことはいいです。この問題は他の状況にも当てはまります。

まず、静的IPサーバーにsshを実行し、ローミングデバイスに簡単に接続できるスクリプトを用意しておくと簡単です。ssh -p $roamingPort [email protected]$roamingIpあるいは、同様のスクリプトを、ローミングデバイスが現在どこにある静的IPサーバーに要求し、次にSSHをローミングデバイスに直接要求するクライアントデバイス上で実行するようにします。

これは、現在のツールではHTTPで比較的簡単です。たとえば、別のURLへのリクエストをプロキシするためにnginxを使用します。

しかし、ローミングデバイスに続くいくつかの静的SSHエンドポイントの「素晴らしいユーザーエクスペリエンス」を提供するものではなく、多くのsshクライアントで使用できます。

私はこれを行う方法を探していて、空の手を挙げてきました。

これに対処する必要がある場合でも、known_hostsの世話をする必要があります。

これは少しHookable SSH proxy server to direct connection to remote hostに関連していますが、私がコントロールするボックスでそのサービスを実行したいと思います。


EDIT:以下は手動で再起動するまで有効です。それは決してそれ自身で決して終わらない。

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

+0

なぜあなたは、sshのポートを変更していますか? – nbari

+0

@nbari私はそうではない、ngrokはそうする –

答えて

0

あなたはsaltstackのようなものを使用することができ、これはおそらく、あなたが欲しいもののためにあまりにも多くのかもしれないが、ランダムに変更し、あなただけを介してそれらにアクセスする必要があるダイナミックなクライアント/ノードを有する場合に特に非常に便利です既知のホスト:ポート。通常はロードバランシングなどに使用されます。

これは、サーバー(ソルトマスター)とノード(クライアント/インスタンス/デバイス)が必要であることを意味します。

場合によっては、固定の固定IP /ポートサーバーでHAproxyを使用して、salt minesを使用してバックエンドを自動的に更新することができます。

この例は、ここで見つけることができます:https://docs.saltstack.com/en/latest/topics/mine/#example

関連する問題