远程访问 Raspberry Pi 远程物联网:从任何地方进行控制的简单而安全的方法

Jacki


在我们接触公共 IP 地址或尝试 NAT 路由器上的端口转发之前,让我们先调整一下您拥有的核心选项。有些方法非常适合本地网络。其他人通过互联网工作。如果配置错误,有些是有风险的。我们将保持事情清晰且可操作。

一点风险提醒:开放服务会不断被扫描。 Mirai 等僵尸网络仍然招募易受攻击的物联网设备并发起大规模 DDoS 攻击。云耀 

开始之前:启用 SSH 和基本卫生

干净的设置使其他一切变得更加容易。以下是获得回报的准备工作:

  • 以官方方式启用 SSH。在当前的 Raspberry Pi 操作系统上,为了安全起见,SSH 服务器默认处于关闭状态。在 Raspberry Pi 配置中打开它,或者输入 sudo raspi-config,然后输入“Interface Options”→ SSH。您还可以在 Raspberry Pi Imager 中的高级下翻转它设置闪烁期间。
  • 更新并重新启动。在 Raspberry Pi 命令提示符或 SSH shell 中,运行 sudo apt update 和 sudo restart 以从修补状态启动。
  • 知道 Raspberry Pi 的 IP 地址。在圆周率上,主机名-I显示同一子网上的内部 IP 地址。路由器 UI 还按 MAC 地址列出它。
  • 设置 LAN 内的静态 IP。在 Pi 上配置静态或通过 MAC 地址进行 DHCP 预留,这样您的远程连接目标就不会移动。如果您稍后添加动态 DNS 或任何“在家联系我”方法,这可以避免混乱。
  • 创建 SSH 密钥并禁用密码。密钥提供比密码更强大的 SSH 连接。下面我们将进一步强化。

掌握了这些基础知识后,选择适合您工作的路径。您只需要一个远程终端还是完整的远程桌面?或者是 Pi 上运行的 Web 服务器的浏览器窗口。在这里选择你的车道。

选择您的远程连接通道

下面的每种方法都包括其最适合的内容和值得关注的内容:

用于命令行控制的 SSH 客户端

  • 它是什么:一个安全的远程 shell,用于运行命令、编辑文件、部署代码或尾日志。在 Windows 用户(PuTTY 或内置 OpenSSH)、Linux 用户或 macOS 终端上使用您最喜欢的 SSH 客户端。
  • 它的亮点:无头系统、脚本、CI 挂钩和快速修复。
  • 安全注意事项:保留 SSH 密钥、禁用密码登录并避免在 Internet 上暴露端口 22。我们在强化部分对此进行了介绍。

用于完整远程桌面的 VNC 服务器

  • 它是什么:对 Pi 桌面 GUI 的可视化访问。启用 VNC 服务器并从笔记本电脑或移动设备连接 VNC Viewer。树莓派操作系统支持WayVNC 和 RealVNC。
  • 它的亮点:可视化工具、IDE、相机预览以及喜欢屏幕的新手。
  • 安全注意事项:远程桌面工具成为目标。 2024 年中期,TeamViewer 披露了一起网络事件,这对保持远程桌面堆栈更新和锁定很有帮助。

Raspberry Pi Connect 可从任何地方基于浏览器进行访问

  • 它是什么:一项官方的安全服务,让您可以使用 WebRTC 通过浏览器通过 Raspberry Pi 远程访问桌面和命令行。它推出于 2024 年推出,并于 2025 年结束测试并进行效率升级。
  • 它的亮点:快速全球访问,无需您自己的反向隧道或端口转发。
  • 安全注意事项:仍然实行最小权限并保持操作系统补丁。

适用于您的 IoT 项目的内置 Web 服务器或 API

  • 它是什么:仅公开项目需要的内容,例如端口 80 或 443 上的指标仪表板。
  • 它的亮点在于:简单的 UI、移动友好的控件或来自其他 Linux 计算机的机器对机器的调用。
  • 安全注意事项:使用 TLS、服务器证书和身份验证进行保护。不要为了一小页而将整个 Pi 发布给全世界。

选择路线后,首先要确保您的 LAN 坚如磐石。然后决定如何在不创建公共目标的情况下从外部访问 Pi。

先在本地网络上测试

