docker 安装 sftpgo

2023-10-22 02:20
文章标签 安装 docker sftpgo

本文主要是介绍docker 安装 sftpgo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

sftpgo 简介

sftpgo 是一个功能齐全且高度可配置的 SFTP 服务器,具有可选的 HTTP/S、FTP/S 和 WebDAV 支持。支持多种存储后端:本地文件系统、加密本地文件系统、S3(兼容)对象存储、Google 云存储、Azure Blob 存储、SFTP。
在这里插入图片描述

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

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

sftpgo 安装

准备一台linux服务器,以ubuntu 22.04 server为例,已安装docker环境。

创建sftpgo数据存储目录

mkdir -p /data/sftpgo/{data,home}
chown -R 1000:1000 /data/sftpgo/

说明:

SFTPGo 使用两个主要卷:

  • /srv/sftpgo 处理持久数据。 SFTP/FTP/WebDAV 用户的默认主目录是 /srv/sftpgo/data/ 。
  • /var/lib/sftpgo 是容器内定义的 sftpgo 系统用户的主目录。这也是容器工作目录,使用默认配置时将在此处创建主机密钥。

运行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

SFTPGo 使用以下默认配置的 TCP 端口:

  • 2022 用于 SFTP 服务。
  • 8080 用于 Web 管理员用户界面。
  • 8090 用于webdav

查看容器运行状态

root@ubuntu:~# docker ps
CONTAINER ID   IMAGE                            COMMAND                  CREATED        STATUS                PORTS                                                                                                                             NAMES
44d9d989172c   drakkan/sftpgo:v2.5.4            "sftpgo serve"           3 hours ago    Up 3 hours            0.0.0.0:2022->2022/tcp, :::2022->2022/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8090->8090/tcp, :::8090->8090/tcp   sftpgo

访问Web GUI

访问其 Web GUI。为此,只需打开本地系统浏览器并将其指向已安装 SFTPGo 的服务器或桌面 IP 地址,端口号为 8080。

例如:

http://server-ip-addres:8080

创建管理员用户

访问 Web GUI 后,它会要创建一个管理员帐户。

在这里插入图片描述

创建sftp新用户

一旦拥有了 SFTPGo 的仪表板,就可以创建一个新用户来使用任何 Web 或本地客户端(例如 Filezilla)访问存储数据。单击“用户”选项。之后点击 + 图标。

在这里插入图片描述

添加要使用的用户名和密码。如果需要,还可以添加公钥。

如果使用本地文件系统可以选择local,而其他选项(例如 AWS S3 和 Google 云存储)也可用。

在这里插入图片描述

不指定Home Dir时默认为/srv/sftpgo/data/admin1,这里保持默认。

访问用户 Web 客户端界面

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

http://192.168.72.16:8080/web/client

登录界面如下:
在这里插入图片描述

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

在这里插入图片描述

测试sftp连接

使用sftp命令测试连接

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

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

root@ubuntu:~# sftp -P 2022 admin1@192.168.72.16
The authenticity of host '[192.168.72.16]:2022 ([192.168.72.16]:2022)' can't be established.
ED25519 key fingerprint is SHA256:Op+5ORK2iLBucnxiL6xRnfPl+D+wXURVS7qOk4WeUMM.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.72.16]:2022' (ED25519) to the list of known hosts.
(admin1@192.168.72.16) Password: 
Connected to 192.168.72.16.
sftp> 

使用winscp客户端测试连接

输入在SFTPGo上创建的用户名和密码,端口使用2022。示例配置如下:
在这里插入图片描述

使用raidrive客户端测试连接,该工具支持sftp、webdav等各种连接方式。

在这里插入图片描述
本地 windows 此电脑 中可以将sftp作为本地磁盘使用
在这里插入图片描述

SFTPGo挂载为WebDav

那些想要像使用其他本地磁盘一样使用远程服务器存储文件系统的人可以在 SFTPGo 的帮助下将其挂载为 WebDav。

在 Windows 上挂载 WebDav

首先,在系统注册表中进行一些更改。按 Win+R 键并输入 regedit 打开注册表。切换到以下路径

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters

现在,双击“BasicAuthLevel”,将值 1 更改为 2。按确定按钮。

重新启动 WebDav 服务:

以管理员身份运行 PowerShell 并一一键入给定的命令。

net stop webclient
net start webclient

转至此电脑或 Windows 上的我的电脑,然后从菜单中选择“映射网络驱动器”。

在这里插入图片描述

