开源SFTP服务器软件SFTPGo详解

 更新时间:2024年08月06日 11:06:26   作者:杨浦老苏  
SFTPGo 是一种事件驱动的文件传输解决方案,使用 SFTPGo,您可以利用本地和云存储后端,使用您已经熟悉的相同工具和流程在内部或与业务伙伴交换和存储文件,这篇文章给大家介绍开源SFTP服务器软件SFTPGo的相关知识,感兴趣的朋友一起看看吧

什么是 SFTPGo?

SFTPGo 是一种事件驱动的文件传输解决方案。它支持多种协议(SFTP、SCP、FTP/S、WebDAV、HTTP/S)和多种存储后端,包括本地文件系统、加密本地文件系统、S3(兼容)对象存储、Google Cloud StorageAzure Blob Storage、其他 SFTP 服务器。

使用 SFTPGo,您可以利用本地和云存储后端,使用您已经熟悉的相同工具和流程在内部或与业务伙伴交换和存储文件。

通过👇这张系统架构图,可能更容易理解 SFTPGo 的功能

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 sftpgo ,选择第一个 drakkan/sftpgo,版本选择 latest

本文写作时, latest 版本对应为 v2.6.2

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

docker 文件夹中,创建一个新文件夹 sftpgo,并在其中建两个子文件夹 datakey

文件夹装载路径说明
docker/sftpgo/data/srv/sftpgo存放数据
docker/sftpgo/key/var/lib/sftpgo系统主目录

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口说明
20218080Web UI 的端口
20222022SFTP 协议使用的端口
20232023WebDAV 协议使用的端口

默认没有对外暴露端口

需要点 + 号逐个添加

环境

可变
SFTPGO_WEBDAVD__BINDINGS__0__PORTWebDAV 协议的容器端口,设为 2023

系统默认支持只支持 SFTP 协议,通过环境变量设置,增加了 WebDAV 协议

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 sftpgo 和 子目录
mkdir -p /volume1/docker/sftpgo/{data,key}
# 进入 sftpgo 目录
cd /volume1/docker/sftpgo
# 修改目录所有者
chown -R 1000:1000 {data,key}
# 运行容器
docker run -d \
   --restart unless-stopped \
   --name sftpgo \
   -p 2021:8080 \
   -p 2022:2022 \
   -p 2023:2023 \
   -v $(pwd)/data:/srv/sftpgo \
   -v $(pwd)/key:/var/lib/sftpgo \
   -e SFTPGO_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:2023
    volumes:
      - ./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 -R 1000: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/

到此这篇关于开源SFTP服务器软件SFTPGo的文章就介绍到这了,更多相关SFTP服务器软件SFTPGo内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • ubuntu 服务器中文乱码问题的解决方法

    ubuntu 服务器中文乱码问题的解决方法

    这篇文章主要介绍了ubuntu 服务器中文乱码问题的解决方法,需要的朋友可以参考下
    2018-03-03
  • 近期服务器出现的安全问题以及防范措施2017.05

    近期服务器出现的安全问题以及防范措施2017.05

    近期接到idc商的反馈,最近很多使用windows的主机都被拿下控制权,直接修改iis等
    2017-08-08
  • Make命令基础用法教程

    Make命令基础用法教程

    本文详细讲解了Make命令基础用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • openeuler系统查看硬盘信息的常用指令总结

    openeuler系统查看硬盘信息的常用指令总结

    这篇文章主要为大家详细介绍了在openopenIEuler操作系统中查看硬盘信息的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2026-05-05
  • 腾讯云服务器配置windows安装宝塔的步骤

    腾讯云服务器配置windows安装宝塔的步骤

    详解在腾讯云服务器上配置Windows操作系统并安装宝塔面板的步骤,包括购买和配置服务器、连接服务器、安装宝塔面板、配置防火墙和端口、安装Web服务和数据库等,步骤详尽,适合新手按照指南操作,确保顺利完成安装和配置
    2024-11-11
  • rsync只同步指定目录的方法(已测)

    rsync只同步指定目录的方法(已测)

    今天在配置文件同步的时候,只需要同步指定目录,因为一些目录是不需要同步的而且数量比较大,这里简单分享下–include参数的使用
    2015-01-01
  • 服务被挖矿程序minerd入侵的快速解决方法

    服务被挖矿程序minerd入侵的快速解决方法

    今天一早过来,运维同事发现服务器的负载有点异常,打开top一看,发现有个进程一直占用很高的cpu,这篇文章主要介绍了关于服务被挖矿程序minerd入侵解决方法,需要的朋友可以参考下
    2023-11-11
  • VSCode配置Git的方法步骤随记

    VSCode配置Git的方法步骤随记

    这篇文章主要介绍了VSCode配置Git的方法步骤随记,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • 如何使用vscode连接openEuler服务器

    如何使用vscode连接openEuler服务器

    这篇文章主要介绍了如何使用vscode连接openEuler服务器,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-08-08
  • kali linux 安装 NVIDA 显卡驱动教程

    kali linux 安装 NVIDA 显卡驱动教程

    本文是作者通过实际操作后分享出来的kali linux系统上安装NVDIA显卡驱动的全过程记录,真实有效,有需要的小伙伴可以参考下。
    2018-04-04

最新评论