一、背景
在公司办公有时需要访问家里电脑里的数据或想要将公司电脑中的数据传输到家中,了解相关技术后有了搭建NAS想法。X宝一搜,动辄4位数价格的NAS和近百分贝的噪音让我望而却步,又不想买矿渣。我的日数据量较少,买个NAS放家里宛如大炮打蚊子。
二、需求
- 支持浏览器访问
- 轻量化
- 上传/下载速度够快
- 足够安静
- 价格尽量低
- 功率尽量小
三、搭建私人网盘
经过需求分析后,我决定使用树莓派搭建私人网盘。
1、安装Cloudreve
Cloudreve是一个国人开发的网盘系统,能以最低的成本快速搭建公私兼备的网盘系统且完全免费。
Cloudreve官网:http://cloudreve.org/
来到Cloudreve的github仓库,选择最新的版本下载,我的树莓派安装的是Raspbian OS,所以我下载linux_arm版本。
下载完成后得到一个Cloudreve文件。
进入下载的目录,执行这个文件。
可以看到Cloudreve进行初始化,默认端口5212。第一次运行还会显示初始用户名和密码,记得保存。我这里不是第一次运行了,所以没有显示。现在打开浏览器,访问你的ip:5212
就可以看到你的网盘已经搭建好了。第一次登录用户名和密码就是初始化时显示的用户名和密码,登录后可以进行修改。
网页右上角可以修改存储策略和设置
网盘支持创建分享链接进行文件分享,且拥有在线浏览器,可以在线浏览图片和文本等数据。支持与OneDrive等云盘直接对接。
更多功能请自行探索,到这里我们的网盘系统就安装好了,但目前网盘只能在局域网中访问,如果我在外面想要访问家中的网盘怎么办呢?这就需要我们进行内网穿透。
2、内网渗透
内网穿透的工具很多,这里我选择SakuraFRP。每日签到即可免费获得1~4G流量,对于我来说完全够用。
SakuraFRP官网:https://www.natfrp.com/
第一次使用需要我们先注册一个账号。
登录后,左侧导航栏签到,先领取内网穿透的流量。如果你流量需求大的话需要每天来签到或购买流量。
领完流量后,左侧创建隧道。
节点选离你近的国家,隧道类型选TCP,本地端口5212。点击确认创建。
创建好后点击左侧导航栏的隧道列表。,找到你创建的隧道,点击配置文件,复制粉红色的这行参数待用。
打开树莓派Terminal,执行命令。
sudo mkdir -p /opt/sakurafrp
sudo wget -O /opt/sakurafrp/frpc_linux_arm https://getfrp.sh/d/frpc_linux_armv7
sudo chmod +x /opt/sakurafrp/frpc_linux_arm
在/etc/systemd/system/
下创建sakurafrp.service
并写入
[Unit]
Description=Sakura Frp Client
Wants=network-online.target
After=network-online.target
[Service]
User=root
WorkingDirectory=/opt/sakurafrp/
LimitNOFILE=4096
PIDFile=/var/run/sakurafrp/client.pid
ExecStart=/opt/sakurafrp/frpc_linux_arm -f <你的Token>:<隧道ID>[,隧道ID[,隧道ID...]]
Restart=on-failure
StartLimitInterval=600
RestartSec=3
[Install]
WantedBy=multi-user.target
执行命令
sudo nano /etc/systemd/system/sakurafrp.service
删掉 <你的Token>:<隧道ID>[,隧道ID[,隧道ID...]]
将参数粘贴进来
粘贴好后按ctrl x,Y,enter
执行命令
sudo systemctl daemon-reload
sudo systemctl start sakurafrp
如果需要将服务设置为开机启动,执行以下命令
sudo systemctl enable sakurafrp
接下来测试能不能访问,复制服务器链接+端口号,在浏览器中访问
成功进入网站,今后就可以使用这个地址访问网盘了。