SFTPGo 部署指南

SFTPGo 是一个功能强大的开源文件传输服务器,支持 SFTP、FTP/S、WebDAV 以及 HTTP/S,具备虚拟文件系统、用户管理、webhooks等特性。下面我们介绍两种常见的部署方式:Docker 部署二进制部署为系统服务

  • 支持Web管理非常易用
  • 开源无任何性能上和功能的限制

示意图


Docker 安装教程

🖥️ 环境准备

  • 系统:RHEL 系列
  • 网络:可访问外网,推荐使用国内镜像源(如清华大学 TUNA)
  • 权限:root 或具备 sudo 权限的用户

🐳 安装 Docker CE

1. 添加 Docker 官方源

1
2
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

2. 替换为国内镜像源(推荐)

1
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

3. 安装 Docker 及相关组件

1
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

⚙️ 启动与配置

1. 启动 Docker 服务

1
systemctl enable --now docker

2. 验证安装

1
2
docker version
docker info

3. 测试运行

1
docker run hello-world

如果输出 “Hello from Docker!” 说明安装成功。


📦 Docker Compose(插件版)

Docker 20.10+ 已集成 Compose 插件,直接使用:

1
docker compose version

🐳 一、Docker 部署

Docker 部署适合快速试用和容器化环境。

1. 拉取镜像

1
docker pull drakkan/sftpgo:latest

2. 创建配置目录

1
2
mkdir -p /opt/sftpgo/data
mkdir -p /opt/sftpgo/config

3. 启动容器

1
2
3
4
5
6
7
docker run -d \
--name sftpgo \
-p 2022:2022 \ # SFTP端口
-p 8080:8080 \ # Web管理端口
-v /opt/sftpgo/data:/var/lib/sftpgo \
-v /opt/sftpgo/config:/etc/sftpgo \
drakkan/sftpgo:latest

4. 验证运行

  • 浏览器访问 http://<服务器IP>:8080
  • 默认管理员账号:admin / password(首次运行需修改)

5. Docker Compose 示例

更推荐使用 Compose 管理:

1
2
3
4
5
6
7
8
9
10
11
services:
sftpgo:
image: drakkan/sftpgo:latest
container_name: sftpgo
ports:
- "2022:2022"
- "8080:8080"
volumes:
- /opt/sftpgo/data:/var/lib/sftpgo
- /opt/sftpgo/config:/etc/sftpgo
restart: unless-stopped

⚙️ 二、二进制部署为系统服务

这种方式适合传统服务器环境,便于与系统服务管理(systemd)集成。

1. 下载二进制包

前往 SFTPGo Releases 下载对应平台的压缩包,例如 Linux x86_64:

1
2
wget https://github.com/drakkan/sftpgo/releases/download/v2.6.0/sftpgo_v2.6.0_linux_amd64.tar.gz
tar -xzf sftpgo_v2.6.0_linux_amd64.tar.gz -C /usr/local/bin

2. 创建配置和数据目录

1
2
mkdir -p /etc/sftpgo
mkdir -p /var/lib/sftpgo

3. 初始化配置

1
/usr/local/bin/sftpgo initprovider --config-dir /etc/sftpgo

4. 创建 systemd 服务文件

vim编辑 /etc/systemd/system/sftpgo.service

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=SFTPGo Service
After=network.target

[Service]
ExecStart=/usr/local/bin/sftpgo serve --config-dir /etc/sftpgo
WorkingDirectory=/var/lib/sftpgo
Restart=always
User=sftpgo
Group=sftpgo

[Install]
WantedBy=multi-user.target

5. 创建运行用户

1
2
useradd -r -s /bin/false sftpgo
chown -R sftpgo:sftpgo /var/lib/sftpgo

6. 启动并设置开机自启

1
2
3
4
systemctl daemon-reexec
systemctl enable sftpgo
systemctl start sftpgo
systemctl status sftpgo

7. 验证

  • SFTP:sftp -P 2022 user@server_ip
  • WebUI:http://server_ip:8080

运维技术交流群

发送邮件到 ➡️ [email protected]

或者关注WX公众号:网工格物

微信扫码

博客(最先更新)

https://songxwn.com/