リバースSSH - Raspberry PiとAWS

リバースSSH - Raspberry PiとAWS

USBモデムを介してインターネットに接続されたRaspberry Piがあります。 ISPのために残念ながら、ドングル自体のパブリックIPアドレスを取得することはできませんでしたが、実際のセルタワーは取得しました。

Piでノードサーバーを実行しようとしていますが、ネットワーク内のどこからでも外部からアクセスする必要があります。

AWS AMI Linuxサーバーを作成し、リバースSSHを有効にしましたが、piにアクセスするためにAWSサーバーのポートにアクセスしようとするたびに何も起こりません.

結論として、3gドングル/モデム(Huawei E3531)の後ろにあるpiでノードサービスが実行されていますが、ポート転送はできません。

私はNOipを経験したくありません。なぜなら私には効果がないからです。私はWeavedを使ってみましたが、うまくいきます。しかし、問題は、デバイスのDNSを取得するために毎回ウェブサイトにアクセスする必要があることです。 DNSは30分ごとに変更されます。

答え1

-RまたはRemoteForwardでオプションを探しています~/.ssh/config。望むよりman ssh。私はこれについて少し錆びましたが、次のように思います。

ssh -i ~/.ssh/yourAWSkey -R 80:localhost:80 ubuntu@PublicIpAddress

ポート80でリッスンするPiのすべてのウェブサーバーは、AWS EC2インスタンスのPublicIpAddressに公開する必要があります。 SSHポート転送は非常に強力で非常に柔軟です。

あなたの質問に加えて:リモート転送ポート22を使用すると、パブリックインターネットからPiにSSH経由で接続できます。しかし注意してください- ポート22でEC2サーバーへのSSHアクセスがありません(Piが接続されている限り)。だからそうするのがいいでしょうssh -R 443:localhost:22。次に、PublicIpAddress:443(標準HTTPSポート)へのすべての接続をPiのSSHポートに転送します。

~/.ssh/config別の追加事項:次のように適切な段落を設定する必要があります。

Host ec2frontend
    HostName FillInThePublicIpAddress
    User ubuntu
    Port 22
    IdentityFile ~/.ssh/FillInNameOfRSAPrivateKey
    TCPKeepAlive no
    ServerAliveInterval 15
    ServerAliveCountMax 3
    RemoteForward 80 localhost:80
    DynamicForward 8108

ssh ec2frontendWhisはポート80の簡単な接続と逆方向転送を可能にします。

別のものがあります:インストールしたいです自動SSHautossh -M 0 -Nf ec2frontend永続的な接続を確立するために使用されます。autosshUbuntuリポジトリにあり、上記のコマンドを使用してインストールして呼び出すと、SSHをアクティブに保ち(SSHトンネルを介してping)、必要に応じて再起動します。

関連情報