用树莓派加内网穿透搭免费网站

用树莓派加内网穿透搭免费网站
逐暗者背景
家中闲置的一个树莓派,想着如果能用来建立网站,那也算有点用处了。看了一下树莓派的配置,和阿里云对比,那可是要不少软妹币的。
安装树莓派
这里先说一下踩过的坑,如果刷raspberry pi os 的话,那后期安装nginx、mysql等都比较麻烦,如果只是想用来搭建网站服务器的话,可以刷ubuntu ,配合免费版宝塔面板,何乐而不为呢?
刷ubuntu
首先下载raspberry pi Imager ,这个从官网下载就好,无论是win系统还是macos都有对应的版本。
https://www.raspberrypi.com/software/
打开软件,选择os、sd卡,这里选择的是ubuntu server版本,我的树莓派都没有接显示器,所以不用装桌面版。
然后千万别忘记设置ssh服务和WIFI
这个工具方便之处在于OS镜像、ssh服务、WIFI一次搞定。烧录完成之后就可以将SD卡插入树莓派启动系统了。
调整系统
刚刷完的系统还需要做一些小调整,首先通过路由器找到raspberry的ip
想固定IP的话,顺带用路由器绑定一下mac和ip地址就好了。
然后登录树莓派的ssh服务(可以使用工具或者mac自身的ssh都行)
如果觉得pi账号每次都要su比较麻烦,可以开放root账号。
1 | sudo passwd root |
【Ctrl+W】快捷键,搜索【PermitRootLogin without-password】,修改【PermitRootLogin without-password】为【PermitRootLogin yes】。
【Ctrl+O】快捷键,保存。
安装宝塔面板
既然有免费版本的面板使用,为什么还要使用命令行安装再手动修改配置呢?
宝塔面板官网
可以选择万能安装脚本
接着等待脚本运行完成,会有提示访问地址、账号和密码。至此本地服务器就搭建完成了,通过面板可以安装各种环境,例如:nginx、php、mysql、redis、docker等等,都是可视化界面操作,搭建网站也是分分钟的事情。
内网穿透
但是现在只能在局域网内访问树莓派的网站,离开家之后就访问不到了。所以我们需要内网穿透,免费的推荐StarryFrp ,未实名有5条隧道,实名后有10条通过(实名好像要支付2元),带宽限制调整为 8Mbps 。 每日签到送流量,未实名1 ~ 3 GiB ,实名后 1 ~ 10 GiB 。 一般个人网站足够使用了。
创建隧道
注册好后就可以根据提示创建隧道了,选择合适的节点和协议就可以了。
再回到隧道列表,查看详细信息,记得将自己的域名解析到节点地址上,采用cname解析。
接着就是下载软件,由于我烧录的是64位系统,所以这里也要选择arm64的软件,可以通过wget直接下载。
当然别忘记给下在下来的软件授权执行
1 | chmod +x ./frpc |
再回到隧道列表,获取启动命令就可以了
其实启动命令就是
1 | ./frpc -f <账户token>:<隧道id> |
正常启动后可以看到提示信息,然后使用域名访问网站就可以了。
可以看到用域名访问到了一个内网的宝塔控制面板。
然后可以做什么呢?当然能做很多事情啦,可以搭建自己的图床,可以部署自己的博客,甚至可以使用docker部署一些工具,例如搭建一个自己的bitwarden秘钥管理软件,再也不用担心密码存放在别人的服务器上是否安全了。
自启动
每次都自己输入命令启动是比较麻烦的,自启动当然不能遗漏。
由于刷了ubuntu,我们就来使用systemd来做自启动。
1 | vi /etc/systemd/system/frpc@.service |
1 | [Unit] |
其中ExecStart需要替换成自己下载的frpc的位置。
隧道
执行下面的命令重载 Systemd,这样服务就配置完成了
1 | systemctl daemon-reload |
请记住后续操作中用到的 Unit名称 是 frpc@<启动参数>,例如frpc@wdnmdtoken666666:12345
- 启动/停止隧道
1 | systemctl <start|stop> <Unit名称> |
举个例子,开启访问密钥为 wdnmdtoken666666 的用户所拥有的 ID 为 12345 的隧道:
1 | systemctl start frpc@wdnmdtoken666666:12345 |
- 查看隧道状态
1 | systemctl status <Unit名称> |
- 查看隧道日志
1 | journalctl -u <Unit名称> |
- 开机自启动
1 | systemctl <enable|disable> <Unit名称> |
- 有多个隧道忘记了怎么办? 可以查询
1 | systemctl list-units --all "frpc@*" |
尾声
至此,使用树莓派在家就可以搭建一个外网可访问的网站了,整个过程除了硬件外,其他都是免费的。ssl证书现在有不少免费的单域名证书可以申请。非实名认证也是可以用的内网穿透的,就是流量有些少。域名也有免费的域名可以申请注册,所以想完全不花额外的软妹币,也是可以做一个自己的网站的。