一般ユーザーとして開かれたTCPポートのpidを見つけます。

一般ユーザーとして開かれたTCPポートのpidを見つけます。

私のローカルホストから私のローカルホスト:ポートにいくつかのリモートホスト:ポートを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番目の列)。

おすすめ記事