背景
text 代码:家中闲置的一个树莓派,想着如果能用来建立网站,那也算有点用处了。看了一下树莓派的配置,和阿里云对比,那可是要不少软妹币的。
安装树莓派
这里先说一下踩过的坑,如果刷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账号。
sudo passwd root
#执行后提示设置密码,输入2遍确认
sudo passwd --unlock root
#解锁root账户,如需再次锁定,将unlock改成lock即可
su
#输入刚设置的密码,进入root账户
sudo nano /etc/ssh/sshd_config
#放开root账户使用ssh登录
【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直接下载。
当然别忘记给下在下来的软件授权执行
chmod +x ./frpc
再回到隧道列表,获取启动命令就可以了
其实启动命令就是
shell 代码:./frpc -f <账户token>:<隧道id>
正常启动后可以看到提示信息,然后使用域名访问网站就可以了。
可以看到用域名访问到了一个内网的宝塔控制面板。
然后可以做什么呢?当然能做很多事情啦,可以搭建自己的图床,可以部署自己的博客,甚至可以使用docker部署一些工具,例如搭建一个自己的bitwarden秘钥管理软件,再也不用担心密码存放在别人的服务器上是否安全了。
自启动
每次都自己输入命令启动是比较麻烦的,自启动当然不能遗漏。
由于刷了ubuntu,我们就来使用systemd来做自启动。
vi /etc/systemd/system/frpc@.service
shell 代码:[Unit]
Description=SakuraFrp Service
After=network.target
[Service]
Type=idle
User=nobody
Restart=on-failure
RestartSec=60s
ExecStart=/usr/local/bin/frpc -f %i
[Install]
WantedBy=multi-user.target
其中ExecStart需要替换成自己下载的frpc的位置。
隧道
执行下面的命令重载 Systemd,这样服务就配置完成了
systemctl daemon-reload
请记住后续操作中用到的 Unit名称 是 frpc@<启动参数>,例如frpc@wdnmdtoken666666:12345
- 启动/停止隧道
systemctl <start|stop> <Unit名称>
举个例子,开启访问密钥为 wdnmdtoken666666 的用户所拥有的 ID 为 12345 的隧道:
shell 代码:systemctl start frpc@wdnmdtoken666666:12345
- 查看隧道状态
systemctl status <Unit名称>
- 查看隧道日志
journalctl -u <Unit名称>
- 开机自启动
systemctl <enable|disable> <Unit名称>
- 有多个隧道忘记了怎么办? 可以查询
systemctl list-units --all "frpc@*"
尾声
至此,使用树莓派在家就可以搭建一个外网可访问的网站了,整个过程除了硬件外,其他都是免费的。ssl证书现在有不少免费的单域名证书可以申请。非实名认证也是可以用的内网穿透的,就是流量有些少。域名也有免费的域名可以申请注册,所以想完全不花额外的软妹币,也是可以做一个自己的网站的。
博主,我想问一下,启动隧道之后宝塔面板不需要进行配置操作吗?SSL证书要在哪里添加呢 OωO
我是隧道启动之后映射到https的443端口,然后宝塔上创建网站,启用https,设置证书就好了。宝塔网站设置里有ssl证书配置,把自己申请下来的证书填进去就好了
暂无点赞
暂无点赞