残念ながら、私は静的IPを使用できない場所に住んでいるため、マイクロAmazonec2インスタンスで実行されるリバースSSHトンネルを介して自宅のコンピューターへのアクセスを設定しています。 SSHは正常に機能しましたが、ポートフォワードがわかりません。
これは私が説明するのを助けるために作った小さなインフォグラフィックです(私がやろうとしていたことの図で質問がより明確になったと感じました。
図にリストされているコマンドは次のとおりです。
私は自宅のコンピューターで次のことをしています。
ssh -R 1337:localhost:22 -i .ssh/tokyoMinekey.pem ec2-user@ec2serveraddress
そして私はこれをec2サーバーで実行します:
ssh -L6600:localhost:6600 -Nf localhost -p 1337
参考までに、Amazon ec2のセキュリティグループにポート6600を追加したので、ec2側で開いています
ここで2つの別々のsshコマンドを使用している理由がわかりませんか?自宅のマシンのポート6600ではなくEC2のポート6600を転送する場合は、次のことを行う必要があります。
ssh -R :6600:localhost:6600 -i .ssh/tokyoMinekey.pem ec2-user@ec2serveraddress
また、EC2インスタンスのsshd_config
ファイルでGatewayPorts
オプションが有効になっていることを確認する必要があります。
明らかに、ポートフォワードが機能し続けるには、そのssh接続を開いたままにしておく必要がありますが、それ以外は問題はありません。
次の出力を提供していただけますか。
netstat -tulpen
ec2serveraddress
に。両方のトンネルが127.0.0.1:PORT
で始まっていることを期待していますか? 127.0.0.1
はローカルマシン自体のIPであり、外部からはアクセスできません。つまり、サーバー自体からこのトンネルにアクセスできますが、他のマシンからはアクセスできません...
この場合は、/etc/ssh/sshd_config
に以下を追加してください。
GatewayPorts yes
このオプションは0.0.0.0
にポートを作成するので、どこからでも接続できます。 2つの接続されたトンネルを作成する他の理由がない場合は、もちろん1つだけに縮小できます。
ssh -R 6600:localhost:22 -i .ssh/tokyoMinekey.pem ec2-user@ec2serveraddress
これにより、ec2serveraddress:6600
へのトンネルhome:22
が作成されます。