以下格式输入 SFTPGo 的地址以及端口号。

http://server-ip:8090

当它要求输入用户名和密码时,请执行此操作。
在这里插入图片描述

很快就会像系统上的任何本地驱动器一样安装该驱动器。
在这里插入图片描述

在 Linux 上挂载 WebDav

在linux客户端 安装davfs2, 以ubuntu 为例

root@ubuntu:~# apt install -y davfs2
root@ubuntu:~# mount.davfs -V

创建挂载目录

$ sudo mkdir /mnt/dav

使用 mount 命令挂载WebDAV 共享目录,提供 SFTPGo 上创建的用户名和密码

mount -t davfs -o noexec http://192.168.72.40:8090 /mnt/dav/

查看挂载结果

root@ubuntu:~# df -h|grep mnt
http://192.168.72.40:8090     1.3T  763G  509G  61% /mnt/dav

sftpgo 基于 restic 增量备份

使用restic对某台linux服务器中的/data路径下的数据执行增量备份。

在需要备份的linux服务器上安装restic,以ubuntu操作系统为例

wget https://github.com/restic/restic/releases/download/v0.16.0/restic_0.16.0_linux_amd64.bz2
bzip2 -d restic_0.16.0_linux_amd64.bz2 
mv restic_0.16.0_linux_amd64 /usr/local/bin/restic
chmod +x /usr/local/bin/restic

使用restic命令在sftpgo服务端创建存储库

root@ubuntu:~# export RESTIC_PASSWORD="123456"
root@ubuntu:~# restic init -r sftp://admin1@[192.168.72.16]:2022//restic-repo
The authenticity of host '[192.168.72.16]:2022 ([192.168.72.16]:2022)' can't be established.
ED25519 key fingerprint is SHA256:Op+5ORK2iLBucnxiL6xRnfPl+D+wXURVS7qOk4WeUMM.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
subprocess ssh: Warning: Permanently added '[192.168.72.16]:2022' (ED25519) to the list of known hosts.
(admin1@192.168.72.16) Password: 
created restic repository 81e4c7ae2d at sftp://admin1@[192.168.72.16]:2022//restic-repoPlease note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.

通过restic备份linux/data/目录所有数据到sftpgo

root@ubuntu:~# export RESTIC_PASSWORD="123456"
root@ubuntu:~# export RESTIC_REPOSITORY="sftp://admin1@[192.168.72.16]:2022//restic-repo"
root@ubuntu:~# restic backup /data/
(admin1@192.168.72.16) Password: 
repository 81e4c7ae opened (version 2, compression level auto)
created new cache in /root/.cache/restic
no parent snapshot found, will read all filesFiles:        7197 new,     0 changed,     0 unmodified
Dirs:         1886 new,     0 changed,     0 unmodified
Added to the repository: 393.453 MiB (150.566 MiB stored)processed 7197 files, 395.592 MiB in 0:03
snapshot a5be14c4 saved

登录sftpgo客户端查看备份数据
在这里插入图片描述

当/data/目录数据有变化时,重复执行以上命令,会持续创建增量快照,查看历史备份快照:

root@ubuntu:~# restic snapshots
(admin1@192.168.72.16) Password: 
repository 81e4c7ae opened (version 2, compression level auto)
ID        Time                 Host        Tags        Paths
------------------------------------------------------------
a5be14c4  2023-10-21 18:11:44  ubuntu                  /data
dcda67da  2023-10-21 18:13:57  ubuntu                  /data
2eeff04f  2023-10-21 18:14:02  ubuntu                  /data
------------------------------------------------------------
3 snapshots

选择某个快照,将数据还原到本地

root@ubuntu:~# restic restore a5be14c4  --target /tmp/restor-data
(admin1@192.168.72.16) Password: 
repository 81e4c7ae opened (version 2, compression level auto)
restoring <Snapshot a5be14c4 of [/data] at 2023-10-21 18:11:44.118135197 +0800 CST by root@ubuntu> to /tmp/restor-data
Summary: Restored 9084 Files (395.592 MiB) in 0:03
root@ubuntu:~# 
root@ubuntu:~# ls /tmp/restor-data/
data

这篇关于docker 安装 sftpgo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/258462

相关文章

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

如何在pycharm安装torch包

《如何在pycharm安装torch包》:本文主要介绍如何在pycharm安装torch包方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录在pycharm安装torch包适http://www.chinasem.cn配于我电脑的指令为适用的torch包为总结在p

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文