反向 SSH - Raspberry Pi 和 AWS

反向 SSH - Raspberry Pi 和 AWS

我有一个通过 USB 调制解调器连接到互联网的 Raspberry Pi。由于我的 ISP,不幸的是我无法获得我的加密狗本身的公共 IP 地址,但我获得了实际的手机信号塔。

我正在尝试在 pi 上运行节点服务器,并且需要从我的网络从任何地方从外部访问它。

我创建了一个 AWS AMI Linux 服务器,并启用了反向 SSH,但每次我尝试访问 AWS 服务器上的端口来访问 pi 时,都没有发生任何事情。

归根结底,我有一个节点服务在 pi 上运行,它位于 3g dongle/调制解调器(华为 E3531)后面,我无法在其上进行端口转发。

我不想通过 NOip,因为那对我不起作用。我已经使用了 Weaved,它完成了这项工作,但问题是每次都要访问该网站来获取我设备的 DNS - 该 DNS 每 30 分钟就会更改一次。

答案1

您正在寻找的是-RRemoteForward中的选项~/.ssh/config。看man ssh。我对此有点生疏,但我认为:

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

应该将 Pi 上侦听端口 80 的任何 Web 服务器公开给 AWS EC2 实例的 PublicIpAddress。 ssh 端口转发非常强大且极其灵活。

除了您的问题之外:远程转发端口 22 使您可以从公共互联网 ssh 访问您的 Pi不过要小心- 您错过了端口 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

Whis 允许简单地ssh ec2frontend连接和反向转发端口 80。

还有另一个:你想安装自动SSH并用于 autossh -M 0 -Nf ec2frontend建立永久连接。autossh位于 ubuntu 存储库中,安装后并使用上述命令调用后,将保持 SSH 处于活动状态(通过 SSH 隧道执行 ping 操作)并在必要时重新启动。

相关内容