剪藏#剪藏#爱踢人生sre

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

2025 年 12 月 26 日1 分钟
分享Twitter / XTelegram微博
SFTPGo 是一款功能齐全、高度可配置化、支持自定义 HTTP/S,FTP/S 和 WebDAV 的 SFTP 服务 封面

1、sftpgo简介

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

Notion image

官方网站: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

JAVASCRIPT
docker run -d --name sftpgo \
    --restart always \
    -8080:8080 \
    -2022:2022 \
    -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

Notion image

8、查看容器日志

docker logs -f sftpgo

Notion image

9、访问sftpgo webUI

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

创建管理员用户admin:

Notion image

Notion image

10、sftpgo基本使用

10.1、创建sftp新用户

Notion image

Notion image

Notion image

Notion image

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

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

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

Notion image

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

Notion image

10.3、测试sftp连接

1.使用sftp命令测试连接

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

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

sftp -P 2022 admin1@192.168.52.15

Notion image

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

Notion image

Notion image

11、总结

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

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

原文地址: https://mp.weixin.qq.com/s?__biz=MzI0MDg2NTc2Ng==&mid=2247499580&idx=1&sn=7f2a6cdcb04bae19f8ede1afa9ba8c55&chksm=e8de7e211ff7bfd37cb351087ca49e51fa6a323c342bdcdbb4c062bf20da3acf2a6268614af3&mpshare=1&scene=1&srcid=1226WVEHYtSl6aOR5QG3ZLgv&sharer_shareinfo=bbe0c684757aa451288858798ff2294e&sharer_shareinfo_first=bbe0c684757aa451288858798ff2294e#rd

相关文章