【问题标题】:How to connect to my Raspberry Pi over the internet, rather than inside the LAN?如何通过互联网而不是局域网连接到我的树莓派?
【发布时间】:2020-01-04 07:33:50
【问题描述】:

我在树莓派零 WH 上有一个 python TCP 服务器。 RPi 已连接到 Wi-Fi,并且可以访问 Internet。我可以通过 ssh 或 VNC 连接到 Raspberry,并通过 android 上的应用程序连接到服务器。问题是我只能通过本地 IP (192.168...) 连接,所以我必须通过同一 Wi-Fi 网络中的计算机或手机进行连接。

我没有尝试所有方法,但我认为我可以简单地致电我的互联网提供商询问外部 IP。但这仅适用于我的家庭网络,例如,如果我带着我的 RPi 去工作,我就无法连接到它。

那么我该怎么做才能通过互联网从其他网络连接到我的 Raspberry?

【问题讨论】:

  • 检查一下...lifehacker.com/… 但是,如果您将 pi 带到您的工作中,您可能需要重新设置它。所以它可能对你没有太大帮助
  • 如果我理解它解决了 VNC 连接的问题,但是从应用程序连接到服务器呢?我是通过套接字来做的,我必须提供 IP 地址。这对它有用吗?

标签: python networking routing raspberry-pi ip


【解决方案1】:

您无法直接从互联网访问您的 RPi,因为它可能使用您的路由器连接到互联网,而路由器可能使用 PAT(NAT 的一种类型)。

这意味着当您的 RPi 访问互联网时,它会通过您的路由器使用其公共 IP 进行访问。这也意味着它自己没有公共 IP,无法接收来自互联网的直接通信。

一个可能的解决方案是在您的路由器上配置端口转发(这里是一个示例guide)。这将允许您告诉您的路由器接受特定端口上的连接,并将这些连接转发到特定端口上的 RPi。

这个解决方案并不理想,因为:

  • 它只适用于您的家庭网络
  • 需要您为 RPi 配置静态 IP
  • 这将要求您与您的互联网提供商确认您的路由器的公共 IP 不会改变
  • 如果您更换路由器或将其恢复出厂设置,它将停止工作。

因此,您可能需要检查一些其他选项。有一些流行的选择here

【讨论】:

  • 谢谢,我认为这可能是路由器的问题,因为我的个人路由器有 Wi-Fi,但是这个连接到互联网提供商的路由器......路由器我没有访问:(如果我通过SIM卡连接RPi,我会有一个外部IP?
  • 实际上,SIM 卡可能无济于事,因为我刚刚发现您通常也连接到 NAT 后面的移动网络 :( 我会修改我的答案。
【解决方案2】:

最简单的解决方案是在树莓派上安装一些远程控制软件,如teamviewer或anydesk,设置无人值守访问,然后在你的mac/pc上使用相同的软件进行远程访问,你会得到一个图形用户界面,所以你会需要在树莓派上设置自动登录。

您可以从此链接下载 anydesk: https://anydesk.com/en/downloads/raspberry-pi

团队查看器: 在树莓派上打开终端并使用以下命令

wget https://download.teamviewer.com/download/linux/teamviewer-host_armhf.deb sudo dpkg -i teamviewer-host_armhf.deb

如果你只想要终端访问使用 Dataplicity 之类的东西

【讨论】:

  • 这是一个很好的解决方案,但只能连接Raspberry本身,但它不适用于服务器。我无法通过这些程序连接我的 android 应用程序,我需要 IP。
猜你喜欢
  • 2013-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多