コマンドssh -v -R 2255:localhost:2255 [email protected]
を使用して、ホストのsshd_configにGatewayPorts yes
が存在しないことに気づくまで、リモートポート転送が機能しない理由を理解しようとしました。それを追加すると、正常に動作しました。
これを診断する方法はありますか?
SSHは次のものも出力します(GatewayPorts yes
なし):
debug1: Remote connections from LOCALHOST:2255 forwarded to local address localhost:2255
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug1: remote forward success for: listen 2255, connect localhost:2255
debug1: All remote forwarding requests processed
2255:localhost:2255
を指定すると、不足しているホスト名がlocalhost
として前に入力されます。これは実際にはlocalhost
アドレスにのみバインドします(ループバック)。 「外部から」も使用する場合は、example.com:2255:localhost:2255
などのリモートポート転送にサーバーIPを使用する必要があります。
今日これを診断するとしたら、おそらくtcpdumpを見てみよう:
tcpdump -v -i any tcp port 2255 -A
。
外部からアクセスするには、sshd_configにGatewayPorts yes
が必要です。
Sudo netstat -a | grep 2255
およびsshd -T
それは今私を示しています:
tcp 0 0 localhost:2255 *:* LISTEN
ですから、私はssh -R server_ip:2255:localhost2255 server_ip
。
sshd -T | grep -i gatewayports
は、ゲートウェイポートがno
に設定されていることを示しています。これが原因である可能性があります。