基于阿里云ECS内网穿透SSH访问家庭树莓派

简介: 文本介绍如何利用frp内网穿透工具实现外网访问家里的树莓派,方便以后工作在外远程访问家里的树莓派。此教程适合树莓派小白从零开始配置树莓派。

文本介绍如何利用frp内网穿透工具实现外网访问家里的树莓派,方便以后工作在外远程访问家里的树莓派。此教程适合树莓派小白从零开始配置树莓派。

准备工作

1. 材料准备

树莓派4B、读卡器、16G内存卡、千兆网线一根、电脑、联网的wifi路由器,能流量上网的手机,最重要的是在阿里云申请一个有公网IP的云服务器。

2. 树莓派设置

2.1 树莓派镜像烧录

树莓派4B,我用的是4G内存的版本,具体性能参数在树莓派的官网有,我这就不再赘述了,需要做一些比较大的项目的话可以选择内存8G的版本。树莓派的内存卡用16G以上的,然后烧录Ubuntu20.04 Server LTS的镜像,树莓派镜像下载和烧录请参照这个链接里的步骤

2.2 Xshell登录树莓派

ed42b0dbddd54c128905cee075670526按照上图来连接好树莓派和电脑,然后登录路由器管理页面查看树莓派的IP,可以看到路由器分配给我们树莓派的IP是192.168.1.9。在电脑上的Xshell工具里(或者putty,没有的话可以去百度下载)

d41300ffb8e84c46882c59d53d9bf3a6选择SSH,输入树莓派IP,默认端口号22不要改,最后点击连接。

b073a3de20884fc3add2119939f483dbdc99799d83ec4c3a95edef7f507a6854bb3d76507d454d0a8930a88d94f7e713360c6a723e41471ead2ec48cd9a5a3b568d3e170df294405950f16a1eaaab58d这个镜像里树莓派的用户名是ubuntu,初始密码是ubuntu,第一次登录会强制修改原始密码,输入2次密码确认新修改的密码,下次登录就用新密码登录,登录成功会显示下面的内容。

395327c9b90e414bb6ba7ae0d501a8ce设置管理员root,@前的ubuntu是普通用户,$是普通用户的标志,#是管理员的标志。我们可以设置管理员root,输入下面的指令,输入密码后可以切换到管理员root用户。root用户具有比ubuntu用户更高的权限。需要退出root用户的时候,请输入exit并回车

su

0977aedaa9844ab5bbb95aa43b71c82a我们下次登录树莓派时发现时区不对,参考此链接查看如何更改时区

2.3 树莓派换源

ubuntu20.04的镜像服务器在国外,国内要访问和下载一些工具往往会受服务器连接稳定性和网速的影响,因此这一步我们可以把树莓派的镜像源更换为国内的,我这选的是USTC的源。请按以下步骤完成树莓派的换源。

sudo cp -p /etc/apt/sources.list /etc/apt/sources.list.bak   #备份树莓派的源
sudo vim /etc/apt/sources.list                               #用vim工具打开并编辑

0ecfab1678e54f918c43e86497e8934e按a进入--INSERT--模式,在每个黄色的deb前面加上#以注释掉该行。最后在文末增加如下代码。

# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ focal main main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse

编辑完如下图所示。然后按Esc退出--INSERT--模式,输入:wq保存修改并退出vim。

5e3113a357ad4265b0a231348ac4c3f6然后在命令行中先后输入以下2行代码,等待几分钟让树莓派自动更新源,如果提示【Y/N?】请输入Y并回车。

sudo apt update
sudo apt upgrade

2.4 设置树莓派静态IP

树莓派默认是DHCP自动获取动态IP的,因此我们在局域网里登录树莓派前必须查看树莓派IP,这就很麻烦。所以我们可以设置树莓派的静态IP,这就省去了每次登录WiFi管理页面查看树莓派IP地址了。咱们说干就干。参考这个视频的静态IP的设置方法

我们先输入下面一条命令获得树莓派网卡信息。

sudo apt install net-tools      #如果提示command 'ifconfig' not found,请先输入这行代码安装net-tools
ifconfig

c4673d990eec4564949b2d8849c96b8eeth0:是树莓派有线网卡的名称。

192.168.1.9 :是树莓派局域网当前的IP。

ll /etc/netplan/

我们输入上面指令并回车,查看netplan目录下有的文件。我们需要修改xx-cloud-init.yaml文件,我的是50-cloud-init.yaml,前面的50是随机数,每个人可能不一样,以你自己的为准

7192e7b0512c4c3e8a9b39e17179b992

sudo vim /etc/netplan/50-cloud-init.yaml

输入上面的代码进入网卡配置文件编辑,编辑方法参考树莓派换源那个步骤。下面这是我的配置,以供参考。文件保存并退出。

