基本介绍
由于云芯一号比较难配置静态外网ip,笔者每次连接云芯一号都需要大费周折地通过连接显示屏和键盘来查看云芯一号的内网ip地址,或者通过路由器的后台查看板子ip,操作比较不便。虽然可以通过固定ip地址的方式使每次获取的都是同一个ip地址,但是一旦更换网络环境,可能又需要重新修改ip地址,那么有没有什么办法能让开发者们随时随地,在各种网络环境下,都能比较稳定方便地连接上云芯以后呢?这边教程将会讲解如何通过使用frp(一种内网穿透软件)在不知道开发板ip地址,甚至不用在同一个内网环境下连接云芯一号。(由于笔者之前已经根据宽心大佬的教程https://aijishu.com/a/1060000...,以下操作均以该系统版本下进行操作)
0. 配置前准备
(1)公网服务器1台
(2)云芯一号1台
(3)公网服务器绑定域名1个 (或者静态ip也可)
1. 安装frp
公网服务器(使用frps)与云芯一号(使用frpc)都需要下载frp进行安装,
1.1 公网服务器安装frps
在云服务器上运行
wget [https://github.com/fatedier/frp/releases/download/v0.34.1/frp_0.34.1_linux_amd64.tar.gz](https://github.com/fatedier/frp/releases/download/v0.34.1/frp_0.34.1_linux_arm64.tar.gz)
tar -xvf [frp_0.34.1_linux_amd64.tar.gz](https://github.com/fatedier/frp/releases/download/v0.34.1/frp_0.34.1_linux_arm64.tar.gz)
cd ./[frp_0.34.1_linux_amd64](https://github.com/fatedier/frp/releases/download/v0.34.1/frp_0.34.1_linux_arm64.tar.gz)
ls
可以看到,目录下包括4个文件,分别是frpc、frpc.ini和frps、frps.ini,前者两个文件是客户端所关注文件,后者两个文件是服务端所关注两个文件。
然后运行vi ./frps.ini
, 把以下内容黏贴进去,
[common]
bind_port = 7000 #与客户端绑定的进行通信的端口
vhost_http_port = 6081 #访问客户端web服务自定义的端口号
保存后运行 ./frps -c ./frps.ini
启动服务,如果是想要让frps一直运行,则可以通过运行nohup ./frps -c ./frps.ini &
将指令挂到后台。完成后记得把服务器的6000-8000端口都打开(或者按需打开端口)。
1.2 云芯一号安装frpc
从https://github.com/fatedier/frp/releases下载frp_0.10.0_linux_amd64.tar.gzhttps://github.com/fatedier/frp/releases/download/v0.34.1/frp_0.34.1_linux_arm64.tar.gz,通过sftp传输到云芯一号上,
运行
tar xvf frp_0.10.0_linux_amd64.tar.gz
cd ./frp_0.10.0_linux_amd64
运行vi ./frpc.ini
, 把以下内容黏贴进去
[common]
server_addr = 123.123.123.123 #服务器公网IP或者域名
server_port = 7000 #frp服务端口,需与frps.ini相同
[ssh] #服务名称,可自定义
type = tcp #协议类型(tcp)
local_ip = 127.0.0.1
local_port = 22 #本地SSH服务端口
remote_port = 6002 #外网访问SSH服务端口
# http后续教程会用到,后续再进行讲解
# [web] #服务名称,可自定义
# type = http #协议类型(http)
# local_ip = 127.0.0.1
# local_port = 80 #本地web服务端口
# use_encryption = false
# use_compression = true
效果如下:
2. 运行frpc
./frpc -g ./frpc.ini
3. 测试连接
运行 ssh linaro@云服务器域名或静态ip -p 6002
从通过外网访问成功(撒花)
4. 开机自动运行frpc
修改/etc/rc.local文件,在最后一行添加
# /etc/rc.local
ssh-keygen -A
# 添加以下文字
/home/linaro/frp_0.34.1_linux_arm64/frpc -c /home/linaro/frp_0.34.1_linux_arm64/frpc.ini
5. 总结
通过frp,我们能很方便地从外网环境访问到云芯一号微服务器,更重要的是可以省去很多网络配置步骤且随时随地能访问开发板。以本篇教程作为开端,下一篇教程将会集中讲解如何在云芯一号开发板上部署深度学习模型,并开放端口供外部设备(可以是手机,电脑或者摄像头)使用,同时,利用本篇博客讲解的frp软件,我们也能非常方便地在复杂的网络环境下(eg. 使用电信网络手机想使用云芯一号进行推演)灵活地使用云芯一号。