当前位置: 首页 > news >正文

如何在Raspberry Pi上启用SSH并结合cpolar内网穿透实现公网远程访问本地树莓派

文章目录

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

本篇文章主要介绍如何在树莓派Raspberry Pi上启用SSH并结合cpolar内网穿透工具实现公网远程访问本地树莓派。

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

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

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

如何通过 SSH 连接到树莓派

img

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

步骤1. 在 Raspberry Pi 上启用 SSH

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

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

img

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

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

img

在树莓派上启用 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

img

树莓派网络配置

此命令显示所有活动网络适配器及其配置的列表。第一个条目(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",即可连接树莓派了。

img

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

img

提示输入登录用户名: pi

输入密码(默认为:raspberry )

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

img

通过SSH登录成功。

Mac和Linux用户:

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

ssh pi@192.168.x.x

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

img

通过终端SSH

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

img

输入密码(默认为‘raspberry’)

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

img

通过SSH登录成功

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

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

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

4.1 安装 Cpolar

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

  • cpolar一键安装脚本:(国内用户)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 或短链接安装方式:(国外用户)
curl -sL https://git.io/cpolar | sudo bash
  • 查看cpolar版本信息
cpolar version

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

img

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

img

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

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

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

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

img

4.5 ssh公网远程访问树莓派

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

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

img

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

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

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

passwd

img

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

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

相关文章:

  • 正则表达式与文本三剑客
  • SVM(支持向量机)原理与应用
  • Sentinel 知识总结
  • vue3开发,axios发送请求是携带params参数的避坑
  • Android 12.0 应用中监听系统收到的通知
  • 代码随想录算法训练营第36天 | 435.无重叠区间 + 763.划分字母区间 + 56.合并区间
  • 投标书撰写注意事项
  • HiveSQL题——数据炸裂和数据合并
  • 海外短剧系统国际短剧源码h5多语言版app挂载tiktok油管ins
  • Linux系统-学习
  • LaTeX 文本对齐:ragged2e 宏包
  • 【大厂AI课学习笔记】1.3 人工智能产业发展(4)——泛在的人工智能
  • 提升小波变换的程序演示
  • 什么是系统工程(字幕)13
  • Shell - 学习笔记 - 2.6 - Shell $*和$@之间的区别
  • [译]CSS 居中(Center)方法大合集
  • conda常用的命令
  • echarts的各种常用效果展示
  • in typeof instanceof ===这些运算符有什么作用
  • Java读取Properties文件的六种方法
  • Linux gpio口使用方法
  • Logstash 参考指南(目录)
  • Python 反序列化安全问题(二)
  • 机器学习 vs. 深度学习
  • 基于Android乐音识别(2)
  • 近期前端发展计划
  • 设计模式(12)迭代器模式(讲解+应用)
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • (11)MATLAB PCA+SVM 人脸识别
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (AngularJS)Angular 控制器之间通信初探
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)计算机毕业设计ssm电影分享网站
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (三)Honghu Cloud云架构一定时调度平台
  • (四)Controller接口控制器详解(三)
  • (五)关系数据库标准语言SQL
  • (转)原始图像数据和PDF中的图像数据
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [8481302]博弈论 斯坦福game theory stanford week 1
  • [autojs]autojs开关按钮的简单使用
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [C# 网络编程系列]专题六:UDP编程
  • [C++]打开新世界的大门之C++入门