通过互联网的 SSH

通过互联网的 SSH

我想通过互联网访问我的远程设备(主要是 Raspberry Pi 或类似的单板计算机),而无需对路由器进行任何配置。在大多数情况下,访问用户的路由器很困难/很慢。我尝试避免使用 teamviewer 和 husarnet 等专有服务。

我对网络完全陌生:

  • 从哪里开始?
  • 我应该关注哪些有趣的项目?
  • 你心里有什么想法?

我正在考虑制作我自己的 VPN 服务器

当我的第一台设备连接到 VPN 后,我可以通过 ssh 连接到也连接到同一 VPN 的远程设备吗?

答案1

我已经在下面回答了你的问题,但在此之前......

我首先要说的是,听起来你正在实施某种物联网设备。在这种情况下,想要 SSH 连接有点不习惯。这可以与数十甚至数百个客户合作。但它很快就会变得难以管理。

通常你应该:

  • 将您的操作系统升级部署为完整的映像...因此,没有远程调用apt-get dist-upgrade可能会导致设备变砖并迫使您派工程师来修复它们。
  • 以类似的方式部署您的应用程序,将其作为一个可自行部署的完整包发送。
  • 考虑类似的工具木偶它可以在无人协助的情况下进行维护,并提供一种同时向多个设备发送相同升级的方法。

在这个领域使用过大约 3,000 台设备后,如果可以避免的话,您真的不想养成通过 SSH 登录的习惯。

始终考虑安全性。如果这为黑客进入用户的家庭网络打开了漏洞,那么它可能会结束您的业务。


如果通过 SSH 拨入是您唯一的选择,那么您有几个选择。

反向 SSH 隧道

您可以将设备配置为通过 ssh 连接到远程服务器,并将端口转发回22设备上的端口。通常,您可以按需执行此操作,因此请在您自己的软件中包含一些触发器来告诉它执行此操作。

设备需要被告知要使用的“远程”端口,然后您需要知道该端口是什么。因此,如果远程端口是1234,设备将拨出到您的服务器:

ssh -R 1234:localhost:22 remote-server.example.com

然后,您可以自己通过 SSH 连接到远程服务器,并使用前面提到的远程端口从服务器通过 SSH 连接到 IOT 设备:

ssh -p 1234 localhost

这有点复杂,但它有效。您正在建立一个封装在 ssh 连接中的 SSH 连接。但它有效!

永久连接 VPN

正如您提到的,您可以设置 VPN 服务器。我会避免该服务器访问您自己的网络。

您可以在网上找到 OpenVPN 的示例,这很可能是适合这种情况的 VPN 技术。有一些“gotyas”需要避免:

  • 用户确实会破解自己的设备。你无法完全阻止这种情况。
    • 您不想让您的用户能够窥探您的公司网络。不要让您的 VPN 服务器访问公司网络上的任何内容,使其独立。
    • 不要启用 OpenVPN 的--client-to-client通信。会让客户互相交谈,而这是你不希望的。但接下来你就需要考虑如何使用这个VPN了?从服务器发起 SSH 连接就可以了。否则,如何将笔记本电脑连接到服务器,使其不是 VPN 客户端。
  • 确保您已阅读“自动重新连接”。 VPN 在没有警告的情况下断开连接,客户端需要自动重新连接。

通用即插即用

大多数/所有家庭路由器支持通用即插即用。这将使您的物联网设备在用户的家庭路由器上打开一个端口,让您直接拨入。

这确实有效,但请记住,有些用户禁用此功能,因为他们认为这是一个安全风险。例如:关于该主题的博客讨论这里

相关内容