在 LAN 内进行测试可以节省时间和压力。在接触互联网之前执行此操作。

  • 在系统托盘或路由器列表中找到 Pi。在 Raspberry Pi 操作系统上,网络图标有助于确认您是否在线。
  • 使用Raspberry Pi连接同一Wi-Fi来测试浏览器访问。或者打开 SSH 会话并验证 shell 提示是否快速响应。
  • 对于使用 VNC 远程 Raspberry Pi,打开 Raspberry Pi 图标菜单 → 首选项 → 配置 → 接口选项卡 → VNC,然后从 VNC 客户端连接。

如果局域网内一切正常,您就可以安全地访问互联网了。

避免有风险的端口转发和公开曝光

人们很容易将 TCP 22 转发给全世界,然后就到此为止了。请不要。转发端口会创建广泛的攻击面,引发暴力流量,并且依赖于您的外部 IP 保持不变。研究和咨询保留警告关于公开的 SSH 服务和遗留协议。

两个例子说明了其中的利害关系:

  • 僵尸网络仍然存在招募暴露的物联网设备群。 Mirai 系列仍然活跃且有效,在发现薄弱设备时发起创纪录规模的攻击。
  • 树莓派项目禁用默认情况下使用 SSH,以防止使用默认信用进行轻松接管。这就是互联网攻击的常见情况。

如果你确实必须发布一些东西,永远不要暴露整个盒子。至少,使用 SSH 密钥,移动到具有速率限制的非标准端口,并在狭窄的 Web 服务器路由前面放置一个带有身份验证的反向代理。更好的是,更喜欢这些替代方案:

  • 使用 Raspberry Pi Connect 通过点对点 WebRTC 进行浏览器访问。无需路由器设置,曝光度较低。
  • 使用信誉良好的反向隧道服务或代理,使用身份验证令牌进行身份验证,并且永远不会打开到 0.0.0.0 的原始 SSH。
  • 当您必须从公路到达 LAN 时,请使用私有 VPN 覆盖。我们将介绍 VeePN 如何帮助隐私和可靠性层。

设置静态IP并找到Raspberry Pi的IP地址

如果设备不断移动,您将无法远程管理该设备。

LAN 中的静态 IP 地址。要么在 Pi 上设置静态 IP,要么对大多数人来说更好,通过路由器中的 MAC 地址进行 DHCP 预留,以便内部 IP 地址保持固定。

后来发现:
从一个终端窗口、 ip a 或 Pi 上的主机名 -I。
上一个Linux电脑或 macOS,ping raspberrypi.local 适用于大多数网络。
Windows 用户机器, arp -a 列出设备。

有了稳定的IP地址,锁定入口点。

强化 SSH 服务器以实现远程 SSH 访问

如果添加一些严格的规则,就可以保证 SSH 远程访问的安全。

  • 只有密钥,没有密码。生成 SSH 密钥并禁用 PasswordAuthentication yes。钥匙可以阻止门口的暴力行为。
  • 将用户和子网列入白名单。在 sshd_config 中,设置 AllowUsers 并限制为已知帐户或管理子网(如果您仅使用 LAN)。
  • 更改端口和速率限制。非标准端口减少了日志噪音。像fail2ban这样的工具是钝器蛮力。
  • 短暂的会话,长久的信任。限制空闲超时并考虑需要硬件密钥来进行特权访问。
  • 保持 v1 禁用。仅使用 SSHv2。中西医结合协会指导指出 SSHv1 等旧协议不安全。
  • 缩小你暴露的范围。如果你曾经推送到互联网,就暂时进行一下,实时监控日志,工作完成后立即关闭。

从外部安全地远程访问 Raspberry Pi

这里有三个实用的蓝图,可以从任何地方远程连接,而不会将 Pi 变成公共目标。

使用树莓派连接

在 Raspberry Pi 操作系统中切换它配置然后登录。您将获得一个 URL,该 URL 可以为桌面和 CLI 提供点对点会话,而无需路由器的麻烦。非常适合笔记本电脑和快速现场检查。

使用基于代理的反向隧道

示例包括从 Pi 拨出到代理的轻量级代理,然后使用身份验证令牌允许您的会话。您可以公开单个 SSH 服务器、Web 服务器或摄像机流。保持代理更新、范围权限并经常轮换令牌。

旅行时使用私人 VPN 覆盖

