买了树莓派!
不得不感慨树莓派现在都成了理财产品,三四百的东西都上千了,属于是魔幻现实主义了。(让我看看是什么掏空了我的钱包.jpg)
买树莓派的初衷是前一阵搭建的私有云已经快被我塞满了,鉴于云服务器昂贵的费用,我还是决定自己把服务搭建在本地。相比于其他解决方案,树莓派的可玩性更高,也方便我后期跑一些其他的服务。
这就不得不请教一下各位大大们了,树莓派 4b 的性能到底怎么样啊,目前计划的东西比较多,包括一个博客,一个私有云,一些脚本,MC 服务器(这个我也没抱太大希望就是了)等等,对这块小板子确实没什么信心
树莓派的基本配置在网上基本上其实都已经有了详细的介绍,在树莓派的烧录工具里也支持配置 ssh 以及 WiFi 等,因此本文将不再进行赘述。本文默认你已经完成了 Ubuntu 系统的烧录和登录,并拥有一个带有一个公网 IP 的云服务器。(如果有需要的话我也可以另开一个文章写写)
frp
frp 的相关文档可以在这里找到。
frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。用户通过访问服务端的 frps,由 frp 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信。因此在配置过程当中,一定记得把自己云服务器安全组中对应的端口打开!
下载 frp
在 github 当中可以下载到目前最新版本的服务端和客户端文件。我这里下载的是 0.45.0。我们通过运行以下命令来直观的查看对应的架构
[root@VM-0-7-centos ~]# arch
对应的版本为:
frp | Linux |
---|---|
386 | x86 架构 |
amd64 | 64 位 x86 架构 |
arm | arm 架构 |
arm64 | 64 位 arm 架构 |
mips | mips 架构 |
mips64 | 64 位 mips 架构 |
mipsle | mipsle 架构 |
mips64le | 64 位 miplse 架构 |
因此在树莓派上,我应该使用 arm64 版本,在云服务器上我应该选择 amd64(x86 64 位架构)。
解压缩下载的压缩包,将其中的 frpc 拷贝到内网服务所在的机器上,将 frps 拷贝到具有公网 IP 的机器上,放置在任意目录。
通过 ssh 访问内网机器
frps.ini 配置:
[common]
bind_port = 7001 #这里我用了7001你可以自己选
frpc.ini 配置:
[common]
server_addr = 你自己云服务器的公网ip
server_port = 7001 #这里我用了7001你可以自己选
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
启动 frps 和 frpc
./frps -c ./frps.ini
./frpc -c ./frpc.ini
一些要注意的坑
1.提示没有权限
-bash: ./frps: Permission denied
可以通过运行以下代码来给对应的文件副赋予权限 (frps 同理)
chmod 700 frps
2.客户端提示连接不到服务器
connect: no route to host
放开你云服务器的对应端口,在本文中,你需要放开对应的 7001 端口(用来与树莓派连接)和 6000 端口(用来让你通过这个端口访问 ssh)
你可以在对应的云服务器供应商的控制台里放开响应的安全组。腾讯云的我没折腾明白,因此我用了以下命令来让机器防火墙放开对应端口:
firewall-cmd --permanent --add-port=7001/tcp
firewall-cmd --permanent --add-port=6000/tcp
firewall-cmd --reload
至此,ssh 连接已经建立成功,你可以通过访问你公网的 6000 端口来访问内网的机器
使用 systemd 控制 frps 及配置开机自启
这部分其实在 frp 文档中有详细的介绍,且几乎没有坑。我现在将其重点部分搬过来。
要使用 systemd
来控制 frps
,需要先安装 systemd
,然后在 /etc/systemd/system
目录下创建一个 frps.service 文件。
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.ini
[Install]
WantedBy = multi-user.target
使用
systemd
命令,管理 frps。# 启动frp systemctl start frps # 停止frp systemctl stop frps # 重启frp systemctl restart frps # 查看frp状态 systemctl status frps
配置 frps 开机自启。
systemctl enable frps
frpc 同理。
后记
其实本篇想把迁移私有云服务的部分全部写完的,但想了想这样反而会让文章没有重点,又臭又长(笑)。下一步打算把博客迁移到我的树莓派上,等放假把树莓派扔到家里再进行私有云的完整搭建,毕竟硬盘还没买(笑)