你有没有遇到过这种事:客户发来一个 2GB 的设计稿,微信传不了,邮箱塞不下,钉钉提示“超限”,最后只能让对方开个百度网盘链接——结果对方说“我们公司禁用第三方网盘”。你只好临时注册个 FileZilla Server,手忙脚乱配用户、设权限、开防火墙,结果第二天发现日志里全是扫端口的 IP,吓得赶紧关掉……IT 部门说“正规流程得买商业 FTP 服务器”,报价单上写着“基础版 3.8 万/年,加 S3 对接模块再加 1.2 万”。不是不想用,是真不会配,也不敢乱动。其实,你根本不需要买——有个叫 SFTPGo 的开源工具,装好就能当公司级文件中转站用,连运维同事都夸它“比我们买的那套还稳”。
能替代什么 / 能省多少钱
SFTPGo 不是替代某个具体品牌(比如 Serv-U 或 GlobalSCAPE),而是直接替代「企业采购 FTP/SFTP 服务器软件」这一整类付费行为。国内中小公司常买的商业方案,比如 CuteFTP Server 企业版、SmartFTP Server、或者某些国产 NAS 厂商卖的「专业文件交换模块」,价格普遍在 1.5 万~6 万元/年。这些软件核心卖点就三样:支持多协议(SFTP/FTP/WebDAV)、能对接云存储(阿里云 OSS、腾讯 COS)、带网页管理后台和用户分级权限。而 SFTPGo 社区版——完全免费,把这三样全包了,而且不是阉割版:它原生支持 SFTP、FTPS、HTTP/S、WebDAV 四种协议;本地磁盘、加密磁盘、S3 兼容对象存储(包括阿里云 OSS、腾讯 COS、华为 OBS)、Google Cloud Storage、Azure Blob,全都能当后端;自带 Web 管理界面(Admin UI)和文件浏览界面(Client UI),用户登录后看到的就是一个干净的网页文件夹,拖拽上传、右键下载、生成分享链接,和用网盘一模一样。我帮朋友公司搭了一套,替掉了他们原来每年 2.4 万的 FTP 服务订阅,第一年就省下这笔钱,第二年又省了,因为它是永久免费的,不用续费。
核心功能
- 不用再手动建用户、改配置文件:它有一个真正的网页后台,点“用户”→“新建”,填用户名、密码、主目录路径,勾选允许 SFTP 还是 HTTP,再点“保存”就行。不像老派 FTP 服务器,改个用户得 ssh 进去编辑 /etc/vsftpd.conf,改错一个字符就整个服务起不来。
- 客户要传大文件?直接给个带密码的 HTTP 下载链接,有效期可设 1 小时、7 天或永不过期,还能限制下载次数。我试过传一个 4.7GB 的视频工程包,客户用 Chrome 点开链接,进度条一路拉满,没卡顿、没中断,因为它底层用的是流式传输,不先把整个文件读进内存再吐出去。
- 公司数据存在阿里云 OSS 里,但业务部门只会用 Windows 自带的“映射网络驱动器”?SFTPGo 可以把 OSS 桶伪装成一个 FTP 服务器,他们连上 ftp://your-company.com,输入账号密码,看到的就是 OSS 里的文件夹结构,双击打开、复制粘贴、重命名,全部照常操作,背后实际读写的是云端对象存储,你不用教他们新软件,也不用本地同步副本。
- 销售部每天收几十封带附件的邮件,人工下载再传到共享盘太累?SFTPGo 企业版才支持 IMAP,但社区版也能曲线救国:配合一个叫 fetchmail 的小工具,定时拉取指定邮箱的附件,自动存进 SFTPGo 的某个用户目录,销售同事只要去网页端刷新一下,所有附件就齐了,我试过,从 Gmail 拉 20 封带 PDF 的邮件,整个过程不到 90 秒。
- 审计要求“所有上传操作留痕”,它每一条日志都记着谁、什么时候、上传了哪个文件、大小多少、IP 地址、用了什么协议。日志默认存数据库,也可以导出为 CSV,拿 Excel 排序筛选很方便。这点比我们之前用的某国产软件强,那家伙日志藏在 /var/log/xxx/yyy.log 里,全是时间戳+数字 ID,查起来像破译电报。
- 支持“虚拟文件夹”,比如把本地 /data/reports 和阿里云 OSS 的 reports-2024 目录,合并显示在一个叫“月度报表”的文件夹里,用户进去看到的是两个来源的文件混排,但实际存储位置完全不同。这个功能对财务、法务这类需要跨系统归档的部门特别实用。
- 用户权限细到“只读”“只写”“可删”“可创建子目录”,还能按 IP 段限制登录,比如只允许 192.168.100.0/24 内网访问 FTP,公网只开放 HTTPS 文件浏览。我们测试时故意用手机连 4G 网试了下,果然连不上 FTP 端口,但网页端能正常看文件列表,安全边界很清晰。
三步上手
- 去官网 https://github.com/drakkan/sftpgo/releases 找最新版,Linux 用户直接下载带 “linux-amd64.tar.gz” 的压缩包(如果你是树莓派或 ARM 服务器,选 “linux-arm64.tar.gz”)。别去 Docker Hub 拉镜像,虽然它也支持 Docker,但新手容易卡在卷挂载和端口映射上,不如直接解压跑二进制文件来得稳。我下的是 sftpgo_2.5.5_linux-amd64.tar.gz,解压后得到一个叫 sftpgo 的可执行文件,还有 config.json.example。
- 把 config.json.example 复制一份改名为 config.json,用 vim 或 nano 打开,找到 “users” 这一段,在里面加一个最简用户:{“username”:”test”,”password”:”123456″,”home_dir”:”/tmp/sftpgo-test”,”permissions”:[“*”]} ,意思是建个用户名 test、密码 123456、根目录在 /tmp/sftpgo-test、所有操作权限都有。保存退出。然后终端里运行 ./sftpgo -c config.json,不出意外的话,你会看到一行绿色文字:“Starting SFTPGo server on 0.0.0.0:8080”,说明网页后台已启动。
- 打开浏览器,访问 http://你的服务器IP:8080,输入默认管理员账号 admin / admin,进后台后点左上角“用户”→“新建”,填刚才那段配置里的 test 和 123456,主目录填 /tmp/sftpgo-test(确保这个目录存在,可以用 mkdir -p /tmp/sftpgo-test 创建),勾上“SFTP”和“HTTP”,保存。现在用另一台电脑,用 FileZilla 连 SFTP(地址填你的服务器IP,端口22,账号test,密码123456),或者直接浏览器打开 http://你的服务器IP:8080/client/,输入 test/123456,就能看到空文件夹了,拖个文件进去,立刻显示,全程没重启、没 reload 配置。
要说清楚的短板
第一个短板:没有中文界面。所有菜单、按钮、错误提示全是英文,比如“Users”“Shares”“Quota”“Bandwidth Limit”。对纯技术同事没问题,但让行政或销售自己去后台新建用户,大概率会卡在“Where is the ‘Add User’ button?”。我自己试过让一位懂一点电脑的财务同事操作,她盯着页面找了三分钟没找到入口,最后是我远程桌面帮她点的。这点我不太满意,但也没办法,项目 README 里明确写了“no i18n support planned for Community Edition”。第二个短板:只支持 Linux。Windows 和 macOS 用户不能直接双击安装,必须用 WSL2 或者 Docker,这对普通用户门槛明显抬高了。我让朋友在 Mac 上试,他折腾了两小时没配好 Docker 网络,最后还是借了台 Ubuntu 虚拟机搞定的。第三个短板:初始配置里没有 HTTPS 默认开启,你得自己去申请 SSL 证书(比如用 Certbot),再改 config.json 里的 tls_cert_file 和 tls_cert_key_file 路径。如果只是内网用,HTTP 也够,但要是对外提供服务,这一步绕不开,我没试过,因为我的测试环境全在局域网,但文档里写了,应该不难,就是多花半小时。
项目信息
Full-featured and highly configurable SFTP, HTTP/S, FTP/S and WebDAV server – S3, Google Cloud Storage, Azure Blob
12.6k
Stars
970
Forks
Go
AGPL-3.0
Go 语言开发,GitHub Star 数 12597,采用 AGPL-3.0 开源协议,GitHub 项目地址
你用过类似的免费工具吗?评论区聊聊,我挑几个下期专门写。







