如何实现无公网ip远程SSH连接家中本地的树莓派

文章目录

    • [如何通过 SSH 连接到树莓派](#如何通过 SSH 连接到树莓派)
      • [步骤1. 在 Raspberry Pi 上启用 SSH](#步骤1. 在 Raspberry Pi 上启用 SSH)
      • [步骤2. 查找树莓派的 IP 地址](#步骤2. 查找树莓派的 IP 地址)
      • [步骤3. SSH 到你的树莓派](#步骤3. SSH 到你的树莓派)
      • [步骤 4. 在任何地点访问家中的树莓派](#步骤 4. 在任何地点访问家中的树莓派)
      • [4.1 安装 Cpolar](#4.1 安装 Cpolar)
      • [4.2 cpolar进行token认证](#4.2 cpolar进行token认证)
      • [4.3 配置cpolar服务开机自启动](#4.3 配置cpolar服务开机自启动)
      • [4.4 查看映射到公网的隧道地址](#4.4 查看映射到公网的隧道地址)
      • [4.5 ssh公网远程访问树莓派](#4.5 ssh公网远程访问树莓派)
      • [4.6 修改树莓派默认密码(可选)](#4.6 修改树莓派默认密码(可选))

本篇文章主要介绍如何在局域网外SSH远程访问连接到家里的树莓派? 通过结合cpolar内网穿透工具,实现在Raspberry Pi中启用SSH,通过SSH连接到 Raspberry Pi设备以及如何远程在任何地点访问家中的本地树莓派。

在使用树莓派 (Raspberry Pi) 可以做的所有事情中,将其用作为家庭网络中的服务器非常流行。微小的占地面积和低功耗使其成为运行轻量级服务器的完美设备。

在这种情况下,您应该可以做的一件事是在 树莓派 (Raspberry Pi) 上运行命令,而无需插入显示器、键盘、鼠标,也不必每次都将自己移动到树莓派(Raspberry Pi) 所在的位置。

您可以通过从任何其他计算机、笔记本电脑、台式机甚至手机通过 SSH(安全外壳)登录您的 Raspberry Pi 来实现这一点。

如何通过 SSH 连接到树莓派

我假设您在 Pi 上运行 Raspbian 并已通过以太网或 WiFi 成功连接到网络。重要的是,您的 Raspberry Pi 已连接到网络,否则您将无法通过 SSH 连接到它(抱歉我说得太明显了)。

步骤1. 在 Raspberry Pi 上启用 SSH

SSH 在 Raspberry Pi 中默认处于禁用状态,因此您必须在全新安装 Raspbian 后打开 Pi 时启用它。

首先通过导航菜单转到 Raspberry Pi 配置窗口。

  • 树莓派菜单,树莓派配置

现在,转到接口选项卡,启用 SSH 并重新启动您的 Pi。

在树莓派上启用 SSH

您还可以在不通过终端的情况下启用 SSH。只需输入命令 sudo raspi-config 然后转到高级选项以启用 SSH。

步骤2. 查找树莓派的 IP 地址

在大多数情况下,您的 Raspberry Pi 将被分配一个本地 IP 地址,看起来像 192.168.x.x 或 10.x.x.x。您可以使用各种 Linux 命令来查找 IP 地址。

我在这里使用的是旧的 ifconfig 命令,但您也可以使用 ip address

ifconfig

树莓派网络配置

此命令显示所有活动网络适配器及其配置的列表。第一个条目(eth0)显示 IP 地址为 192.168.9.36,这是有效的。我使用以太网将我的 Raspberry Pi 连接到网络,因此它在 eth0 下。如果您在名为"wlan0"的条目下使用 WiFi 检查。

您还可以通过其他方式找到 IP 地址,例如检查路由器/调制解调器上的网络设备列表。

步骤3. SSH 到你的树莓派

现在您已经启用了 SSH 并找到了您的 IP 地址,您可以继续从任何其他计算机通过 SSH 连接到您的 Raspberry Pi。您还需要树莓派的用户名和密码。

默认用户名和密码是:

  • 用户名:pi
  • 密码:raspberry

如果您更改了默认密码,请使用新密码而不是上述密码。理想情况下,您必须更改默认密码。在过去,恶意软件感染了数千台使用默认用户名和密码的Raspberry Pi。

在要通过 SSH 连接到 Pi 的计算机上打开终端(在 Mac 和 Linux 上),然后键入以下命令。在 Windows 上,您可以使用像 Putty 这样的 SSH 客户端。

Windows用户安装SSH客户端:

如果您使用的是windows,你需要在电脑上安装PuTTY这样的SSH客户端,a free SSH and telnet client for Windowswww.putty.org/,或者百度安装。

下载完成之后,打开PuTTY,然后在session中的"Host Name"中输入树莓派的IP地址,然后点击"open",即可连接树莓派了。

第一次你会看到一个警告,点击 Accept 按钮。

提示输入登录用户名: pi

输入密码(默认为:raspberry )

现在,输入密码并按回车键。

通过SSH登录成功。

Mac和Linux用户:

在这里,使用您在上一步中找到的 IP 地址。

ssh pi@192.168.x.x

注意:确保您的 Raspberry Pi 和您用于通过 SSH 连接到 Raspberry Pi 的计算机连接到同一网络。

通过终端SSH

第一次你会看到一个警告,输入 yes 并按回车键。

输入密码(默认为'raspberry')

现在,输入密码并按回车键。

通过SSH登录成功

成功登录后,您将看到 Raspberry Pi 的终端。现在,您可以通过此终端远程(在当前网络内)在您的 Raspberry Pi 上执行任何命令,而无需物理访问您的 Raspberry Pi。

步骤 4. 在任何地点访问家中的树莓派

仅在家中同一局域网络访问树莓派有局限性,且一旦树莓派在家中的IP变化,如果有一天我们想在办公室的位置想访问树莓派怎么办?那我们现在就解决。

4.1 安装 Cpolar

cpolar是一款内网穿透工具,可以将您的内网站点暴露到公网上,使所有人可以访问到你的站点。也可以TCP的方式将您的ssh端口映射到公网地址端口上。

如果正常显示,则安装成功,如图:

4.2 cpolar进行token认证

如果您还没有cpolar账号,请去cpolar官网注册并登录后台获取认证token

cpolar authtoken xxxxxxxxxxxxxxxxxx

4.3 配置cpolar服务开机自启动

  • 配置cpolar开机自启动

    sudo systemctl enable cpolar

  • 守护进程方式,启动cpolar

    sudo systemctl start cpolar

  • 查看cpolar守护进程状态

    sudo systemctl status cpolar

如图,状态为active, 说明启动状态成功

cpolar会默认安装两个样例隧道,一个是Website隧道指向http 8080端口,一个是ssh隧道,指向tcp 22端口。

4.4 查看映射到公网的隧道地址

我们登录cpolar后台-->状态,查看一下ssh隧道映射的公网地址:

4.5 ssh公网远程访问树莓派

ssh pi@1.tcp.vip.cpolar.cn -p 20013

由于我们的本地22端口到了公网被映射到了20013端口,所以,ssh命令需要加-p参数,后面加公网隧道端口号

登录成功了!现在,您可以在家里,或者学校,或者办公室,手机4G终端网络任意地方访问您的树莓派!

4.6 修改树莓派默认密码(可选)

上文提到,默认密码是不安全的,尤其是您将树莓派暴露在公网地址之上时,建议修改密码

passwd

系统提示输入当前密码,(默认为'raspberry') 然后重复输入新密码,即可。

此外,您还可以设置 SSH 密钥,这样您就不必每次通过 SSH 登录时都输入密码,但那是完全不同的主题。

相关推荐
hgdlip1 小时前
电脑ip地址会变化吗?电脑ip地址如何固定
tcp/ip·电脑
hgdlip2 小时前
手机IP地址:定义、查看与切换方法
网络协议·tcp/ip·智能手机
dengjiayue5 小时前
tcp 的重传,流量控制,拥塞控制
网络协议·tcp/ip
Aileen_0v011 小时前
【AI驱动的数据结构:包装类的艺术与科学】
linux·数据结构·人工智能·笔记·网络协议·tcp/ip·whisper
花鱼白羊12 小时前
TCP Vegas拥塞控制算法——baseRtt 和 minRtt的区别
服务器·网络协议·tcp/ip
DexterLien18 小时前
Debian 12 安装配置 fail2ban 保护 SSH 访问
运维·debian·ssh·fail2ban
总是学不会.19 小时前
第五篇:前后端如何“扯皮”——HTTP 在开发中的应用
java·网络·网络协议·http·开发
m0_7482382720 小时前
WebClient HTTP 请求问题处理模板(泛型响应、忽略 SSL 证书等)
网络协议·http·ssl
୧⍢⃝୨ LonelyCoder21 小时前
FreePBX修改IP地址和端口以及添加SSL证书开启HTTPS访问
tcp/ip·https·ssl
轩辰~21 小时前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议