首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SFTPGo 托管文件传输 (MFT) 平台

SFTPGo 托管文件传输 (MFT) 平台

作者头像
YaoQi
发布2026-05-15 10:16:40
发布2026-05-15 10:16:40
720
举报

介绍

SFTPGo 是一个功能齐全、开放核心的托管文件传输 (MFT) 平台。 前端支持:Web页面、 SFTP、SCP、FTP/S、WebDAV 提供安全文件交换。

后端支持:本地磁盘和云存储(S3、Azure、Google)。

功能概览:

简单来说这个软件可以转换存储的访问协议搭建自己的网盘使用。

有完整的证书验证,权限控制,带宽和存储容量限制功能。

详见官方文档 https://docs.sftpgo.com/2.7/features/

文档:

https://docs.sftpgo.com/2.7/

仓库:https://github.com/drakkan/sftpgo

Docker试用

注:把/my/own 替换成真实存在的路径

代码语言:javascript
复制
mkdir -p /my/own/sftpgodata
mkdir -p /my/own/sftpgohome
chown -R 1000:1000 /my/own/

编写 docker-compose.yml

代码语言:javascript
复制
services:
  sftpgo:
    image: drakkan/sftpgo:v2.7.0-plugins
    container_name: some-sftpgo

    ports:
      - "8080:8080"
      - "2022:2022"

    environment:
      SFTPGO_GRACE_TIME: "32"

    volumes:
      - /my/own/sftpgodata:/srv/sftpgo
      - /my/own/sftpgohome:/var/lib/sftpgo

    restart: unless-stopped

启动:docker compose up -d

管理连接:

访问 http://x.x.x.x:8080/web/admin,创建管理员账号:

添加用户:

简单测试,后端文件系统可以为其配置Local disk:

客户端访问

访问 http://x.x.x.x:8080/web/client, 输入管理端配置的用户名密码

一个可以用的网盘就有了!

后边介绍下如何配置,具体的配置一定要查看文档,AI给的可能不对

前端配置(以FTP为例)

默认前端只开启SFTP和Web页面访问,具体开启了哪些可以访问管理页面--Server Manager--Status:

开启相关服务需要配置,可以通过配置文件,或者环境变量

因为我们是用Docker compose 启动的,所以使用环境变量非常适合。

需要知道的是完整的配置项查看配置文件的说明:https://docs.sftpgo.com/2.7/config-file/

转变成环境变量名,要把所有字符大写,以SFTPGO_开头,以双下划线“__”分割层级,遇到列表型的配置,要添加数字索引“__0__、__1__”层级。

例如:

代码语言:javascript
复制
SFTPGO_COMMON__ACTIONS__EXECUTE_ON=upload,download
SFTPGO_SFTPD__BINDINGS__0__PORT

开启前端FTP服务

添加如下环境变量

代码语言:javascript
复制
   ports:
      # FTP
      - "21:2121"

      # FTP passive ports
      - "50000-50100:50000-50100"

    environment:

      # passive mode
      SFTPGO_FTPD__PASSIVE_PORT_RANGE__START: "50000"
      SFTPGO_FTPD__PASSIVE_PORT_RANGE__END: "50100"

      # FTP listener
      SFTPGO_FTPD__BINDINGS__0__PORT: "2121"

      # 外网IP(非常重要,被动模式要传给客户端容器外的IP才行)
      SFTPGO_FTPD__BINDINGS__0__FORCE_PASSIVE_IP : "1.2.3.4"


      # 模式 FTP - 0, FTPS - 1, FTP+FTPS - 2
      SFTPGO_FTPD__BINDINGS__0__TLS_MODE: "0"

若开启FTPS或其他功能,可以自己参考配置项配置。

后端存储配置(以S3为例)

AWS S3(及兼容S3的)存储:

添加用户时File system选择S3(当然也可以添加虚拟文件夹,绑定用户,本文略)

然后配置 Bucket、Region、Access Key、Access Secret即可,其他可保持默认或按需配置。

AWS S3 要先去IAM服务创建账号,获取账号的Key 和 Secret,授予用户S3的权限,最简单的是授予 AmazonS3FullAccess ,担心不安全的可以只授予如下权限(hany是桶名),遇到问题再临时添加 AmazonS3FullAccess 判断是否权限问题:

代码语言:javascript
复制
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "VisualEditor0",
			"Effect": "Allow",
			"Action": [
				"s3:PutObject",
				"s3:GetObject",
				"s3:ListBucketMultipartUploads",
				"s3:AbortMultipartUpload",
				"s3:ListBucketVersions",
				"s3:ListBucket",
				"s3:DeleteObject",
				"s3:GetBucketLocation",
				"s3:ListMultipartUploadParts"
			],
			"Resource": [
				"arn:aws:s3:::hany/*",
				"arn:aws:s3:::hany"
			]
		}
	]
}

配置兼容S3的存储,比如阿里OSS,需要注意的是要特别配置 Endpoint 为阿里域名链接,这个域名是不带桶名的那个,特别要注意带上 https://,例如:

https://oss-cn-qingdao.aliyuncs.com

区域就是这个域名的中间部分: cn-qingdao

要获取这个域名,点击存储桶,点概览即可:

其他各种功能,大家亲自去体验吧!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 漫跑的小兔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开启相关服务需要配置,可以通过配置文件,或者环境变量
  • 因为我们是用Docker compose 启动的,所以使用环境变量非常适合。
  • 需要知道的是完整的配置项查看配置文件的说明:https://docs.sftpgo.com/2.7/config-file/
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档