ステップ1。ポートの確認
netstat -tnlpa
(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6443 0.0.0.0:* LISTEN -
tcp6 0 0 :::8080 :::* LISTEN -
ステップ2。 SSHをお試しください。
ssh -N -f -L 8888:localhost:8888 -p 5000 [email protected]
> No response.
ステップ3。 SSH再試行
ssh -N -f -L 8888:localhost:8888 -p 5000 [email protected]
bind [127.0.0.1]:8888: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 8888
Could not request local forwarding.
ステップ4。ポートの確認
netstat -tnlpa
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6443 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 228/ssh
tcp 0 0 172.23.246.199:46180 20.194.107.22:5000 ESTABLISHED 228/ssh
tcp 0 0 172.23.246.199:46182 20.194.107.22:5000 ESTABLISHED 230/ssh
tcp6 0 0 :::8080 :::* LISTEN -
tcp6 0 0 ::1:8888 :::* LISTEN 228/ssh
ローカル: WSL2 LTS 20.04
サーバー: AzureVM LTS 18.0X
不足している英語力とコンピュータサイエンスの知識のために十分に説明することができませんでした。
追加情報が必要な場合はお答えします。
答え1
最初のコマンド(応答なし)で提供されるオプションの効果は、コマンドが成功したときにフィードバックがないことです。
したがって、最初のコマンドには目立つ結果はありませんが、期待どおりに機能します。つまり、ポート8888を転送するようにトンネルを設定し、他のものは表示されません。
2番目のコマンドは部分的にのみ成功しました。まだバックグラウンドで2番目のリモートSSH接続を実行しますが、転送することはできません。再び同じポート:前のコマンドが完了しました。だからそれについて文句を言った。トンネルを生成せずにコマンドを許可しないこのSSHコマンドは、リソースの無駄です。
何がうまくできますか?目標によって異なります。ただし、リソースの浪費を防ぐために簡単に実行できるのは、追加のオプションを使用して、要求されたトンネルを確立できないSSHコマンドが完全に失敗するように強制することです-o ExitOnForwardFailure=yes
。
ssh(1)がすべての要求に対して動的、トンネリングされたローカルおよびリモートポート転送を設定できない場合に接続を終了するかどうかを指定します。 [...]
したがって、最終的に一度実行する必要がありますが、エラーメッセージが表示される以外に何度も試すことは実際には問題になりません。
ssh -N -f -o ExitOnForwardFailure=yes -L 8888:localhost:8888 -p 5000 [email protected]
このコマンドが成功する前に、以前に実行されたsshコマンドを最初に終了する必要があります(OPは少なくとも2つを実行しました)。そのうちの1つは実際にポート8888にバインドされ、このコマンドが成功しないようにします。
Linuxでは、以下を使用してPIDを見つけることができますss
。
ss -tnp dst == destination.com and dport == 5000
このようにして、彼らは命令に従って殺されるかもしれませんkill
。