网盘选择性对外开放 免费10~50G 速度(目前一般般,稳定1Mb/s)

搭建所需

源码(软件)

内容 地址
网盘 http://dzzoffice.com/
内网穿透 https://github.com/fatedier/frp

硬件

  1. 一台公网的服务器(内网主机)
  2. 一台公网的服务器(外网主机)
  3. 一台电脑(自己操作的)

前言

资源参考

部分请参考文章我以前发布的文章

废话

(这还是一篇水文)其实这篇文章就是记一次搭建一次对外开放的一个内网网盘,采用的是我以前发布的博文 Centos 搭建 Frp 内网映射服务 支持。
所以嘛如果看了这个的话,这篇文章并不难(也并没有什么教程意义)

搭建内网穿透

外网主机

本次搭建采用 Frp 版本为 v0.35.1 (Centos7系统)

创建域名

创建两个地址,一个作为网盘,一个作为后端
我创建的地址:

# 地址
网盘地址 nas.x-lf.cn
后端地址 frp-admin.x-lf.cn

主机搭建

  1. 依旧,万物先更新
1
yum -y update


2. 下载 v0.35.1 版本(tar.gz压缩包)

1
wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz

随后解压安装包

1
tar zxf frp_0.35.1_linux_amd64.tar.gz
  1. 进入文件夹编辑设置文件

    服务端配置 frps.ini 客户端配置才用 frpc.ini

进入配置文件

1
2
3
4
# 进入文件夹
cd frp_0.35.1_linux_amd64/
# 进入配置文件
vim frps.ini

配置文件内容(按需修改)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[common]
# tunnel port通信管道
bind_port = 7000

# http和https
vhost_http_port = 80
vhost_https_port = 443

# 连接认证token
token = 123456

# 子域名(替换自己的)
subdomain_host = frp-admin.x-lf.cn

# 自定义404 页面,要用绝对路径哦!
custom_404_page = /root/frp_0.35.1_linux_amd64/404.html

# dashboard图形管理页面
dashboard_port = 81

dashboard_user = admin
dashboard_pwd = admin_pw

如果你的阿里云(服务商安全组)限制了端口请开放上面几个端口(如果您没有修改的话):7000,80,443,81

如果你还需要更多配置需求,全配置参数查询:FRP
4. 启动项目

1
./frps -c frps.ini

如果您程序挂在前台,那么关闭后台就会关闭服务,所以请使用Screen以处理关闭问题。
或者参考文章:Centos 搭建 Frp 内网映射服务

内网主机

  1. 依旧需要在主机内下载 frp
1
2
3
4
5
6
7
8
# 下载(建议相同版本)
wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz
# 解压
tar zxf frp_0.35.1_linux_amd64.tar.gz
# 进入文件夹
cd frp_0.35.1_linux_amd64/
# 进入配置文件
vim frpc.ini

请注意,这里配置的是 frpc.ini 而不是 frps.ini

载入配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 基本配置
[common]
# 填写你后端搭建的
server_addr = frp.xiaolfeng.xyz
# 端口默认的话不需要改(即后端的 tunnel port通信管道)
server_port = 7000
token = 123456

# 此处名字可自定义,例如[hello],中括号不可少
[ssh]
# 种类可填写tcp/udp/http/https/stcp(根据需要填写)
type = tcp
# 填写本地访问IP
local_ip = 127.0.0.1
# 本地访问端口
local_port = 22
# 远程访问端口
remote_port = 2201

# 这是个例子
[web]
# 协议为http(即80端口)
type = http
# 内部映射的IP
local_ip =127.0.0.1
# 内部映射为80端口
local_port = 80
# 远程端口不用设置,只能沿用frps下vhost_http_port ①
custom_domains = nas.x-lf.cn
remote_port = 8080
  1. 配置完毕启动项目
    1
    ./frpc -c frpc.ini

内网服务器创建网站

