我有一个树莓派,我有一个程序,只有当我需要它从应用程序中运行时才需要运行它。所以,基本上需要从公共互联网连接到我的树莓派。不确定这一点,我想我需要让我的树莓派 ssh 从公共互联网,即直接通过某个 IP 地址连接。
我怎样才能做到这一点?我正在尝试通过简单的 ssh 连接到我的 linux 系统,但它不起作用。有什么指南和指示吗?
谢谢
我有一个树莓派,我有一个程序,只有当我需要它从应用程序中运行时才需要运行它。所以,基本上需要从公共互联网连接到我的树莓派。不确定这一点,我想我需要让我的树莓派 ssh 从公共互联网,即直接通过某个 IP 地址连接。
我怎样才能做到这一点?我正在尝试通过简单的 ssh 连接到我的 linux 系统,但它不起作用。有什么指南和指示吗?
谢谢
首先,您应该确保 ssh 守护程序已正确安装在您的 RP 上。你可以安装它
sudo apt-get update && apt-get install ssh
接下来,您应该尝试在本地连接到您的 SSH 服务器,也就是说,直接在您的 RP 上打开一个终端并尝试连接到您本地运行的 SSH 服务器:
ssh root@localhost
或者更好的是,使用 RP 的当前 IP 地址而不是 localhost。如果您可以连接,则一切都在这一边正常工作。现在您可以尝试从本地网络中的另一个盒子连接到您的 RP。它也应该有效。如果没有,您很可能有防火墙阻止了此框上的传出 SSH 连接,或者您的 RP 本身阻止了传入连接。通常,它不应该阻止它,除非您使用 iptables 配置了类似的东西,例如。
如果您可以在 LAN 内进行连接,则可以更进一步。您需要配置路由器的防火墙以将 SSH 所需的端口转发到您的 RP。或者,许多路由器提供将主机放入所谓的 DMZ 的能力。这对于测试非常有用,因为它使您可以不受限制地访问 Internet。
接下来,您需要在 WAN 端找出您的公共 IP 地址。有许多这样的网站会显示您当前的外部 IP 地址。如果一切配置正确,您现在应该可以连接到root@[your external ip]
. 它应该可以在您的本地网络以及互联网上工作。此外,您应该考虑在您的 RP 或路由器中使用动态 DNS 服务客户端,这样您就可以连接到静态主机名,而不是更改动态 IP 地址。
也许你的 pi 的 ip 地址会因为 DHCP 而改变。如果这是您的问题,您可以阅读以下内容:http: //developer-blog.net/en/programming/get-your-external-ip-address/#more-1267
另一种可能性是您的路由器阻止了所需的端口。对于 SSH 端口 22 应该打开。