(リモート) SSHサーバーはremote
(リモート)127.0.0.1ポート20001でサービスを実行します. SSHポート転送を通じてこのサービスをローカルで提供したいと思います。
ssh -vvv -4 -L 20001:127.0.0.1:20001 remote
このコマンドを使用すると、ポート転送とサービスアクセスに適しています。
ただし、トンネルは私のローカルシステムの127.0.0.1にバインドされているため、SSHコマンドを実行しているローカルシステムからのみリモートサービスにアクセスできます。ローカルコンピュータポート20001に接続してローカルLANでリモートサービスを使用できるように、トンネルを0.0.0.0にバインドします。
このオプションのマンページには次のものが-L
あります。
デフォルトでは、ローカルポートはGatewayPortsの設定に従ってバインドされます。ただし、明示的なバインディングアドレスを使用して特定のアドレスに接続をバインドすることは可能です。 「localhost」のバインディングアドレスは、受信ポートがローカル専用であることを示し、空のアドレスまたは「*」は、ポートがすべてのインターフェイスで使用可能であることを示します。
源泉:https://manpages.debian.org/bookworm/openssh-client/ssh.1.en.html#L
GatewayPorts=yes
だから設定を追加し、両方を試しました。
ssh -vvv -4 -o GatewayPorts=yes -L 20001:127.0.0.1:20001 remote
また
ssh -vvv -4 -o GatewayPorts=yes -L *:20001:127.0.0.1:20001 remote
ただし、次のエラーが発生します。
debug1: Local connections to *:20001 forwarded to remote address 127.0.0.1:20001 debug3: channel_setup_fwd_listener_tcpip: type 2 wildcard 1 addr NULL debug1: Local forwarding listening on 0.0.0.0 port 20001. listen: Operation not permitted listen [0.0.0.0]:20001: Operation not permitted channel_setup_fwd_listener_tcpip: cannot listen to port: 20001 Could not request local forwarding.
転送されたローカルポートを127.0.0.1の代わりに0.0.0.0にバインドするにはどうすればよいですか?エラーはどこで発生しますか?
- このポートは、127.0.0.1にバインドするときに使用できます。それでも
netstat
ポートが使用されていないことを再確認しました。 - SSHコマンドの実行には役立ちません
sudo
。 - リモート側でリモートポート転送バインディング0.0.0.0を使用する場合にのみ、サーバーでこの設定が必要であるとします
GatewayPorts=yes
。sshd_config
とにかく、サーバー構成を変更してサーバーを再起動しましたが、期待どおりにローカルポートの転送に使用したSSHコマンドには何の影響もありませんでした。