Windows 环境部署指南:Cloudflared 穿透 + FileBrowser + NSSM 注册为服务

第一步:准备可执行文件
📥 1. 下载必要文件
组件 下载地址
NSSM https://nssm.cc/download

FileBrowser https://github.com/filebrowser/filebrowser/releases

Cloudflared https://github.com/cloudflare/cloudflared/releases/tag/2025.10.1

建议将以上 .exe 全部放在 E:\docker 目录下,并添加环境变量(可选)

第二步:配置 Cloudflare Tunnel
✅ 1. 登录 Cloudflare Tunnel
打开powershell

cd E:\docker
cloudflared.exe login

浏览器将自动打开,选择你绑定的域名,授权后会在:

C:\Users\你的用户名.cloudflared\config.yml

生成配置文件和证书。
cert.pem 和 config.yml

⑤ 创建 tunnel 并绑定到域名

cloudflared tunnel create pic-tunnel

创建完成后会输出 tunnel ID,比如:
xxxxx-2e47-4b42-xxxx-xxxxxxxxx

⑥ 配置域名映射(自动添加 xxx.666200.xyz 到 Zero Trust)

cloudflared tunnel route dns pic-tunnel xxx.666200.xyz

✍️ 2. 编辑 config.yml 文件

例如:

tunnel: xxxxx-2e47-4b42-xxxx-xxxxxxxxx
credentials-file: C:\Users\Admin\.cloudflared\xxxxx-2e47-4b42-xxxx-xxxxxxxxx.json

ingress:
  - hostname: filebrowser.666200.xyz
    service: http://localhost:8090
  - service: http_status:404

🔁 3. 测试运行隧道(先验证能跑起来)

cloudflared.exe --config "C:\Users\Admin\.cloudflared\config.yml" tunnel run xxxxx-2e47-4b42-xxxx-xxxxxxxxx

无报错即可使用 Cloudflare Tunnel。

🥉 第三步:安装 FileBrowser 服务(用 NSSM)
📌 1. 初始化 FileBrowser(第一次运行可省略)

E:\docker\filebrowser.exe -r "E:\pic" -p 8090

浏览器打开:http://localhost:8090
默认用户名密码:admin/admin
建议修改密码。

🔐 2. 使用 NSSM 安装为服务

cd /d E:\docker
nssm.exe install FileBrowser "E:\docker\filebrowser.exe"
nssm.exe set FileBrowser AppParameters "-r \"E:\pic\" -p 8090"
nssm.exe set FileBrowser AppDirectory "E:\docker"
nssm.exe set FileBrowser DisplayName "FileBrowser Service"

🏁 第四步:安装 Cloudflared 为服务(NSSM)

由于 Cloudflared 默认装在 C:\Program Files\Cloudflare\cloudflared.exe,不能直接被 NSSM 管理。你应复制一份到 E 盘下:

copy "C:\Program Files\Cloudflare\cloudflared.exe" "E:\docker\cloudflared.exe"

然后执行:

nssm.exe install Cloudflared "E:\docker\cloudflared.exe"
nssm.exe set Cloudflared AppParameters "--config \"C:\Users\Admin\.cloudflared\config.yml\" tunnel run xxxxx-2e47-4b42-xxxx-xxxxxxxxx"
nssm.exe set Cloudflared AppDirectory "C:\Users\Admin\.cloudflared"
nssm.exe set Cloudflared DisplayName "Cloudflared Tunnel"

🚀 第五步:启动服务

net start FileBrowser
net start Cloudflared

📌 附:重置 FileBrowser 密码

先停止服务:

net stop FileBrowser

然后重置密码:

cd /d E:\docker
.\filebrowser.exe --database "filebrowser.db" users update admin --password 新密码

再启动服务:

net start FileBrowser

✅ 完成!服务将自动后台运行,无需手动执行。

你现在可以通过:

http://localhost:8090

https://filebrowser.666200.xyz(Cloudflare Tunnel 域名)

访问你的图形化文件管理面板!

在 Windows 中,如果你是通过 nssm 创建的服务(如 FileBrowser 和 Cloudflared),你可以使用以下命令来 停止服务,并了解是否会在重启后自动运行。

✅ 停止服务的命令

net stop FileBrowser
net stop Cloudflared

如果你服务的名字是别的(比如 Cloudflared Tunnel),请用正确的名字:

net stop "Cloudflared Tunnel"

你也可以通过 任务管理器 → 服务 或运行 services.msc,找到对应服务名,右键 → 停止。

🔁 服务是否会在重启后自动运行?

是的,默认会自动运行。
nssm 安装服务时默认设置服务为 自动启动(Automatic) 类型,所以系统启动后会自动运行。

🚫 如果你不想开机自动运行:

可以改为“手动”启动服务:

sc config FileBrowser start= demand
sc config "Cloudflared Tunnel" start= demand

这样它不会自动启动,除非你手动执行:

net start FileBrowser
net start "Cloudflared Tunnel"

删除 Windows 启动服务(nssm 安装的)
🔧 方法 1:使用命令行删除服务

以管理员权限打开 PowerShell 或 CMD

输入命令删除对应服务:

nssm remove "FileBrowser" confirm
nssm remove "Cloudflared Tunnel" confirm

confirm 参数表示无需交互确认,直接删除。

📦 方法 2:使用 NSSM 图形界面删除服务

如果你有 nssm.exe:

在命令行中运行:

nssm.exe remove FileBrowser

会弹出确认窗口,点【Yes】即可。

🔍 检查服务是否还在:

sc query type= service state= all | findstr /I "FileBrowser Cloudflared"

如果你还想检查 是否还有其它启动项(比如隐藏的 vbs 脚本、计划任务),可以继续执行:

schtasks /query /fo LIST /v | findstr /I /C:"TaskName" /C:"Task To Run"