ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

HFS 文件服务器从零到上手:手把手搭建个人 HTTP 文件共享服务器

HFS 文件服务器从零到上手:手把手搭建个人 HTTP 文件共享服务器 HFS 文件服务器从零到上手手把手搭建个人 HTTP 文件共享服务器【免费下载链接】hfsHFS is a web file server for your computer. Share folders or even a single file thanks to the virtual file system.项目地址: https://gitcode.com/gh_mirrors/hf/hfs深夜加班同事在群里甩来一句那个 2GB 的视频发我一下——微信传不动、网盘要先上传半天、U盘又来不及送。如果你也经历过这种时刻那么 HFSHTTP File Server一种把电脑变成网页版文件服务器的开源工具就是为你准备的答案它不需要把文件上传到任何云端直接读取你硬盘上的内容别人打开浏览器就能下载。它的核心卖点是零配置秒开与内置虚拟文件系统VFS一种把磁盘文件自由组织成共享目录结构的方式分享单个文件还是整个文件夹都只需要几步Windows、Linux、macOS、FreeBSD、Android 全平台可用。一、五分钟跑起来HFS 最快安装三步走自建文件共享服务器的第一步是先把 HFS 本身启动起来整个过程不会超过五分钟。从项目 Release 页面下载对应操作系统的压缩包Windows 10 及以上 / Linux / macOS 都有现成的二进制。解压后直接双击或运行hfs可执行文件浏览器会自动打开本地首页。打开管理面板默认地址形如http://localhost:8000/~/admin到这里配置工作就正式开始了。几个容易卡住的细节macOS 如果提示无法打开因为来自身份不明的开发者按住Control键再点击图标选择打开即可。Windows 若杀毒软件误报可查阅项目 README 中的 Antivirus 说明这是未签名程序的常见现象。在无法打开浏览器的服务器上直接在 HFS 控制台输入create-admin 你的密码即可创建管理员。不想用预编译包只要装有 Node.js 18~24运行npx hfslatest也能启动配置数据同样会保存。 专业建议日常使用建议固定端口比如hfs --port 8080并把这个地址加入浏览器书签。管理面板的完整配置项清单都写在源码仓库的config.md文档里遇到不认识的参数先翻它。二、摸清配置中枢HFS config.yaml 的存放位置与五种改法HFS 的几乎所有设置都集中在一个config.yaml文件里。它的位置因系统而异最可靠的办法是看启动时控制台打印的working directory (cwd)一行。系统默认存放位置Windows与hfs.exe同目录Linux / macOS~/.hfs目录下如果你想换个地方存放启动时加--cwd 某目录即可。修改配置有五种途径按使用场景选就好方式示例适用场景管理面板浏览器操作新手日常改设置命令行参数hfs --port 8080 --max_kbps 1024启动脚本、临时调整环境变量HFS_PORT8080 hfsDocker、systemd 部署直接编辑文件改完保存即热加载批量配置、自动化控制台命令config port 1080服务器已启动时一个最小可用配置长这样port: 8080 title: 我的共享站 vfs: source: /data/public这里port是 HTTP 监听端口title是浏览器标签页标题vfs.source把/data/public整个目录暴露出去。保存 config.yaml 后配置会自动生效无需重启进程这是 HFS 非常省心的一个特性。三、搭一个 HFS 虚拟文件系统把磁盘内容变成任意结构虚拟文件系统是 HFS 最值得玩的功能。通俗地说它是一棵由节点组成的树节点可以指向磁盘上的真实路径也可以只是一个链接你甚至可以让多个文件夹在同一个页面里拼出来。挂载单个目录vfs: source: /data/public这样 HFS 首页显示的就是/data/public里的内容。挂载多个来源并混合展示vfs: children: - name: 公共文档 source: /data/public can_read: true - name: 项目内部 source: /data/private can_read: [frank, peter] - name: 公司官网 url: https://example.com target: _blankchildren允许你并列多个节点name是显示名不写的话 HFS 会从路径自动推断url类型的节点就是一个跳转链接。权限怎么控制多数权限字段使用Who描述符一张表讲清楚取值含义true任何人包括未登录游客都可以false谁都不可以*任何已登录账户都可以admin仅管理员[user1, user2]仅指定账户HFS 的权限粒度非常细can_read控制能否下载、can_see控制能否在列表里看到、can_upload控制能否上传、can_delete控制能否删除。还可以用masks按文件名批量套规则vfs: source: /media masks: *.jpg|*.png: mime: image/* **/backup/**: can_read: admin规则按上优先于下、内层覆盖外层的顺序生效所以你可以放心地先给整个文件夹开权限再单独收紧某个子目录。四、给服务器加账号从单机共享到多人协作HFS 文件服务器的账号系统支持用户、用户组和权限继承结构很清晰accounts: admin: password: 强密码 admin: true ignore_limits: true frank: password: frank123 belongs: [regular_users] days_to_live: 30 guest: password: guest disable_password_change: true regular_users:注意最后那个regular_users没有密码的账户就是组它不能登录但能通过belongs把权限批量授予其他用户。其他常用字段admin: true允许登录管理面板days_to_live让账户在首次登录后 30 天自动过期ignore_limits让该账户无视全局限速。⚠️ 注意配置文件一被读取明文password就会立刻被加密为srp字段并删除原文所以放心地往里写初始密码不用自己先加密。会话方面session_duration控制登录有效期默认一天keep_session_alive让页面常开时保持在线配合redirect字段还能让指定用户登录后自动跳转到某个目录。五、安全配置避坑清单HTTPS、黑名单与地理防火墙把服务器暴露到公网之前下面几项强烈建议先过一遍1. 开启 HTTPS。有域名的话用内置 ACME 自动签证书ACME 是一种自动化申请免费证书的协议https_port: 443 acme_domain: yourdomain.com acme_renew: true force_https: true没有域名就用自签证书提供cert和private_key两个文件路径即可。2. 管理面板只对可信来源开放。localhost_admin: true # 仅本机免密进后台 admin_net: 192.168.1.0/24 # 只允许内网段访问后台3. 拦截可疑连接。block支持按 IP、网段甚至国家配合地理数据库设黑名单block: - ip: 10.0.0.0/8 - country: KP geo_enable: true geo_allow: false geo_list: [RU]4. 守住上传入口。min_available_mb让磁盘剩余空间不足时拒绝上传delete_unfinished_uploads_after定时清理未完成的上传文件防止垃圾占满硬盘。 小贴士默认启用的antibrute插件会在登录失败次数达到阈值后自动拉长等待时间甚至临时封禁 IP这就是防暴力破解能力的来源公网环境务必保留它。六、限速、日志与性能让服务器稳定跑起来带宽和并发控制是多人共用场景的刚需直接写在配置里max_kbps: 10240 # 全局总带宽上限 10MB/s max_kbps_per_ip: 2048 # 单 IP 限速 2MB/s max_downloads: 20 # 全局限并发 20 max_downloads_per_ip: 5 # 单 IP 限并发 5 proxies: 2 # 若前面有 Nginx 等反代告诉 HFS 信任几层 outbound_proxy: http://proxy:3128 # 出站请求走代理日志相关参数也很齐全log指定访问日志路径log_rotation支持 daily / weekly / monthly 轮转dont_log_net可以屏蔽内网 IP 的日志噪音。大文件夹打包下载时zip_calculate_size_for_seconds控制压缩前等待计算体积的时间设成0可以让超大目录的 ZIP 下载更快开始。七、插件与进阶玩法HFS 不止是文件下载站HFS 的插件系统让它能长出新功能。插件先要在enable_plugins里列出才会运行各自配置放在plugins_config下enable_plugins: [antibrute, download-counter, list-uploader] plugins_config: download-counter: show_count: true项目内置的plugins/目录里已有几个实用插件antibrute防暴力破解、download-counter下载计数、list-uploader批量上传。想自己写一个插件开发文档在dev-plugins.md有前后端两套 API 可调用。进阶玩法还很多用roots按域名做多站点虚拟主机让music.example.com和images.example.com指向不同目录用dynamic_dns_url配合动态 IP 保持域名解析自动更新前端页面甚至能通过 URL 参数实现各种快捷操作比如?search关键词打开页面即自动搜索、?login用户:密码自动登录。八、常见问题速查症状排查方向打不开管理面板确认localhost_admin与admin_net是否挡住你的 IP检查端口是否被防火墙放行公网上传/下载慢检查max_kbps与max_kbps_per_ip限速值再看磁盘 I/O大文件夹打包很慢把zip_calculate_size_for_seconds调小或设为 0上传经常中断启用split_uploads分块上传按 MB 为单位指定分块大小内存占用偏高降低max_downloads并发数开启日志轮转避免日志无限增长回顾与下一步行动到这里你已经掌握了 HFS 文件服务器从启动到进阶的完整路线装好并启动它 → 读懂config.yaml的五种改法 → 用虚拟文件系统组织共享内容 → 用账号和Who权限控制访问 → 通过 HTTPS、黑名单和地理防火墙加固安全 → 用限速日志保障性能 → 靠插件拓展能力。下一步打开你的终端花五分钟把 HFS 跑起来把第一个文件夹挂进虚拟文件系统然后从手机浏览器访问一次——那种文件秒分享的成就感只有亲手搭过的人才懂。遇到具体参数拿不准时翻一翻源码仓库里的config.md几乎所有问题的答案都在里面。【免费下载链接】hfsHFS is a web file server for your computer. Share folders or even a single file thanks to the virtual file system.项目地址: https://gitcode.com/gh_mirrors/hf/hfs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表