72b629d727764b4c82a75900e7d1e224输入以下代码执行netplan的变更操作。

sudo netplan apply

如果Xshell没反应或者有如下的提示,说明此时树莓派IP已更换,需要在Xshell里重新输入更改后的树莓派IP并重新登录。步骤参考Xshell登录树莓派。

a49d880622a847eb9bc951efb61c1aa0我们重新登录上树莓派后可以通过ifconfig查看到树莓派IP变成了192.168.1.10

b870b77e1d6b44eaa2993d82c4eaa3d4我们尝试通过ping一下百度,如果有ping成功说明此时我们树莓派是可以上网的。退出ping请输入Ctrl+C组合键。

ping baidu.com

de7db891541341e093a2e6abab782338可以看到我们ping成功了,说明到此为止树莓派基础配置已经完成。

frp内网穿透工具的配置

1. 申请一个阿里云服务器

学生专享免费领取服务器申请,按照步骤和提示,完成训练计划,点击免费领取,并完成相关任务,初步了解ECS云服务器。

d6d0001889634ac4b010996a2da665de我的云服务器选的是Ubuntu20.04 64位的系统,建议选这个系统,记住公网IP

e91022a57fa646b19ee9016e400ccee080f5c99c7e224c0fb7d3d31049a1a03b点击【远程连接】后,选择第一个,以root用户登录,记住登录密码。

a6e5f445dac44c669be3531ff6bf7d36到这一步已经完成了云服务器的远程登录。

2. FTP配置

有时我们需要往服务器上传文件和下载文件,我采用FTP实现服务器端和客户端文件的互传。相关的配置过程如下。首先输入下行代码下载安装vsftpd工具。

sudo apt update
sudo apt upgrade      #更新源
sudo apt-get install vsftpd

安装完成以后使用vim打开。/etc/vsftpd.conf 进行配置,命令如下。

sudo vim /etc/vsftpd.conf

打开vsftpd.conf文件以后,找到如下两行。

local_enable=YES 
write_enable=YES 

确保上面2行代码前面没有“#”,有的话就取消掉,完成以后如下图所示。

6dc4cd07b1d54f1888781844e16274d2修改完后保存退出,并且输入以下命令重启FTP服务

sudo /etc/init.d/vsftpd restart

因为阿里云服务器有默认的安全组保护,所以我们要将FTP需要使用的端口放开使用。进入阿里云控制台,点击【更多】->【网络和安全组】->【安全组配置】

651464e7b7574762b1cf3e47d0d27d8b之后点击【配置规则】,在【入方向】点击【手动添加】,配置端口20/21,源0.0.0.0/0,如下图所示。最后确定保存

7588a75c6ed7489393d8987b671de75d链接:https://pan.baidu.com/s/18AlkpBGqDWiiFIhnQhHSHA?pwd=x5t2

提取码:x5t2

点开链接下载【FileZilla】,按照安装步骤一直下一步就可以了,然后打开软件,点击【站点管理器】

a654b23039f84ede8d8c3162b95705b6983f43852be24a06ad1c2dc83e38556c当出现下图所示信息,说明已经FTP已经成功连上了阿里云服务器,此时我们就可以往服务器上传和下载文件了。

9bc1fe5954b4402a9094a566506c9d2b树莓派端也可以通过FTP很方便地传输文件,在【站点管理器】那页输入树莓派的局域网ip(192.168.1.10)即可。我们就可以很方便地通过局域网给树莓派上传文件了。

3. frp的下载

打开网盘链接可以下载我的frp文件。

链接:https://pan.baidu.com/s/1GlIqBB-9PjHo6NfMD68F5Q?pwd=6p70

提取码:6p70

34709a61ece64f809b39de8ca745e5c3需要注意的是,请把linux_386的文件通过【FileZilla】发送到阿里云服务器的/opt/目录下,linux_arm64的文件发送到树莓派的/opt/目录下。如果树莓派的文件传输不了,提示permission denied,是因为我们登录的ubuntu用户没有权限操作/opt目录里的文件,即没有权限往/opt里传输文件。请按照这个链接里的步骤操作,然后在FileZilla这个软件里使用root和密码登录树莓派再传输文件到/opt。我们可以很方便地使用鼠标拖动文件的方式是实现文件地传输操作,这里我就不过多操作了,请你自己亲自操作尝试一下。

4. frp配置

4.1 阿里云服务器端的frp配置和frps服务开启

输入以下命令进入/opt目录,有一个frp的tar.gz的压缩包,我们输入指令解压它。然后进入解压出来的文件夹。

cd /opt/                                    #进入opt目录
ls                                          #列出目录下的文件
tar zxvf frp_0.37.0_linux_386.tar.gz        #解压文件
cd frp_0.37.0_linux_386/

