
什么是 SFTPGo?
SFTPGo是一种事件驱动的文件传输解决方案。它支持多种协议(
SFTP、SCP、FTP/S、WebDAV、HTTP/S)和多种存储后端,包括本地文件系统、加密本地文件系统、
S3(兼容)对象存储、
Google Cloud Storage、
Azure Blob Storage、其他
SFTP服务器。
使用
SFTPGo
,您可以利用本地和云存储后端,使用您已经熟悉的相同工具和流程在内部或与业务伙伴交换和存储文件。
通过👇这张系统架构图,可能更容易理解
SFTPGo
的功能

安装
在群晖上以 Docker 方式安装。
在注册表中搜索
sftpgo
,选择第一个
drakkan/sftpgo
,版本选择
latest
。
本文写作时,
latest版本对应为
v2.6.2;

最近不知道
Docker hub又发了什么癫,是调整了算法还是什么原因,总之搜出来都是乱七八糟的,不管搜什么,都显示
10000个项目

卷
在
docker
文件夹中,创建一个新文件夹
sftpgo
,并在其中建两个子文件夹
data
和
key
文件夹装载路径说明
docker/sftpgo/data
/srv/sftpgo
存放数据
docker/sftpgo/key
/var/lib/sftpgo
系统主目录
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用netstat-tunlp|grep 端口号
本地端口容器端口说明
2021
8080
Web UI
的端口
2022
2022
SFTP
协议使用的端口
2023
2023
WebDAV
协议使用的端口
默认没有对外暴露端口

需要点
+
号逐个添加

环境
可变值
SFTPGO_WEBDAVD__BINDINGS__0__PORT
WebDAV
协议的容器端口,设为
2023
系统默认支持只支持
SFTP协议,通过环境变量设置,增加了
WebDAV协议

命令行安装
如果你熟悉命令行,可能用
docker cli
更快捷
# 新建文件夹 sftpgo 和 子目录mkdir-p /volume1/docker/sftpgo/{data,key}# 进入 sftpgo 目录cd /volume1/docker/sftpgo
# 修改目录所有者chown-R1000:1000 {data,key}# 运行容器docker run -d\--restart unless-stopped \--name sftpgo \-p2021:8080 \-p2022:2022 \-p2023:2023 \-v$(pwd)/data:/srv/sftpgo \-v$(pwd)/key:/var/lib/sftpgo \-eSFTPGO_WEBDAVD__BINDINGS__0__PORT=2023\
drakkan/sftpgo
也可以用
docker-compose
安装,将下面的内容保存为
docker-compose.yml
文件
version:'3'services:sftpgo:image: drakkan/sftpgo
container_name: sftpgo
restart: unless-stopped
ports:- 2021:8080- 2022:2022- 2023:2023volumes:- ./data:/srv/sftpgo
- ./key:/var/lib/sftpgo
environment:- SFTPGO_WEBDAVD__BINDINGS__0__PORT=2023
然后执行下面的命令
# 新建文件夹 sftpgo 和 子目录mkdir-p /volume1/docker/sftpgo/{data,key}# 进入 sftpgo 目录cd /volume1/docker/sftpgo
# 修改目录所有者chown-R1000:1000 {data,key}# 将 docker-compose.yml 放入当前目录# 一键启动docker-compose up -d
运行
后端(WebAdmin)
在浏览器中输入
http://群晖IP:2021
就能看到注册界面

登录成功后的后台管理的主界面
是否要启用双因素认证,看个人需要了,如果只是局域网,可以不启用

新建
virtual folders

点
Add
添加,在
Storage
中可以选择类型

Storage:选择Local diskRoot directory:填入我们挂载的数据目录/srv/sftpgo

保存之后,就有了第一个虚拟存储

再新建一个用户用于测试

Username:用户名Password:密码

下拉到
Virtual folders
部分,授权用户可使用的目录
mount path:用户看到的名称,需要自己输入,例如/nasSelect a path:下拉选择,这是我们前面创建的Virtual folders
完成后点
Add

点
Save
保存之后

点
Sign Out
退出管理端

前端(WebClient)
回到登录界面后,
Go to WebClient

输入账号密码

登录成功后,会看到我们授权的目录

可以上传文件

服务器上保存的目录

SFTP 访问
以
RaiDrive
为例
- 协议:选择
SFTP协议 - 地址:填入
SFTPGo服务地址 - 端口:填入我们前面设置的本机端口地址
2022 - 账号:填入
SFTPGo的用户 - 密码:填入
SFTPGo的用户对应的密码

如果是使用
WinSCP
,也可以参考上面👆的设置

WebDAV 访问
按安装时的环境变量设置,
WebDAV
的访问地址是
http://群晖IP:2023
以
RaiDrive
为例
- 协议:选择
WebDAV协议 - 地址:填入
SFTPGo服务地址 - 端口:填入我们前面设置的本机端口地址
2023 - 账号:填入
SFTPGo的用户 - 密码:填入
SFTPGo的用户对应的密码

如果是使用
WinSCP
,也可以参考上面👆的设置

在
RaiDrive
中添加成功后

可以在资源管理器中直接访问

这和我们在
WebClient
看到的结构是一致的

用
WinSCP
也是一样的

参考文档
drakkan/sftpgo: Fully featured and highly configurable SFTP server with optional HTTP/S, FTP/S and WebDAV support - S3, Google Cloud Storage, Azure Blob
地址:https://github.com/drakkan/sftpgo
SFTPGo - Bring your file transfers anywhere
地址:https://sftpgo.com/
SFTPGo documentation
地址:https://sftpgo.github.io/latest/
版权归原作者 杨浦老苏 所有, 如有侵权,请联系我们删除。