美文网首页工具自制
将树莓派挂载的硬盘资源,同步展示到互联网

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

作者: zhaoolee | 来源:发表于2021-07-18 09:26 被阅读0次

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

    最终效果

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

    为什么要用树莓派?

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

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

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

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

    树莓派

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

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

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

    开启FTP

    windows添加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
    
    pm2安装成功
    • 全局安装 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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/pfaipltx.html