0d4216ecb42a47b39e47bdb44a461e3b解压出来的文件有如上所示的几个文件。阿里云的配置需要修改frps.ini这个文件。

vim frps.ini

c31625631586432e91f6236b8757d8a4保存配置后退出,我们还需要拷贝2个文件。输入以下2个命令拷贝文件。

cp frps /usr/local/bin/frps
mkdir /etc/frp/                   #创建/etc/frp/这个目录
cp frps.ini /etc/frp/frps.ini     #如果提示No such file or directory,请先执行上一条命令

在我们解压的文件里,还有一个systemd文件夹,进入systemd文件夹查看里面的文件。我们还需要配置一下frps自启动的服务。使用vim工具进行编辑。

5d12d4ddf92948089042af964eaba57b

cd systemd
ls
vim frps.service

这个文件我们只需要修改ExecStart这一行代码,这行代码的意思是frps这个服务的开启路径,把frps和frps.ini这2个文件的路径相应地填进去就可以了。下面这行是我自己配置的路径,请相应的改为你自己的路径,经供参考!

ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini   

65d239aceb5d4bb3880354ef89b13668保存后退出。输入以下命令把上面修改的文件复制到/etc/systemd/system/目录下

cp frps.service /etc/systemd/system/

然后输入以下几行代码让它能开机自动启动frps这项服务

systemctl daemon-reload             #重载
systemctl start frps.service        #启动frps服务
systemctl enable frps.service       #使能开机自动启动frps服务
systemctl status frps.service       #查看frps服务的当前状态

验证frps是否开机自动启动,先输入reboot让云服务器重启,然后重新登录上云服务器输入systemctl status frps.service查看。如果出现下图所示的提示【active(running)】说明已经成功配置了开机自动启动服务。

aa271cbe0e4b41a3ac7d554c2eb62f4e4.2 树莓派客户端的frp配置和frpc服务开启

树莓派的配置与云服务器端的配置相似,不同的是树莓派作为客户端需要配置的相关文件是frpc.ini,frpc ,frpc.service这三个。

dcd0d47536d549d6b4e7d0e3676f7a02这里讲解一下frpc.ini文件的配置,这里请记住用到的端口6000和端口7000。

4f0b5aed1ee74173bf7eb9eef3f5c54a

[common]
server_addr = 0.0.0.0   #frp服务端地址,可以填ip或者域名,这里假设为0.0.0.0
server_port = 7000      #frp服务端端口,即填写服务端配置中的 bind_port

[ssh]
type = tcp              #连接类型,填tcp或udp
local_ip = 127.0.0.1    #填127.0.0.1或内网ip都可以
local_port = 22         #需要转发到的端口,ssh端口是22
remote_port = 6000      #frp服务端的远程监听端口,即你访问服务端的remote_port就相当于访
                        #问客户端的 local_port,如果填0则会随机分配一个端口

然后是修改frpc.service文件,需要注意的是frpc.service ,不是frps.service。配置的内容如下图。

1b505772fd96441ca45709cafa265c9c红框里的路径根据你的树莓派的配置路径填写,这是我的,仅供参考。然后通过以下命令复制frpc.service到指定目录。

cp frpc.service /etc/systemd/system/

下面重载服务并允许开启启动

systemctl daemon-reload             #重载
systemctl start frpc.service        #启动frps服务
systemctl enable frpc.service       #使能开机自动启动frps服务
systemctl status frpc.service       #查看frps服务的当前状态

5. 云服务器端安全组设置

还记得之前要记住的6000和7000的端口号吗?阿里云服务器的安全组和我们个人电脑的防火墙概念类似,目的是保护我们服务器不被黑客肆意攻击破坏,所以我们上面已经配置好服务端和客户端但还是不能实现内网穿透,原因在于我们还没有给frp需要的端口开启服务,这一步我们就需要开启6000和7000端口。

进入阿里云控制台,点击【更多】->【网络和安全组】->【安全组配置】,之后点击【配置规则】,在【入方向】点击【手动添加】,配置端口6000/7000,源0.0.0.0/0,如下图所示。最后确定保存。

8d72a53092f34c609830bb23e4cd3142 (1)

效果测试

我使用的测试工具是手机APP【JuiceSSH】,为了证明是外网登录树莓派,我断开手机的WiFi连接,使用4G流量登录树莓派。

点击【快速连接】然后选择SSH,输入[username@]server_addr[:port],输入密码后就可以登录了。

f47ca3a54109402ea6b25d7a58f8ecfe50a4e35a8e854540a3466be52fbffff6上面登录使用username的是你树莓派的用户名(root或者ubuntu),server_addr是阿里云服务器的公网IP,port 6000就是设置的 remote_port,最后的登录密码是树莓派的密码,而不是阿里云服务器的密码,这一点一定要注意。

