私のローカルホストから私のローカルホスト:ポートにいくつかのリモートホスト:ポートをSSHトンネリングしているので、リモートホストの誰でも「ローカル」ポートを使用してそのトンネルを介して自分のポートにアクセスできます。
これを行うには、両方のホストでいくつかの一般的な(ルートではない)ユーザーアカウントを使用します。
例:TunnelingdaemonはTunnelingdaemon @ remotehostを使用して自分のローカルホストから接続ssh -R 127.0.0.1:2222:127.0.0.1:22 remotehost ...
し、リモートホストでポート2222を開き、ローカルホストのポート22に接続します。
リモートホストのルートはnetstat
、、、lsof
またはを使用してfuser
ポート2222を開いてトンネリングするプロセスのPIDを見つけることができます。ただし、一般ユーザー(tunnelingdaemon)はこれを行うことはできません。
例えば
根:
root@remote_host:/# fuser 2222/tcp
2222/tcp: 13709
root@remote_host:/#
トンネルデーモン:
tunnelingdaemon@remote_host:/$ fuser 2222/tcp
tunnelingdaemon@remote_host:/$
リモートホストでは一般ユーザー(tunnelingdaemon)としてプロセスを終了できます。その下でトンネルが初めて開かれたが、どのプロセスを終了するかを調べるには、root権限が必要です。。
これは問題です。これに対する解決策を見つける必要があります。
ベストアンサー1
たとえば、ポート「8889」は次のようになります。
lsof -i -P | grep 8889
私のために動作します。
その後、PIDを終了できます(出力の2番目の列)。