毎日次のコマンドを使用して、リモートサーバーへの5〜10のSSHトンネル接続を使用します。
ssh -Nvvv -L localhost:8866:127.0.0.1:3478 host
私はこれらのサーバーのいくつかをWeb検索用のプロキシとして使用し、他のサーバーではjupyter、tensorboard、または他の同様のプログラムを実行してパーソナルコンピュータブラウザのマップされたポートからアクセスできます。
しかし、毎回すべての接続を開始し、どのポートがどのサーバーにマップされているかを覚えておく必要があるのは面倒です。
そのような接続を管理するためのGUIまたは端末ベースのツールはありますか?
答え1
簡単なアプローチは、これを開始するBashスクリプトを作成することです。以下のスクリプト例は、2つの接続用に作成されています。呼び出すと、tunnel
次chmod +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権限が必要になる場合があります。