SFTPGo 是一款功能齐全、高度可配置化、支持自定义 HTTP/S,FTP/S 和 WebDAV 的 SFTP 服务

SFTPGo 是一款功能齐全、高度可配置化、支持自定义 HTTP/S,FTP/S 和 WebDAV 的 SFTP 服务

奥黛丽·逐爱者
2026-07-02 / 0 评论 / 5 阅读 / 正在检测是否收录...

1、sftpgo简介

SFTPGo是一款功能齐全、高度可配置的开源文件传输服务器,使用Go语言编写。它最核心的特点是能通过一套系统,同时支持SFTP、SCP、FTP/S、WebDAV以及HTTP/S等多种文件传输协议,并能将多种存储系统统一提供文件访问服务。

图片

官方网站:https://sftpgo.com/

项目地址:https://github.com/drakkan/sftpgo

2、典型应用场景与架构

SFTPGo的架构设计使得它非常灵活,可以根据需要部署在不同的场景中。从了解到,一些知名企业如Jump Trading(高频交易)、WP Engine(网站托管)和Aledade(医疗健康数据)都在使用它。

其典型部署模式如下:

  1. 统一文件传输网关:在企业中,SFTPGo可以作为一个统一的文件交换门户,无论是需要访问本地存储,还是后端连接的云存储(如AWS S3、Azure Blob等),用户都可以通过自己熟悉的协议(如SFTP、WebDAV)进行访问。

  2. 混合云集成:SFTPGo能很好地充当一个桥梁,让传统的、基于本地文件系统的应用,也能安全地访问位于公有云对象存储中的数据。

  3. 安全合规的数据交换:得益于其丰富的安全特性(如多因素认证、IP过滤、细粒度权限控制),SFTPGo非常适合用于需要安全合规地与合作伙伴或客户共享文件的场景。

3、安装docker

1、安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

2、配置docker yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安装docker

yum install -y docker-ce

4、修改docker配置文件

mkdir /etc/docker -p

sudo tee /etc/docker/daemon.json <<-'EOF'

{

    "registry-mirrors": [

      "https://docker.credclouds.com",

      "https://k8s.credclouds.com",

      "https://quay.credclouds.com",

      "https://gcr.credclouds.com",

      "https://k8s-gcr.credclouds.com",

      "https://ghcr.credclouds.com",

      "https://do.nark.eu.org",

      "https://docker.m.daocloud.io",

      "https://docker.nju.edu.cn",

      "https://docker.mirrors.sjtug.sjtu.edu.cn",

      "https://docker.1panel.live",

      "https://docker.rainbond.cc"

    ],

   "data-root": "/etc/docker"

}

EOF 

5、启动docker

systemctl daemon-reload

systemctl enable docker --now

systemctl restart docker

6、安装docker-compose

# 下载docker-compose文件

curl -L "https://github.com/docker/compose/releases/download/v2.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 给他一个执行权限

chmod +x /usr/local/bin/docker-compose

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose 

# 查看是否安装成功

docker-compose --version

4、拉取sftpgo镜像

docker pull drakkan/sftpgo:v2.5.4

5、创建数据目录

mkdir -p /data/sftpgo/{data,home}

chown -R 1000:1000 /data/sftpgo/

6、docker安装sftpgo

docker run -d --name sftpgo \    --restart always \    -p 8080:8080 \    -p 2022:2022 \    -p 8090:8090 \    --mount type=bind,source=/data/sftpgo/data,target=/srv/sftpgo \    --mount type=bind,source=/data/sftpgo/home,target=/var/lib/sftpgo \    -e TZ=Asia/Shanghai \    -e SFTPGO_HTTPD__BINDINGS__0__PORT=8080 \    -e SFTPGO_WEBDAVD__BINDINGS__0__PORT=8090 \    drakkan/sftpgo:v2.5.4

7、查看容器运行状态

docker ps -a

图片

8、查看容器日志

docker logs -f sftpgo

图片

9、访问sftpgo webUI

浏览器访问: http://192.168.52.15:8080

创建管理员用户admin:

图片

图片

10、sftpgo基本使用

10.1、创建sftp新用户

图片

图片

图片

图片

10.2、访问用户Web客户端界面

在浏览器中访问以下网址,并使用新用户帐户详细信息登录:

http://192.168.52.15:8080/web/client/login

图片

在这里用户可以轻松上传和下载文件

图片

10.3、测试sftp连接

1.使用sftp命令测试连接

现在测试新用户,linux操作系统默认自带sftp命令,在linux客户端测试连接sftpgo服务器。

连接后可以执行help命令查看支持的参数,使用put或get指令上传下载文件。

sftp -P 2022 admin1@192.168.52.15

图片

2.使用winscp客户端测试连接

图片

图片

11、总结

SFTPGo是一款强大而灵活的文件传输解决方案,特别适合需要统一管理多种文件传输协议、集成混合云存储环境,且对安全性和精细化管理有较高要求的场景。如果你正在为复杂的数据交换和文件传输需求寻找一个"瑞士军刀"式的工具,SFTPGo绝对值得一试。

希望以上介绍能帮助你了解SFTPGo。如果你在具体的安装或配置过程中遇到问题,可以参考其官方文档获取最详细和最新的信息。

0

评论 (0)

取消