这里,我采用的是 Cloudreve 的开源网盘

  • ✨ 特性
    • ☁️ 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive (包括世纪互联版) 作为存储端
    • 📤 上传/下载 支持客户端直传,支持下载限速
    • 💾 可对接 Aria2 离线下载
    • 📚 在线 压缩/解压缩、多文件打包下载
    • 💻 覆盖全部存储策略的 WebDAV 协议支持
    • ⚡ 拖拽上传、目录上传、流式上传处理
    • 🗃️ 文件拖拽管理
    • 👩‍👧‍👦 多用户、用户组
    • 🔗 创建文件、目录的分享链接,可设定自动过期
    • 👁️‍🗨️ 视频、图像、音频、文本、Office 文档在线预览
    • 🎨 自定义配色、黑暗模式、PWA 应用、全站单页应用
    • 🚀 All-In-One 打包,开箱即用
    • 🌈 … …

源码:https://github.com/cloudreve/Cloudreve

搭建

  1. 下载源码

选择对应CPU架构和系统,就可以操作了


2. 构建

启动构建

1
./cloudreve

结束监听,打开对应目录

修改conf.ini

按需修改,不需要可以不动

1
2
3
4
5
[System]
Mode = master
Listen = :5212
SessionSecret = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HashIDSalt = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

以下是完整一个配置的文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
[System]
; 运行模式
Mode = master
; 监听端口
Listen = :5000
; 是否开启 Debug
Debug = false
; Session 密钥, 一般在首次启动时自动生成
SessionSecret = 23333
; Hash 加盐, 一般在首次启动时自动生成
HashIDSalt = something really hard to guss

; SSL 相关
[SSL]
; SSL 监听端口
Listen = :443
; 证书路径
CertPath = C:\Users\i\Documents\fullchain.pem
; 私钥路径
KeyPath = C:\Users\i\Documents\privkey.pem

; 启用 Unix Socket 监听
[UnixSocket]
Listen = /run/cloudreve/cloudreve.sock

; 数据库相关,如果你只想使用内置的 SQLite数据库,这一部分直接删去即可
[Database]
; 数据库类型,目前支持 sqlite | mysql
Type = mysql
; MySQL 端口
Port = 3306
; 用户名
User = root
; 密码
Password = root
; 数据库地址
Host = 127.0.0.1
; 数据库名称
Name = v3
; 数据表前缀
TablePrefix = cd_
; SQLite 数据库文件路径
DBFile = cloudreve.db

; 从机模式下的配置
[Slave]
; 通信密钥
Secret = 1234567891234567123456789123456712345678912345671234567891234567
; 回调请求超时时间 (s)
CallbackTimeout = 20
; 签名有效期
SignatureTTL = 60

; 跨域配置
[CORS]
AllowOrigins = *
AllowMethods = OPTIONS,GET,POST
AllowHeaders = *
AllowCredentials = false

; Redis 相关
[Redis]
Server = 127.0.0.1:6379
Password =
DB = 0

; 从机模式缩略图
[Thumbnail]
MaxWidth = 400
MaxHeight = 300
FileSuffix = ._thumb

修改完毕再次启动

1
./cloudreve
  1. 自启动
1
2
# 编辑配置文件
vim /usr/lib/systemd/system/cloudreve.service

将下文 PATH_TO_CLOUDREVE 更换为程序所在目录:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
After=mysqld.service
Wants=network.target

[Service]
WorkingDirectory=/PATH_TO_CLOUDREVE
ExecStart=/PATH_TO_CLOUDREVE/cloudreve
Restart=on-abnormal
RestartSec=5s
KillMode=mixed

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target

启动服务

1
2
3
4
5
6
7
8
# 更新配置
systemctl daemon-reload

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve

管理指令

1
2
3
4
5
6
7
8
9
10
11
# 启动服务
systemctl start cloudreve

# 停止服务
systemctl stop cloudreve

# 重启服务
systemctl restart cloudreve

# 查看状态
systemctl status cloudreve