当您使用酒店 Wi-Fi 或机场 Wi-Fi 时,请使用受信任的 VPN 来加密流量,以便同一网络上的窥探者无法干扰您的 SSH 会话或嗅探凭据。公共 Wi-Fi 经常因隔离薄弱和窃听风险而受到关注。

无论您选择哪条路,一些小习惯都会大有帮助。

用于安全连接和远程控制的快速清单

  • 更改默认用户,设置长密码,然后仅使用 SSH 密钥。
  • 保持操作系统更新。许多物联网的妥协来自于旧的软件包。
  • 不要在完全信任未知控制器的“物联网从属模式”下运行您的 Pi。仅与您控制的服务配对。
  • 如果您使用 VNC 服务器,则需要强密码和 TLS,并且切勿将原始 VNC 发布到公共 IP。远程桌面堆栈中的安全问题经常出现,因此更新很重要。
  • 如果必须公开 Web 服务器,请至少使用 TLS、服务器证书和基本身份验证。
  • 记录您为设置而运行的以下命令,以便稍后可以在更多 Pi 板和 Linux 计算机上重复。

动手实践:可重复使用的最小设置

您可以将它们粘贴到终端图标会话或 SSH shell 中:

  1. 启用服务并更新

sudo raspi-config # 接口 → SSH 或 VNC

sudo apt update && sudo apt -y 升级

须藤重新启动

  1. 创建新用户和密钥

# 在你的笔记本电脑上:

ssh-keygen -t ed25519

ssh-copy-id pi@<内部IP地址>

# 在 Pi 上:锁定它

须藤纳米 /etc/ssh/sshd_config

# 设置:密码验证否

sudo systemctl 重新启动 ssh

  1. 可选的生活质量
  • 带 Raspberry Pi 成像器和预设 Wi-Fi、启用 SSH 和主机名的无头闪存。
  • 通过路由器中的 MAC 地址保留静态 IP 地址。
  • 如果你测试远程桌面,安装VNC服务器并连接VNC Viewer。

为什么 VeePN 在远程控制 Raspberry Pi 时提供帮助

当您出门在外或使用第三方仪表板时,VPN 会强化您和 Pi 之间的路径,保护您的 IP 地址,并添加故障保护功能,以便在网络出现问题时保持会话的私密性:

  • AES-256 加密。 VeePN 会对来自您设备的所有流量进行加密,因此您的酒店或咖啡馆路由器无法窥视您的 SSH 会话、Web 服务器管理页面或远程桌面流。
  • IP地址屏蔽。隐藏您的公共 IP 地址,这会在您远程管理设备时限制跟踪和有针对性的探测。
  • 终止开关。如果 VPN 链接断开,Kill Switch 会切断连接,这样您的安全连接就不会默默地切换到普通互联网。
  • DNS 泄漏保护。 VeePN 使用私有 DNS 来防止您的查找泄露到本地网络或 ISP。当您键入 pi.local 等主机名或动态 DNS 域时,这一点很重要。
  • 无日志政策。您的管理工作就是您的业务。
  • 网络卫士恶意软件拦截器。如果您在修复某些内容时匆忙单击不良链接,则有助于阻止已知的恶意域。
  • 违规警报。如果您的帐户出现泄漏,则会向您发出警告,以便您可以快速轮换密钥和令牌。
  • 分裂隧道。通过 VeePN 路由您的管理工具,同时在正常互联网上保持流媒体或下载以节省带宽。
  • 混淆的服务器和2,600 多台服务器在60个国家。当网络尝试阻止 VPN 流量时保持稳定的访问,并在远程连接时选择最适合您的移动设备的位置。

请尝试无风险地使用 VeePN,因为我们提供 30 天退款保证。

FAQ

  • 如果我忘记了 IP 地址,如何找到我的 Pi?

    扫描您的本地网络。在 Linux 或 macOS 上,尝试arp-a或者ping 树莓派本地.
    在 Windows 上,使用路由器的设备列表并按 MAC 地址进行过滤。下次保留静态 IP 以避免搜索。

  • 通过互联网使用 VNC 来控制 Raspberry Pi 是否安全?

    不建议在公共 IP 上直接使用 VNC。如果您需要远程桌面,请首选 Raspberry Pi Connect、带有身份验证令牌的反向隧道,或者首先通过 VPN 连接。始终设置强 VNC 密码并在 VNC 服务器上启用加密。在本文中了解更多信息。

    有关的: