您现在的位置是:首页 >技术教程 >无公网IP,公网SSH可远程访问家中的树莓派网站首页技术教程
无公网IP,公网SSH可远程访问家中的树莓派
文章目录
转载自cpolar极点云的文章:无公网IP,从公网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客户端,或者百度安装。
下载完成之后,打开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端口映射到公网地址端口上。
cpolar官网:https://www.cpolar.com/
- 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
如果正常显示,则安装成功,如图:
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 用户名@1.tcp.vip.cpolar.cn -p XXXXX(X为cpolar生成的端口号,用户名替换为主机用户名)
如:
ssh pi@1.tcp.vip.cpolar.cn -p 20013
由于我们的本地22端口到了公网被映射到了20013端口,所以,ssh命令需要加-p参数,后面加公网隧道端口号
登录成功了!现在,您可以在家里,或者学校,或者办公室,手机4G终端网络任意地方访问您的树莓派!
4.6 修改树莓派默认密码(可选)
上文提到,默认密码是不安全的,尤其是您将树莓派暴露在公网地址之上时,建议修改密码
passwd
系统提示输入当前密码,(默认为‘raspberry’) 然后重复输入新密码,即可。
此外,您还可以设置 SSH 密钥,这样您就不必每次通过 SSH 登录时都输入密码,但那是完全不同的主题。
步骤 5. 为SSH远程树莓派配置固定公网地址
以上教程,我们使用了免费的cpolar创建安全隧道实现公网ssh远程树莓派,但是免费隧道所生成的公网地址是临时随机的,会在24小时内随机变化,为了方便长期远程,我们接下来将这个公网地址配置成固定的,同时提高带宽。
首先,登录您的cpolar后台,在cpolar后台
->预留
-> 保留TCP地址
位置,添加一条记录。
地区选择China VIP
,和填写描述,然后点击保留
按钮。
系统会分配给您一个该地区的固定TCP地址,可供长期稳定使用。
在调用 cpolar 时使用-remote-addr
选项参数,值为系统分配给您的保留 TCP 地址。
命令行使用举例:
- 将后台预留的TCP地址绑定到本地SSH端口
cpolar tcp -remote-addr=1.tcp.vip.cpolar.cn:20046 22
修改cpolar配置文件
在树莓派中,修改cpolar配置文件,在ssh隧道下,添加remote_addr参数
nano /usr/local/etc/cpolar/cpolar.yml
注意:配置文件中的remote_addr参数为下划线,与命令行中使用的-remote-addr中划线不同。
修改完保存退出。
- 测试配置文件,我们在前台单独启动隧道文件,测试一下
cpolar start ssh
如上图,已经主明已经启动了固定TCP端口隧道,与我们在后台获得得隧道地址一致。
CTRL+C
退出。
- 重新启动cpolar服务,使ssh隧道在后台生效。
sudo systemctl restart cpolar
- 使用公网地址连接SSH测试
ssh pi@1.tcp.vip.cpolar.cn -p 20046
注意:由于公网端口变成20046,所以请求时,ssh命令要加上-p参数, 值为指定的cpolar公网端口号。
windows用户修改ssh客户端的默认端口为cpolar的公网端口即可。
总结:
现在,我们每次远程连接树莓派时,不必每次修改远程ssh连接地址了,效率进一步提升。