web-dev-qa-db-ja.com

SSHリモートポートフォワードが機能しないことを診断する方法

コマンド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
3

2255:localhost:2255を指定すると、不足しているホスト名がlocalhostとして前に入力されます。これは実際にはlocalhostアドレスにのみバインドします(ループバック)。 「外部から」も使用する場合は、example.com:2255:localhost:2255などのリモートポート転送にサーバーIPを使用する必要があります。

2
Jakuje

今日これを診断するとしたら、おそらくtcpdumpを見てみよう:

tcpdump -v -i any tcp port 2255 -A

1

外部からアクセスするには、sshd_configにGatewayPorts yesが必要です。

1
noraj

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に設定されていることを示しています。これが原因である可能性があります。

0
Kangur