在同一个屋檐下把一部电影从台式机挪到笔记本,本来是件简单事,做起来却总有摩擦:微信传视频会压缩、发过去还要等它慢慢转圈;U 盘要插拔、要等拷贝;网盘先上传再下载,带宽打了个来回。局域网里明明有千兆链路,却只能靠外网中转。Go File 就是冲着这个场景来的——一个可执行文件,双击就跑起一个本地文件服务器,同一网段的其他设备打开网址就能下载,速度只受限于路由器和网线。

项目在 GitHub 上叫 songquanpeng/go-file,MIT 协议,主语言 Go(GitHub 归类为 HTML,因为模板占了大头),2020 年 4 月 8 日建仓,截至 2026 年 11 月约 1120 星、127 个 fork、20 个未关闭 issue,仓库体积不到 600KB,最近一次提交在 2025 年 11 月 20 日。作者同时维护着启动器、命令行工具和 PicGo 插件三个配套项目。

Go File 首页:上传按钮、文件列表与每项文件的操作入口

一、双击就能用,是真的双击

它的设计目标写得很直白:无需配置环境,仅单个可执行文件,直接双击即可开始使用。第一次启动时程序会自己建好管理员账户(用户名 admin、密码 123456),然后自动拉起浏览器,页面就是那个熟悉的文件列表,右上角一个「上传」按钮。支持拖拽上传、多文件同时上传、从剪贴板直接粘贴图片。

Go File 文件页:按原有目录结构浏览并下载本机分享的文件夹

默认端口是 3000,地址形如本机 IP 加 3000。换个设备输进去就能看到同一份列表,手机上扫首页的二维码也直接进,不用手打 IP——这点对「会议室里给大家传个安装包」这种临时场景特别顺手。

如果需要更强的能力,启动参数和环境变量都给足了:

需求怎么给说明
改端口启动参数 port默认 3000,被占用时最常改这个
分享已有文件夹启动参数 path指向目录后,导航栏出现「文件」页
在线看本机视频启动参数 video指向视频目录,出现「视频」页
指定对外 IP启动参数 host多网卡机器必设,否则二维码里的地址是错的
不自动开浏览器启动参数 no-browser当服务跑的时候用得上
访问频率限制环境变量 REDIS_CONN_STRING不配 Redis 就没有限流
换 MySQL环境变量 SQL_DSN默认 SQLite,单机不用管
数据库文件位置环境变量 SQLITE_PATH默认在工作目录下的 go-file.db
上传目录环境变量 UPLOAD_PATH默认工作目录下的 upload
会话密钥环境变量 SESSION_SECRET默认随机生成

命令行参数确实有点多,对不熟悉终端的用户不友好,作者的做法是另做一个图形启动器 gofile-launcher,勾勾选框就能把这些参数配出来。这个思路挺实在:功能别砍,但把使用门槛搬到 GUI 里。

二、不止是「传个文件」

用下来会发现它其实是三个东西拼在一起:文件服务器、图床、视频站。

内置图床是很多人没注意到的部分。上传图片后能拿到直链,配 PicGo 插件可以把上传流程接到 Typora 里——写 Markdown 时插图直接落到自己机器上,不走第三方图床。也留了图片上传 API,配合账户页生成的 Token 就能对接别的系统。

Go File 图床页:图片列表与直链复制

视频页解决的是另一个日常问题:片子存在台式机硬盘里,想在客厅的电视盒子或者平板上看。指定视频目录后,浏览器里直接播放,不用先拷过去。

Go File 视频页:在浏览器内直接播放本机视频

权限这块分得比较细:可以给不同类型的用户设置不同的访问限制,访客能不能上传、能不能下载都能单独控制;配合 Redis 做访问频率限制;Token 认证支持 Authorization 头,方便别的系统调用。配套的 CLI 工具还支持 P2P 模式分享,跨网络时不用把文件先放到某一台机器上中转。

Go File 系统设置页:权限配置、限流与站点信息

三、部署的三条路

第一条最省事:下对应平台的可执行文件,双击。第二条用启动器,适合 Windows 上不想碰命令行的人。第三条是 Docker,一条 docker run 把数据目录挂到宿主机上,容器重启不丢文件,适合放在 NAS 或者常年开机的小主机上。

准备长期跑的话,有两个地方值得先处理:一是改掉默认密码,admin / 123456 是明写在 README 里的,公网可访问的情况下等于敞开大门;二是确认默认权限——默认配置下访客可以上传也能下载,如果只是给自己家用,建议进「管理 → 系统设置」把上传关掉。

还有一个坑藏得比较深:机器有多张网卡(比如同时连着有线、无线、ZeroTier 之类的虚拟网卡)时,程序未必挑中你以为的那个 IP,二维码扫出来会打不开。这时候用 host 参数显式指定一个其他设备能访问的地址就行。

四、它不适合干什么

README 的定位是局域网内分享,这个边界得认。它没有内网穿透、没有多用户权限体系、也没有像样的公网安全加固——真放到公网上,等于把一个简易文件服务器直接暴露出去,安全上要靠前面的反向代理和访问控制兜。大文件、多人协作、断点续传这些需求,它也不是冲着专业文件服务器去的。

但反过来讲,如果你要的就是「临时起个服务,让旁边的人把文件拿走」,为了这个去装 Nextcloud 或者开个网盘会员,属于用高射炮打蚊子。一个可执行文件、双击、扫个码,三秒钟解决,这就是它的全部价值。

五、谁该装一个

经常在几台设备之间倒腾文件的人、要给同事发大体积安装包的人、家里有台常年开机的机器又不想折腾 NAS 系统的人,装一个放着,需要时双击就好。做内网工具、给客户临时交付文件的场景也能用,但记得改密码、关掉访客上传、别直接映射到公网。


本文整理自公开资料并重写:项目仓库 README(特点、使用方法、进阶参数、环境变量与注意事项)、仓库元信息(星标、fork、issue、许可证、建仓与提交时间)以及作者维护的启动器、CLI、PicGo 插件三个配套仓库说明。仓库数据截至 2026 年 11 月,具体数值以 GitHub 页面为准。配图取自 README 中的官方界面截图(作者注明可能未及时更新),仅做格式统一、去元数据与尺寸压缩,未改动任何像素。徽章、下载量统计、Star 趋势图、赞助与社群入口一律未收录;在线试用地址仅作事实说明,不构成推荐。

本文整理自公开资料并做重写,原始出处:https://github.com/songquanpeng/go-file。文中配图已去除站点叠加水印与推广信息;版权归原作者所有。

Last modification:November 11, 2026
如果觉得我的文章对你有用,请随意赞赏