前期只开通了SSH的服务,如果需要搭建个人博客或者通过内网穿透操控树莓派管理家里的智能家具、家庭文件管理系统等等丰富的应用场景,还可以配置相关文件和端口。

本文转载自飞天加速计划,作者为机器人工程专业大四学生:https://developer.aliyun.com/article/864852

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
存储 机器学习/深度学习 人工智能
2025年阿里云GPU服务器租用价格、选型策略与应用场景详解
随着AI与高性能计算需求的增长,阿里云提供了多种GPU实例,如NVIDIA V100、A10、T4等,适配不同场景。2025年重点实例中,V100实例GN6v单月3830元起,适合大规模训练;A10实例GN7i单月3213.99元起,适用于混合负载。计费模式有按量付费和包年包月,后者成本更低。针对AI训练、图形渲染及轻量级推理等场景,推荐不同配置以优化成本和性能。阿里云还提供抢占式实例、ESSD云盘等资源优化策略,支持eRDMA网络加速和倚天ARM架构,助力企业在2025年实现智能计算的效率与成本最优平衡。 (该简介为原文内容的高度概括,符合要求的字符限制。)
|
3天前
|
存储 弹性计算 人工智能
2025年阿里云企业云服务器ECS选购与配置全攻略
本文介绍了阿里云服务器的核心配置选择方法论,涵盖算力需求分析、网络与存储设计、地域部署策略三大维度。针对不同业务场景,如初创企业官网和AI模型训练平台,提供了具体配置方案。同时,详细讲解了购买操作指南及长期运维优化建议,帮助用户快速实现业务上云并确保高效运行。访问阿里云官方资源聚合平台可获取更多最新产品动态和技术支持。
|
6天前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
1月前
|
弹性计算 数据挖掘 应用服务中间件
阿里云轻量应用服务器68元与云服务器99元和199元区别及选择参考
目前阿里云有三款特惠云服务器,第一款轻量云服务器2核2G68元一年,第二款经济型云服务器2核2G3M带宽99元1年,第三款通用算力型2核4G5M带宽199元一年。有的新手用户并不是很清楚他们之间的区别,因此不知道如何选择。本文来介绍一下它们之间的区别以及选择参考。
519 87
|
8天前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
|
2天前
|
存储 人工智能 弹性计算
2025年阿里云企业高性能云服务器租用价格与选型详解
随着企业数字化转型,阿里云于2025年推出多款高性能云服务器实例,涵盖计算、通用和内存密集型场景。文章分析了企业选择云服务器的核心要点,包括明确业务需求(如计算密集型任务推荐计算型实例)、性能与架构升级(如第八代实例性能提升20%),以及第九代实例支持AI等高算力需求。同时提供了配置价格参考和成本优化策略,助力企业实现效率与成本的最优平衡。
|
2天前
|
机器学习/深度学习 存储 人工智能
2025年阿里云GPU服务器的租赁价格与选型指南
随着AI、深度学习等领域的发展,GPU服务器成为企业及科研机构的核心算力选择。阿里云提供多种GPU实例类型(如NVIDIA V100、A100等),涵盖计算型、共享型和弹性裸金属等,满足不同场景需求。本文详解2025年阿里云GPU服务器的核心配置、价格策略及适用场景,帮助用户优化选型与成本控制,实现高效智能计算。
|
1天前
|
机器学习/深度学习 人工智能 程序员
阿里云出手DeepSeek拒绝服务器繁忙,程序员直呼:真香!
阿里云PAI平台支持一键部署DeepSeek-V3和DeepSeek-R1大模型,用户无需编写代码即可完成从训练到部署的全过程。通过PAI Model Gallery,开发者可轻松选择并部署所需模型版本,享受高效、便捷的AI开发体验。教程详细介绍了开通PAI、选择模型及一键部署的具体步骤,帮助用户快速上手。
|
2天前
|
机器学习/深度学习 存储 弹性计算
阿里云gpu云服务器租用价格:最新收费标准及活动价格参考
阿里云gpu云服务器多少钱?A10卡GN7i GPU云服务器32核188G3213.99/1个月起,V100卡GN6v GPU云服务器8核32G3830.00/1个月起,阿里云GPU云服务器是基于GPU应用的计算服务,多适用于视频解码,图形渲染,深度学习,科学计算等应用场景,该产品具有超强计算能力、网络性能出色、购买方式灵活、高性能实例存储( GA1和GN5特有)等特点。下面小编来介绍下阿里云gpu云服务器最新的收费标准及活动价格。
|
5天前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。

热门文章

最新文章