背景
最近入手了一块raspberry 3b+,想要随时随地访问树莓派需要配置内网穿透。我最初找了一些这方便的文章,根据步骤配置,效果不怎么样。然后用了花生壳,体验也不好。后来发现一款强大的免费内网穿透软件,比起付费软件毫不逊色。
配置方案
注册Sakura frp账号
百度Sakura,第一个就是官网,长这样
点击注册,按照提示填写资料。
注册完成后进入管理面板,记住访问密匙,后面会用到。
确认系统架构
树莓派官方系统的系统架构是arm,如果使用的其它系统,执行下面命令,根据输出结果确定系统架构
1 | $ uname -a |
架构 | 输出结果 |
---|---|
i386 | i386, i686 |
amd64 | x86_64 |
arm | arm, armv7l |
arm64 | aarch64, armv8l |
mips | mips |
mips64 | mips64 |
不支持 | alpha, arc, blackfin, c6x, cris, frv, h8300, hexagon, ia64, m32r, m68k, metag, microblaze, mn10300, nios2, openrisc, parisc, parisc64, ppc, ppcle, ppc64, ppc64le, s390, s390x, score, sh, sh64, sparc, sparc64, tile, unicore32, xtensa |
如果您的输出结果不在上面列表中,可以通过[百度](https://www.baidu.com/进行搜索
安装frpc
登录管理面板,在侧边栏点击 “软件下载” :
根据系统架构复制相应的下载地址
使用下面的命令进入/usr/local/bin
目录并下载文件
1 | cd /usr/local/bin |
然后使用下面的命令设置正确的权限并检查输出
1 | # chmod 755 frpc |
如果您看到和图里一样的输出,frpc 就安装完成并可以正常使用了。您可以执行下面的命令来再次确认
1 | $ frpc -v |
配置开机自启/后台运行
让frpc
在开机时自启或在后台运行,可以让你在任何地方连接树莓派,这需要将frpc
注册为系统服务
首先,您要搞清楚您的Linux
系统使用的 初始化系统 是什么,官方文档提供三种常见初始化系统的配置指南:
执行下面的命令然后查看输出,确定您的初始化系统
1 | # if [[ `/sbin/init --version` =~ upstart ]]; then echo Upstart; elif [[ `systemctl` =~ -\.mount ]]; then echo Systemd; elif [[ -f /etc/init.d/cron && ! -h /etc/init.d/cron ]]; then echo SysV-Init; else echo Unknown; fi |
目前官方文档上只有Systemd
的配置指南,另外两个还没写好,本人目前用的是树莓派官方系统,初始化系统是Systemd
,下面是Systemd
配置frpc
开机自启/后台运行的方法
编写配置文件
Systemd
的Unit
配置文件 通常位于这些目录中:
- /lib/systemd/system
- /etc/systemd/system
本文选用第一个目录来放置frpc
的Unit
配置文件,并且frpc
启用后报错退出时每分钟会自动重启一次
执行下面命令
1 | # vi /lib/systemd/system/frpc@.service |
其中vi
是一个文本编辑器,可以换成其它的
输入下述内容
1 | [Unit] |
执行下面的命令重载Systemd
,这样这样服务就配置完成了
1 | # systemctl daemon-reload |
配置开机自启
使用下面的命令启用/禁用服务,enable
是启用,disable
是禁用,操作完成后再用status
检查一下状态
1 | # systemctl <enable|disable> <Unit名称> |
如果一切正常,您会看到我图中的两个红色标注的内容
没看到第一个创建符号链接的提示也是正常的,只要下面的状态显示为
enabled
就行
启动器的基本设置
登录管理面板,点击侧边栏的“软件下载”,下载推荐版本,如果打不开再换下面的传统启动器
下载完毕后解压,点击SakuraLauncher.exe
运行启动器(如果下载的是传统启动器运行LegacyLauncher.exe
)进入用户信息界面,复制访问密钥(也叫token)到启动器点击登录
创建隧道或在官网创建隧道,隧道创建成功后可通过启动器启动隧道
启动成功后右下角会弹出通知,提示隧道连接方式。该通知可以在设置中通过 关闭隧道状态提示 选项禁用
转到日志标签可以复制连接方式
关于隧道
启动/停止隧道
1 | # systemctl <start|stop> <Unit名称> |
使用上面命令启动/停止隧道,start
是启动,stop
是停止
其中<Unit名称>为<你的Token>:<隧道ID>[隧道ID[隧道ID…]]
如:
1 | # systemctl start frpc@wdnmdtoken666666:12345 |
查看隧道状态
可以通过下面命令查看特定隧道状态
1 | # systemctl status <Unit名称> |
或者通过下面命令查看所有隧道状态
1 | # systemctl list-units frpc@* |