![通过 Internet 从另一台设备使用 SSH 访问设备](https://linux22.com/image/221596/%E9%80%9A%E8%BF%87%20Internet%20%E4%BB%8E%E5%8F%A6%E4%B8%80%E5%8F%B0%E8%AE%BE%E5%A4%87%E4%BD%BF%E7%94%A8%20SSH%20%E8%AE%BF%E9%97%AE%E8%AE%BE%E5%A4%87.png)
我想运行一个 Raspberry Pi,我想在其上登录ssh
并连接到我的路由器。然后我想从另一个 RPi 访问它,该 RPi 连接到另一个具有物理(和网络)距离的路由器。
我想我需要
- RP 和路由器的静态 IP。
ssh
在两个 RP 上。- 某种程度稳定的互联网连接和路由器。
我是不是忘记了什么?
如何设置这个?
如何为我的 RPi 提供静态 IP 地址?
答案1
获得静态私人的IP 地址完全位于 RPi 与其路由器之间。
例如,您可以将路由器配置为通过 MAC 地址识别 RPi(在确保 RPi 操作系统上的任何 MAC 地址随机化功能关闭后...通常有线连接默认情况下不会随机化 MAC 地址,但 WiFi 连接可能会)并始终为其分配一个特定的私有IP。
或者,如果您的路由器提供特定的私有子网(例如 192.168.1.0/24,即可用地址 192.168.1.1 ... 192.168.1.254),但仅在其中的某些子网上使用 DHCP(例如 DHCP 提供从 192.168.1.10 到 192.168.1.127 的服务) )然后您可以从 DHCP 范围之外但在子网内(例如 192.168.1.200)选择一个地址,并将其配置为 RPi 作为静态 IP 地址。
您的其余问题基本上是询问一般的家庭网络建议,而不是针对 Unix 或 Linux 的。严格来说,这不是 Unix&Linux.SE 的主题。但我要说的是:
- 您不需要出站
ssh
连接方面的任何特定内容。 - 您需要入站连接端的互联网提供商
ssh
不使用运营商级 NAT (CGNAT) 并且不对所有入站连接设置防火墙。 - 获得真正的静态 IP 往往需要付费,并且对于家庭消费者互联网连接而言并不总是可行。但你真的不需要静止的入站 SSH 连接端路由器的公共 IP,但是已知的公共IP。如果公共 IP 是非静态的(与消费级互联网连接一样),则使用动态域名解析服务为其分配静态 DNS 名称通常比获取静态 IP 地址便宜,然后您就可以通过 DNS 名称进行连接,即使 IP 地址会有所不同。有时您甚至可能会找到适合您所在地区的免费动态 DNS 服务。
- 在入站 SSH 连接一侧,路由器需要一个转发端口配置:从路由器的互联网端,您选择的 TCP 端口需要转发到目标 RPi 的静态专用 IP。
答案2
您能详细说明一下您的用例吗?
如果您想在设备之间发送少量数据 - 您可以使用一些免费的云 MQTT 提供商,两个设备只需连接到它即可。您不必使用固定IP
如果您想要 SSH 访问并且如果您的设备已连接到互联网,您可以与它们建立 VPN 连接并通过 SSH 或 Web 远程控制台访问它们。
有很多工具可以实现这一点,其中一些是免费使用的。
我建议研究一下: https://qbee.io/- 2 台设备免费文档:
- https://qbee.io/docs/qbee-remote-console.html(网络 ssh 控制台)
- https://qbee.io/docs/qbee-connect.html - 桌面应用程序将任何端口映射到远程,因此您可以打开与两个设备的连接,并且您的本地计算机就像一座桥梁
https://jfrog.com/connect/- 免费试用文档:https://jfrog.com/connect/post/what-is-remote-ssh-a-guide-by-the-upswift-team/
对于这两种工具来说,NAT 都不是问题。 VPN 是从设备发起到云端的,因此如果需要入站连接,您可以关闭 22 端口。
作为这两种工具的额外好处,您还可以获得监控等功能。