myServerで次のコマンドを実行します。
ssh -g -p 9922 -f myuser@serverOnOpenInternet -L 1212:serverBehindFirewall:80 -N
serverOnOpenInternet は、ポート 9922 で sshd を実行します。 (私の電話番号ではありません)
myServerで関連コマンドを実行すると、次のことができます。
wget http://localhost:1212/
serverBehindFirewallのインデックスページに正常に到達します。
しかし:他のコンピュータで攻撃しようとすると:
http://myServer:1212/
接続がタイムアウトし、トンネルを介して serverBehindFirewall に接続できません。
Macで-gスイッチをテストし、期待どおりに動作していることを確認しました。私はこれがsshの他のバージョン/実装であることを知っています。しかし、私が知っている限り、Ubuntu 14.04のsshは-gスイッチもサポートする必要があります。 (マンページに記載されています)
助けてください:)
答え1
-L オプションにバインド・アドレスを指定する必要がある場合があります。良い:
-L 192.168.1.100:1212:serverBehindFirewall:80
リクエストに応じて下から貼り付けます。
/etc/ssh/ssh_configの「GatewayPorts」オプションを「yes」に設定することで問題を解決しました。
これは「GatewayPorts yes」を指定するのとほぼ同じ効果があります。指定されたアドレスにバインドされます。 「GatewayPorts yes」オプションは、ワイルドカードアドレス(0.0.0.0)に自動的にバインドされ、リモートクライアントが接続できるようにします。指定せずにIP-Addressをバインディングに使用しない場合(-L:::)、ループバックアドレス127.0.0.1のみをバインドするため、リモートホストは接続できません。