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 ec2frontend
Whisはポート80の簡単な接続と逆方向転送を可能にします。
別のものがあります:インストールしたいです自動SSHautossh -M 0 -Nf ec2frontend
永続的な接続を確立するために使用されます。autossh
Ubuntuリポジトリにあり、上記のコマンドを使用してインストールして呼び出すと、SSHをアクティブに保ち(SSHトンネルを介してping)、必要に応じて再起動します。