树莓派挂载硬盘资源,同步展示到互联网

网友投稿 630 2022-05-28

本文通过树莓派3b挂载外置的硬盘,并将其中的资源实时映射到互联网。

最终效果

别人找你要资源,直接甩一个网址过去,纯粹无广告,比市面上任何云盘都方便且好用。

为什么要用树莓派?

任何一台可以联网的电脑,都可以充当本文树莓派的角色, 但树莓派的优势在于,省电,且运行Linux可以常年不关机,极端情况下,即使断电了,用充电宝也能维持树莓派供电。另外,树莓派所有数据都在本地,即使遇到类似B站云服务器爆炸,或者被被黑客攻击,数据也不会丢失。

你用的哪一款树莓派?刷的哪款镜像?

我使用的是树莓派3b, 刷的OpenWrt这款开源路由器镜像, 详细刷的步骤以前出过教程 将树莓派3B刷成OpenWrt软路由,成为魔法WiFi上网的强大路由器 https://v2fy.com/p/2021-02-06-pi3-1612603909000/

为了提升存储容量,我还挂了一块1TB的机械硬盘。

如何便捷的往树莓派挂载的硬盘里,增删资源?

由于树莓派刷了OpenWrt的镜像,再加上我自己添加的一块外置网卡,树莓派已经是一个路由器了,我们只要通过无线接入树莓派路由器,就能对树莓派挂载的硬盘资源进行增删。

将树莓派挂载的硬盘资源,同步展示到互联网

具体的操作步骤是,接入树莓派路由器网络,然后通过浏览器开启内置的ftp服务

windows添加ftp网络位置

服务端配置

服务端我用Nginx的stream 对frp进行了转发,Nginx将指向frp.v2fy.com的请求,转向绑定端口8081的Nginx服务,而8081端口的Nginx服务,将请求转发到绑定8080端口的frp服务端程序

配置文件 /etc/nginx/nginx.conf 的内容为

#user nginx; worker_processes 1; load_module /usr/lib64/nginx/modules/ngx_stream_module.so; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; stream { map $ssl_preread_server_name $backend_name { frp.v2fy.com frp_v2fy_com; } upstream frp_v2fy_com { server 127.0.0.1:8081; } server { listen 443 reuseport; listen [::]:443 reuseport; proxy_pass $backend_name; ssl_preread on; } } events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; charset utf-8,gbk; client_max_body_size 20m; set_real_ip_from 127.0.0.1; real_ip_header X-Forwarded-For; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; gzip on; include /etc/nginx/conf.d/*.conf; }

配置文件 /etc/nginxconf.d/frp.v2fy.com.conf 的内容为

server { server_name frp.v2fy.com; listen 80; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host:80; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 8081 ssl http2; listen [::]:8081 ssl http2; server_name frp.v2fy.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host:443; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } ssl_certificate "/etc/nginx/ssl/frp.v2fy.com/fullchain.cer"; ssl_certificate_key "/etc/nginx/ssl/frp.v2fy.com/frp.v2fy.com.key"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }

配置完成后,我用acme.sh脚本,为frp.v2fy.com 域名添加了自动续期的https证书配置,具体步骤可查看以往的博客 零依赖!使用acme.sh设置nginx多个https证书自动更新,无限续期https证书 https://v2fy.com/p/2021-06-27-nginx-https-1624774964000/

进入 /opt/ 目录,下载frp安装包并解压

cd /opt/ wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_386.tar.gz tar zxvf https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_386.tar.gz

进入 /opt/frp_0.37.0_linux_386, 将frps.ini 内容修改为

[common] bind_port = 7000 vhost_http_port = 8080

通过 ./frps -c frps.ini 就可启动 frp的服务端了

但这样运行并不稳定,关闭终端服务端进程也就关闭了

我们需要安装pm2 用于创建一个守护frp服务端程序运行的脚本

npm install pm2 -g

将启动脚本写入文件,并赋予运行权限

echo './frps -c frps.ini' > start_frps.sh

使用pm2守护运行服务端脚本

pm2 start start_frps.sh

更详细的步骤可以查看往期博客 比坚果云更好用!无需上传!用frp内网穿透将当前桌面或图片文件夹实时分享到互联网 https://v2fy.com/p/2021-07-05-frp-1625488942000/

树莓派(客户端)配置

全局安装pm2

pm2可守护frp客户端程序运行

npm install pm2 -g

全局安装 http-server

http-server 可在树莓派开启一个http服务,处理fcp服务端转发过来的请求

npm install http-server -g

编写http-server 启动命令, 并使用pm2守护运行

cd /opt/ echo 'http-server /mnt/sda1/frp -a 0.0.0.0 -p 8080' > start_hs.sh chmod 755 start_hs.sh pm2 start start_hs.sh

下载frp到树莓派/opt 目录, 并解压

cd /opt wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_arm64.tar.gz tar zxf frp_0.37.0_linux_arm64.tar.gz

进入 解压后的 frp 目录, 编辑 frpc.ini

[common] server_addr = 服务器ip server_port = 7000 [web] type = http local_port = 8080 custom_domains = frp.v2fy.com

编写frpc的启动脚本, 并使用pm2 守护运行

cd /opt/frp_0.37.0_linux_arm64 echo "frpc -c frpc.ini" > start_frpc.sh chmod 755 start_frpc.sh pm2 start start_frpc.sh

运行成功

访问 frp.v2fy.com

一个实时同步本地硬盘数据到互联网的服务,就搭建完成了

本文永久更新地址(欢迎来读留言,写评论):

https://www.v2fy.com/p/2021-07-17-it-1626503043000

NAT 网络

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:编译原理学习笔记(二十六)~文件+逻辑文件及其访问方式+文件目录+目录结构
下一篇:【云端大事件】文件太多太杂,没地方存储,怎么办?
相关文章