SftpGo是一款高性能、功能齐全、易用可配置的一款sftp server 服务,基于go开发。目前在linux、macos下均可以稳定运行(windows个人未测试)。数据可以持久化到主流的数据库,诸如Mysql、PostgreSQL、Sqlilte.

sftpgo主要组成

  • 服务端主程序: sftpgosever
  • cli脚本: sftpcli

数据目录

  • conf存储服务配置文件
  • data创建sftp用户目录
  • backups存储应用备份数据

本次基于k8s运行服务、mysql5.7做持久化存储、腾讯云NFS服务做数据目录、configmap挂载配置文件、nginx stream提供域名映射tcp访问

构建镜像

直接拉取
docker pull taylordang/sftpgo:v1.0
本地基于Dockerfile构建
查看具体文档: [https://github.com/dtcka/sftpgo/tree/master/docker/sftpgo/alpine](https://github.com/dtcka/sftpgo/tree/master/docker/sftpgo/alpine)

构建脚手架

构建脚本: [https://github.com/dtcka/sftpgo/blob/master/docker/rest-api-cli/Dockerfile](https://github.com/dtcka/sftpgo/blob/master/docker/rest-api-cli/Dockerfile)

标准配置文件

{"sftpd": {"bind_port": 2022,"bind_address": "0.0.0.0","idle_timeout": 15,"max_auth_tries": 0,"umask": "0022","banner": "","upload_mode": 0,"actions": {"execute_on": [],"command": "","http_notification_url": ""},"keys": [],"kex_algorithms": [],"ciphers": [],"macs": [],"login_banner_file": "","setstat_mode": 0,"enabled_ssh_commands": ["md5sum","sha1sum","cd","pwd","scp"],"keyboard_interactive_auth_program": "","proxy_protocol": 0,"proxy_allowed": []},"data_provider": {"driver": "mysql","name": "sftpgo","host": "xxxxxx","port": 9999,"username": "sftpgo","password": "xxxxx","sslmode": 0,"connection_string": "","users_table": "users","manage_users": 1,"track_quota": 2,"pool_size": 0,"users_base_dir": "","actions": {"execute_on": [],"command": "","http_notification_url": ""},"external_auth_program": "","external_auth_scope": 0,"credentials_path": "credentials","pre_login_program": ""},"httpd": {"bind_port": 8080,"bind_address": "0.0.0.0","templates_path": "templates","static_files_path": "static","backups_path": "backups","auth_user_file": "","certificate_file": "","certificate_key_file": ""}
}

运行应用

以上服务配置准备完成之后,运行容器会在数据库中自动生成对应的表

提供服务外部入库

1. 设置内网服务入口
apiVersion: v1
kind: Service
metadata:name: sftpgonamespace: sftp
spec:clusterIP: xxxxexternalTrafficPolicy: Clusterports:- name: 8080-8080-tcpnodePort: 31807port: 8080protocol: TCPtargetPort: 8080- name: 2022-2022-tcpnodePort: 30865port: 2022protocol: TCPtargetPort: 2022selector:k8s-app: sftpgoqcloud-app: sftpgosessionAffinity: Nonetype: LoadBalancer
status:loadBalancer:ingress:- ip: xxxx
2. 设置外部服务入口

- nginx配置文件   ``` apiVersion: v1 data: nginx.conf: |- user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } stream { server { listen 2022; proxy_pass sftpgo服务对应的内网ip:2022; } } kind: ConfigMap metadata: name: tcp-config namespace: sftp


##### 3.测试下服务状态以及数据目录权限
![image.png](https://img-blog.csdnimg.cn/20200419100513838.png)
<br />测试ok:数据权限UID GID需要设置为1003.<br />##### 4. 设置域名解析到nginx的externalIps即可实现域名访问
![image.png](https://img-blog.csdnimg.cn/2020041910051459.png)---
<br/>
<br/>
附:

sftpgo服务源码:https://github.com/dtcka/sftpgo/tree/master/docker/sftpgo/alpine sftpgo容器相关镜像:https://hub.docker.com/repository/docker/taylordang/sftpgo sftpgo脚手架:https://hub.docker.com/repository/docker/taylordang/sftp-api-cli

```

更多内容请访问【云原生建筑师】https://blog.dtcka.com

SftpGo:一款高性能的sftp server服务相关推荐

  1. 六款小巧的HTTP Server[C语言] - 贵贵的博客 - 开发|架构|开源|共享

    六款小巧的HTTP Server[C语言] - 贵贵的博客 - 开发|架构|开源|共享 六款小巧的HTTP Server[C语言] keminar 发表于 2010-02-05 23:14:41. 发 ...

  2. 【万字长文】Dubbo 入门总结 ,一款高性能的 Java RPC 框架

    这篇文章是我学习整理 Dubbo 的一篇文章,首先大部分内容参考了官网 + 某硅谷的视频,内容讲解进行了重新编排,40多张图片,也都是我修改重制的,虽然一万多字,但是其实也可以看出来,更多的内容集中在 ...

  3. 使用 Docker 和 Nginx 打造高性能二维码服务(二)

    使用 Docker 和 Nginx 打造高性能二维码服务(二) 三年前我曾写过一篇<使用 Docker 和 Nginx 打造高性能的二维码服务>,时过境迁,容器软件.基础系统.Nginx. ...

  4. python分布式对象存储_推荐:一款分布式的对象存储服务

    最近公司在准备内部数据上云,并且内部数据库每天的数据量很大,需要采用大数据存储的方案. 方案调研 每个程序技术在实现之前,需要进行开源产品的调研,适合自己产品的技术方案才是最好的. 需求 我们需要处理 ...

  5. sql 服务器停止运行,3.1.1 启动、停止、暂停和重新启动SQL Server服务

    第3章  SQL Server 2005服务器管理 对SQL Server 2005数据库服务器的配置与管理,是SQL Server 2005数据库的一般性操作.SQL Server 2005提供了一 ...

  6. 如何设计一款高性能分布式锁,实现数据的安全访问?

    查看原文:如何设计一款高性能分布式锁,实现数据的安全访问? 随着互联网技术的飞速发展,分布式已经成为一个绕不开的话题,分布式环境下,"高并发访问共享资源"的场景并不少见,带来的问题 ...

  7. SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者

    文章目录 目录 前言 一.启动SQL server服务的三种方法 1.不启动SQL server服务的影响 2.方法一:利用cmd启动SQL server服务 3.方法二:利用SQL Server配置 ...

  8. php mysql弹幕_如何使用PHP构建一个高性能的弹幕后端服务

    如何使用PHP构建一个高性能的弹幕后端服务 随着WEB2.0的流行,现在很多网站都流行使用"弹幕"这种形式来实现互动. 弹幕(barrage),中文流行词语,原意指用大量或少量火炮 ...

  9. 微软sql服务器关闭了会怎样,sql server 服务启动后 自动关闭 求

    当前位置:我的异常网» Sql Server » sql server 服务启动后 自动关闭 求 sql server 服务启动后 自动关闭 求 www.myexceptions.net  网友分享于 ...

最新文章

  1. Java IO流-File类
  2. Linux基础命令---shutdown
  3. Vim与clang-format
  4. 中职高级计算机操作员,计算机操作员专业排行榜
  5. C++vector容器-容量和大小
  6. java-linux-eclipse配置
  7. mysql订单表上亿怎么分表_[转]单表上亿的数据量如何分表
  8. C#位运算讲解与示例
  9. 使用带Arduino IDE WIZ820io的ATmega1284P
  10. 计算机日常英语,计算机英语的常用句子
  11. 工具:sql server profiler(分析器)
  12. Properties文件操作
  13. 真香啊,手把手教你使用 Python 获取基金信息
  14. 针对Win10 Tensorflow-2.x 训练 线程冻结(假死、卡住、几个epoch后、中途停滞、CPU占用0%) 等问题的排查总结
  15. gdi与gdi+绘图效率_.NET和GDI +进行绘图[第1部分:基础知识]
  16. 一起了解Windows——用Win10自带工具录制视频
  17. 【安卓Framework学习】Wifi框架学习之热点评分机制
  18. 手动实现表格分页功能
  19. x265笔记_4_CompressCTU源码分析
  20. srcollTop、clientHeight、scrollHeight详解

热门文章

  1. 互联网公司技术网站 公众号
  2. 2023年,“新一代”固定资产管理平台——支持低代码平台
  3. Nexus的安装和应用
  4. 【微观】需求、供给和均衡价格
  5. 格式化硬盘出现/dev/sdb2 is apparently in use by the system错误
  6. KVM和Xen的区别
  7. 【微服务】—— 统一网关Gateway
  8. 图解HTTP十一:Web 的攻击技术
  9. 模式识别的一些基本概念
  10. DWG文件怎么转成PDF格式?介绍两种方式