複数のSSHトンネル接続の管理

複数のSSHトンネル接続の管理

毎日次のコマンドを使用して、リモートサーバーへの5〜10のSSHトンネル接続を使用します。

ssh -Nvvv -L localhost:8866:127.0.0.1:3478 host

私はこれらのサーバーのいくつかをWeb検索用のプロキシとして使用し、他のサーバーではjupyter、tensorboard、または他の同様のプログラムを実行してパーソナルコンピュータブラウザのマップされたポートからアクセスできます。

しかし、毎回すべての接続を開始し、どのポートがどのサーバーにマップされているかを覚えておく必要があるのは面倒です。

そのような接続を管理するためのGUIまたは端末ベースのツールはありますか?

ベストアンサー1

簡単なアプローチは、これを開始するBashスクリプトを作成することです。以下のスクリプト例は、2つの接続用に作成されています。呼び出すと、tunnelchmod +x tunnelのようになります。

tunnel start

(すごく)始めて

tunnel stop

掃除してください。

#!/bin/bash
C1="localhost:8866:127.0.0.1:3478 host1"
C2="localhost:8867:127.0.0.1:3478 host2"
pkill -f "$C1"
pkill -f "$C2"
if [ "$1" = stop ]; then exit 0; fi
sleep 3  # give some time for them to exit, if applicable
nohup ssh -N -L $C1 &> /dev/null &
nohup ssh -N -L $C2 &> /dev/null &

別のアプローチは、個別に実行し、autosshシステムの起動時に開始するようにスケジュールすることです。

最後に、/ etc / servicesはポートのシンボル名を提供できますが、それを行うと、システムにいくつかの構成が混乱し始めます。ポートが予約された範囲(< 1024)になるようにするには、root権限が必要になる場合があります。

おすすめ記事