利用 Filebrowser 搭建轻量级个人网盘
本文最后更新于:2024年12月14日 凌晨
利用 Filebrowser 搭建轻量级个人网盘
Filebrowser 是一个开源的文件管理工具,可以帮助用户通过网页界面管理文件。你可以使用它来浏览、上传、下载、删除和分享文件。相比传统的 FTP 服务器,它的界面更加直观,且支持用户权限管理和简单的配置。
本文将简要介绍如何在 Windows 平台上利用 Filebrowser 搭建一个属于自己的个人网盘,并通过 Cloudflare 实现在公网利用域名访问。
1. 在 Windows 上搭建 Filebrowser
首先下载适合自己的版本,下载地址:https://github.com/filebrowser/filebrowser/releases.
一般大家的电脑都是64位x86架构的,所以选择 windows-amd64-filebrowser.zip 进行下载。
下载后解压到自己喜欢的文件夹,我们会看到里面有四个文件,包括一个filebrowser.exe
文件。我们可以直接双击filebrowser.exe
来执行它,或者在filebrowser.exe
所在的文件夹内,按住shift
然后在空白处右键,选择在此处打开 Powershell 窗口 (S)
,然后执行
1 |
|
执行完成之后,可以看到在当前目录下多出一个filebrowser.db
文件,这就是
filebrowser 的数据库文件。
此时我们已经可以通过网页访问了。打开浏览器,访问 http://127.0.0.1:8080 就可以看到 filebrowser 的管理页面。
默认的用户名和密码都是
admin
。登录进去之后,会发现里面的文件就是filebrowser.exe
所在目录下的文件。如果要修改
filebrowser 管理的文件目录,首先关闭正在运行的 filebrowser
程序(否则无法修改),然后在 Powershell 窗口执行:
1 |
|
这个命令将 filebrowser 的根目录设置为了 C:\Share\
,可以根据自己的需要修改。
接下来重新运行filebrowser.exe
,并且访问 http://127.0.0.1:8080
,就可以看到自己指定目录下的文件了。此时,电脑上会有一个 filebrowser
的程序运行窗口,并且每次开机都要重新打开,使用起来并不方便。所以下面我们利用
nssm 设置 filebrowser 开机自启。让我们先把 filebrowser 给关掉吧。
2. 利用 nssm 设置 filebrowser 开机自启
先到 nssm 官方网站 下载 最新版本,然后解压,在解压目录的win64
目录下(如果是32位的电脑请选择win32
)
有一个nssm.exe
文件,将其复制到 Windows
系统盘的文件夹,即C:\Windows
文件夹内即完成安装了。此时我们打开命令行执行nssm -v
,如果看到相关信息就说明完成了安装。
以管理员身份运行 CMD 工具(可以在 Windows
下方的搜索栏中搜索 cmd
找到
命令提示符
,然后右键,选择
以管理员身份运行
), 执行
1 |
|
会弹出下面的页面:
在Application Path
这项中,点击后面的三个点,找到filebrowser.exe
并选中,然后确认,可以看到下方的
Startup directory
自动填入了相应的地址。然后点击install service
,会出现一个成功的提示。此时可以尝试重启电脑,然后访问
http://127.0.0.1:8080
看看有没有自动重启(希望不要遇到 Windows 更新)。
下面介绍 nssm 的常用命令。
1 |
|
刚刚运行的命令就安装了一个名为filebrowser
的实例,其实可以随便取个自己好记的名字。
删除服务实例:
1 |
|
注意,如果要修改 filebrowser 的相关配置,要先将 filebrowser 程序关闭。但是如果在任务管理器中关闭 filebrowser ,会发现它会立刻重启。应该用上面的 nssm 命令(也要以管理员身份运行CMD工具)停止 filebrowser 服务,等修改完成后再重新启动。
3. 利用 Cloudflare 实现内网穿透
至此,我们已经能够在每次打开电脑后通过 http://127.0.0.1:8080 来对指定的文件夹进行访问了。但此时的 filebrowser 还不能称之为网盘,甚至连同一个局域网内的其他人都无法通过本地IP进行访问(后面会讲)。如果要在公网环境下访问本地电脑的 filebrowser 服务,最容易的方式就是本地电脑所处的网络环境有一个公网IP,不过对于绝大多数人来说是没有这个条件的。所以大家只能各显神通。这篇文章介绍的方式是一种相对简单并且省钱的方式,即利用 Cloudflare 的 tunnel 服务进行内网穿透。
3.1 注册域名
首先,必须要拥有一个域名。可以到腾讯云或者阿里云进行域名申请,不过在国内申请域名如果用于建站的话可能会涉及到实名制认证以及备案,比较麻烦。推荐选择一些国外的域名注册商,如Namesilo、Godaddy等。本文不介绍如何注册域名,如有需要请到网上查找相关文章。
3.2 将域名托管到 Cloudflare
进入 Cloudflare 官方网站注册账户。
注册成功之后进入主页,可以看到输入现有域
的提示,在下面的框中输入我们刚刚注册的域名,然后点击继续
。
之后会看到一个页面,标题是为[刚刚输入的域名]选择计划
,如果没有特别需要,直接拉到最下面选择Free
,然后点击继续
。
到下一页,标题是手动输入
,我们拉到最下面选择继续前往激活
,这个时候会弹出一个提示框,标题是以后添加记录
,点击右下角确认
。
进入到新的页面,标题是更改您的名称服务器
,往下可以看到第3个小标题是更新名称服务器
,下面出现您的已分配的
Cloudflare 名称服务器,一共两个。
这个时候需要我们到之前注册域名的域名管理页面上进行操作。以腾讯域名为例,进入域名管理页面,在DNS 解析
这一项中选择修改 DNS 服务器
,然后在弹出的窗口中选中自定义 DNS
,把上一步出现的两个分配的
Cloudflare 名称服务器填入,之后点击提交
。注意,自定义 DNS
中只能有 Cloudflare 提供的这两个 DNS
服务器,如果出现别的请删除。不同的域名注册商的域名管理界面不太一样,不过逻辑都是相同的。
回到 Cloudflare
的网页,我们可以看到下面有一个提示:注册机构最多需要 24
小时处理名称服务器更改(大多数情况下会更快)。实际测试下来大约十几分钟到半个小时就可以完成。我们点击最下面的继续
,然后耐心等待。
成功之后,我们会收到邮件提示,说明域名托管成功。
3.3 利用 Cloudflare tunnel 功能实现内网穿透
打开 Cloudflare Zero
Trust
工作台面板,可以看到标题为choose your team name
的页面,在下面的Team name
选项中输入自己喜欢的名字,然后点击Next
。
在下一页标题是Choose a plan
,会从左到右出现一些选项,选择最左边的免费计划Free
,在下面点击Select plan
。
实际上这个时候服务就已经开通了。之后会出先付款页面,我们可以不用管,直接关掉页面就行。然后我们回到
Cloudflare 的主页在左边的选项中选择
Zero Trust
,进入下一个页面,最左边的标题是Zero Trust Overview
,往看到Networks
,点击右边的小三角展开,会出现三个子选项,选择第一个Tunnels
点击。
然后在新出现的页面点击Add a tunnel
。
在新出现的页面中,可以看到 tunnel type
这一项默认已选择了Cloudflared
,我们保持原状,然后点击右下角的Next
。
在新的页面中会出现 Name your tunnel
的页面,也就是给创建的 tunnel
命名。我们随便起个自己喜欢的名字,然后点击右下角的Save tunnel
。
之后会弹出一个configure
的页面,会有选项Choose your environment
,我们选择Windows
,然后往下拉,会告诉我们如何在
Windows
电脑上进行操作。简单地说就是下载链接里的应用并运行,然后以管理员身份打开命令行,运行这一页提供的代码。请自行根据提示操作。
这一步完成之后我们可以点击左上角的 Tack to Tunnels
回到主页。如果看到新创建的 tunnel 后面的 Status
这一栏的状态是
HEALTHY
,那么就说明本地电脑与服务器连结成功了。之后我们点击最后面的三个点,选项
Configure
,进入管理界面。
在管理界面中选择 Public Hostname
,点击下面蓝色的
add a public hostname
,进入新的页面。
在新页面中,Subdomain
这一项填写自己喜欢的名字(例如
file),Domain
这一项点击会出现选项,正是之前我们托管到
Cloudflare 的域名(以 example.com
为例),我们选中。注意,这里的二级域名不能是之前解析过的。后面的
Path
留空。然后下面一行,Type
选择
Http
,URL
填写本地访问 filebrowser
管理界面的地址,也就是 127.0.0.1:8080
。之后点击右下角的Save hostname
,就创建成功了。
稍微等待一段时间,然后用浏览器打开我们刚刚创建的 public hostname (例如file.example.com),可以看到成功访问了本地的 filebrowser 管理界面。至此,一个私人网盘就创建成功啦。
Cloudflare 提供的免费 tunnel 服务没有流量限制,不过好像有速度限制。实测下来大概网速在 2M/s左右,而本地网络的上行带宽在15M/s,远远不能跑满。不过这对于传输一些小型文件来说已经是足够使用了。
4. filebrowser 的基本操作
4.1 更改访问 IP
之前我们提到过,在搭建完成 filebrowser 服务之后,我们只能通过本地的 127.0.0.1:8080 来访问管理页面。假设电脑的本地 IP 地址是192.168.2.142,那么通过 192.168.2.142:8080 是无法访问的,也就是说同局域网下面的别的设备无法通过局域网进行访问。
如果希望利用局域网进行访问,那么需要手动修改 filebrowser 的配置。首先以管理员身份运行命令行工具,关闭 filebrowser 服务:
1 |
|
上面的 filebrowser
是之前注册的 nssm
服务的名字,根据自己实际情况填写。
然后在在filebrowser.exe
所在的目录下打开 Powershell
窗口,执行
1 |
|
之后回到以管理员身份运行的命令行窗口,启动 filebrowser:
1 |
|
这样,我们就可以在同局域网下的其他设备上通过 192.168.2.142:8080 来访问后台服务。如果访问失败,可能是本地电脑的 8080 端口没有开放。可以参考 这篇文章 打开8080端口。这时通过 127.0.0.1:8080就不能访问了。相应地,也要讲 cloudflare 上 tunnel 设置里面的 url 改成192.168.2.142,才能通过域名进行访问。
如果本地电脑的 IP 分配方式是自动 (DHCP),那么本地的 IP 可能过一段时间就会变化。这个时候需要通过路由器管理页面或者通过电脑上的 WLAN 设置将 IP 固定下来以方便使用。这里不详细介绍。如果电脑是在一个固定的环境中而且同局域网下的其他设备确实有访问需要,那么修改一下地址会比较方便。毕竟通过局域网访问速度会快很多。如果电脑会经常移动,或者所处的网络环境比较复杂(比如在校园网中),那么还是使用默认的 127.0.0.1 地址访问比较合适。
4.2 更改端口
更改端口的命令是
1 |
|
后面的 8888 换成自己需要的端口就可以。同样地,在执行命令之前要先关闭 filebrowser,之后要重新。以及要记得修改 Cloudflare 上的 url 地址。
4.3 导出以及导入 filebrowser 配置文件
关闭 filebrowser 程序,执行
1 |
|
这时我们会在
filebrowser.exe
所在文件夹下面看到一个config.json
文件,用记事本或者其他文本阅读软件将其打开,我们可以看到
filebrowser 的配置。可以直接在该文件中进行修改,然后将其导入到
filebrowser 数据库中:
1 |
|
然后启动 filebrowser 程序,此时我们的修改就生效了。
关于 filebrowser 更多的详细的设置可以参考 这篇博客 。
4.4 创建用户
进入 filebrowser 管理界面并登录,在左侧的菜单栏选择
settings
,可以进入设置页面。
在这里我们可以修改语言为中文(简体),点击下方的update
完成修改。
在设置页面中选择全局设置
,可以按自己的需要进行一些修改。例如允许用户注册
,选中之后所有访问网页的人都可以自己注册一个账号(不建议开启)。在用户默认设置
中,可以修改新用户的默认设置,比如将语言设为中文,设置新用户的管理文件目录,读写权限等等。
在用户管理
这部分我们可以新建用户,以及修改用户权限。建议另建一个账户用来日常使用,只有在需要进行管理时使用
admin 账户。
中间还有一项是分享管理
,我们在 filebrowser
中可以创建分享链接,并且设定密码和分享日期。所有的分享都可以在这一页面进行管理。
5. 写在最后
相比于其他的一些搭建个人网盘的方案,filebrowser 的优势在于简单方便,同时也保留了网盘的核心功能。如果对个人网盘有更多的需求可以考虑搭建 Nextcloud 等。至于内网穿透的方案,如果对速度有较高的要求,可以自己购买带有公网 IP 的 vps 使用 frp 之类服务。不过如果只是用于传输一些小的文件,Cloudflare 的免费服务已经够用了。如果本地电脑上还有一些别的服务,也可以用相同的方式来实现公网访问。除此之外,作为知名的赛博大善人,Cloudflare 还提供了许多免费又好用的服务,请自行探索。
让我们愉快地使用自己的个人网盘吧!