文章前言
昨天早些时候撸了几个CloudFlare的Pro专业版,把手里的几个域名也顺利升级了,发现CF的Argo Tunnel 功能相当不错,我想大部分人都不知道这个功能是干啥的把。简单说就是类似于国内的花生壳这样的服务,内网穿透,让你在自己在内网里架设WEB服务,并且官方博客里也给出了一个如何用树莓派搭建网站的教程,这个就是利用CloudFlare的Argo Tunnel 功能,所以一着急我就下手开始整了。如果你感兴趣可以参考一下文章:
https://blog.cloudflare.com/cloudflare-argo-tunnel-with-rust-and-raspberry-pi/
根据官方文档下载了适用于树莓派的cloudflared软件,但是发现这玩意只支持32位的ARMv6的版本,这个蛋疼,需要自己编译但是身边也没有环境,于是有了这篇文章。
环境搭建
为了不影响我本地的环境,决定利用docker容器来操作,cloudflared是用golang编写的,所以直接到docker hub拉去最新的golang镜像即可,这里简单记录一下:
docker pull golang
docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:latest bash
下载编译
接下来就简单了,上面成功进入容器后拉去源代码:
go get -v github.com/cloudflare/cloudflared/cmd/cloudflared
这很可能需要一点时间,最近国际网络也是很毁三观啊,建议你在境外的服务器上操作或者你还有什么其他版本让网络直达。
编译arm64版本:
GOOS=linux GOARCH=arm64 go build -v -x github.com/cloudflare/cloudflared/cmd/cloudflared
编译很快完成后退出容器你就能看到当前目录下有一个cloudflared文件,把他下载下起来上传到树莓派上。
软件安装
安装很简单,把编译完成的cloudflared文件上传到树莓派的任意目录执行即可,你可以这样操作:
直接上传到树莓派的/usr/bin/
目录下
scp cloudflare [email protected]:/usr/bin
我这里用了树莓派俱乐部编译的centos 8系统,所以你操作的时候需要把主机名raspberrypi.lan
换成树莓派的IP或者主机名。
为cloudflared添加可执行权限:
chmod +x /usr/bin/cloudflared
测试运行
cloudflare --version
显示如下:
cloudflared version DEV (built unknown)
这样就安装完成了。
文章总结
Cloudfalre的这个功能很棒我一开始过于激动直接上手操作了,以为是专业版自带的功能,折腾到半路死活不成功才发现这个功能需要每个月5刀,而且按流量收费,直接删文件关机。这价格都不如买个服务器做内网穿透来的舒服。
不过如果你不想用服务器或者你想在家里的树莓派上做web服务器而且还考虑到安全维护这些问题,那么建议你折腾一下。
好了以上就是小小的折腾内容,这也是我第二次投稿,希望树莓派俱乐部越办越好!