ke4989's blog

  1. 首页
  2. 未分类
  3. 正文

dufs文件传输服务器配置以及Cloudflare代理转发到端口

2025/5/8

第一步:配置服务器网页

为了随时查看下载文件,或者传输大文件,我使用云服务器配置了一个文件存储以及传输的网页,支持上传下载、断点传输、访问控制、自定义页面等。

本次配置选择了dufs作为一键化配置,采用docker的方式,我将我能够运行的docker命令以及配置文件放在下面,并添加了注释,可以作为示例参考。

start_dufs.sh :

#!/bin/bash

# 如果存在同名容器,则停止并删除
if [ "$(docker ps -a -f "name=dufs-server" --format "{{.Status}}")" ]; then
docker stop dufs-server
docker rm dufs-server
fi

docker run -d \ # -d 是后台运行
--name dufs-server \
-v /files:/data \
-v /config.yaml:/etc/dufs/config.yaml \
-p 8443:8443 \ # 这里使用了8443端口,原因在后文解释
sigoden/dufs \
--config /etc/dufs/config.yaml # 使用配置文件,不采用参数启动的方式

config.yaml :

serve-path: '.' # 服务根目录(容器内路径),当前配置为当前目录(需挂载宿主机目录)
bind: 0.0.0.0 # 监听地址(0.0.0.0 表示监听所有IP)
port: 8443 # 服务端口(容器内端口,需映射到宿主机)
# path-prefix: /dufs # URL路径前缀(访问时需加 `/dufs`)

hidden: # 隐藏的文件/目录(对用户不可见)
- tmp
- '*.log'
- '*.lock'
- '*.pem'

auth: # 认证规则(格式:用户名:密码@路径:权限)
- 'admin:admin@/:rw' # admin 用户对根目录有读写权限
- 'user:pass@/data/share:rw' # user 用户对 /src 和 /share 有读写权限
- 'user1:pass1@/data/share:ro' # user 用户对 /src 和 /share 有只读权限
# - '@/' # 匿名用户对根目录只读

allow-all: false # 是否允许所有操作(若为 true,覆盖其他 allow-* 参数)
allow-upload: true # 允许上传
allow-delete: true # 允许删除
allow-search: true # 允许搜索
allow-symlink: true # 允许符号链接
allow-archive: true # 允许打包下载
enable-cors: true # 启用跨域资源共享(CORS)
# render-index: true # 渲染 index.html 文件
# render-try-index: true # 尝试加载 index.html 作为默认页
# render-spa: true # 支持单页应用(SPA)路由 (启用会出现Not Found页面)
# assets: ./assets/
log-format: '$remote_addr "$request" $status $http_user_agent' # 自定义日志格式
log-file: ./dufs.log # 日志输出文件(容器内路径)
compress: low # 压缩级别(low/medium/high)
tls-cert: /data/cert.pem # https证书
tls-key: /data/key.pem # https证书私钥

需要注意的是,如果是国内服务器,可能需要配置docker镜像源,可以自行搜索配置方式,我的服务器是在海外,可以直接拉取。

第二步:Cloudflare代理并转发到其他端口

其实完全可以使用别家的DNS服务,不过如果想隐藏服务器真实IP或者想白嫖Cloudflare的CDN可以看看以下步骤。

首先,启用代理:

如果没有搭建网站,可以直接使用80或者443端口。不过我的服务器还挂着博客,所以需要转发到其他端口。

转发使用“❌页面规则❌”功能会出现重定向次数过多的问题,不能实现!!

我们要使用规则中的✔️Origin Rules✔️:

 

输入你的dufs-server的域名(假设为dufs.example.com),设置主机名等于dufs.example.com时,重写到8443端口即可。

这里需要注意的是免费版的Cloudflare默认只支持代理发往下列 HTTP/HTTPS 端口的流量。(参考自Cloudflare代理支持的端口)

HTTP: 80, 8080, 8880, 2052, 2082, 2086, 2095

HTTPS: 443, 2053, 2083, 2087, 2096, 8443

所以如果想走代理就不能使用默认的5000端口,需要更改为以上的端口之一。

启用https服务可以在Cloudflare的SSL/TLS->源服务器申请源服务器的证书,能够使用很长时间,不用每隔一段时间就要自己重新配置。另外,记得打开“始终使用 HTTPS”。

访问经Cloudflare代理的网页时,Cloudflare会自动帮你的网页提供有效证书,可以看到我的博客直接显示了Google的证书。

所以我一直认为Cloudflare是赛博大善人的说法还是有点道理的。

另外,如果是国内服务器可能不支持Cloudflare代理,因为备案检查可能会检查到备案的IP和实际IP不一致(是Cloudflare代理服务器的IP)。我看到过有使用转发绕开备案的方法,但一直没有成功,有兴趣的可以去试试。

以上。

标签: 暂无
最后更新:2025/5/8

ke4989

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

  • hmnzytxufg

    mprnunklszfuqjgzolwhhnxvhjlruo

    2025/5/29
    回复
  • ktqwiehltz

    ryhviqugoqjuzigkrksfxvgxhkirsp

    2025/6/1
    回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    归档

    • 2025 年 5 月
    • 2025 年 4 月
    • 2025 年 3 月
    • 2024 年 11 月
    • 2024 年 10 月

    分类

    • python
    • 实际应用
    • 未分类
    • 网站搭建
    • 资源推荐

    COPYRIGHT © 2025 ke4989's blog. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang