FTP服务搭建
armv8架构离线下,通过Docker搭建ftp服务
前言
在工作中linux自带的ftp服务可能会出于各种原因无法使用,这是就需要安装第三方的ftp服务
开源的fclairamb/ftpserver是一个不错的选择
本文服务器环境为armv8指令集架构,离线环境,Docker版本为V19.03.9
- 安装与使用足够简单
- 不依赖宿主机的vsftpd服务
- github长期保持更新
- issues没有积压
- 支持docker
- 支持sftp
前置条件
-
安装Docker 环境
-
下载镜像
ftpserver开源地址 fclairamb/ftpserver
准备数据卷
数据卷根据实际情况调整即可
# 创建ftp根目录
mkdir /ftp
# 进入目录
cd /ftp
# 创建ftp服务配置文件
# 修改配置文件, 具体参考下文的配置文件
touch ftpserver.json
# 创建ftp存储目录
mkdir data
ftp配置文件参考如下
{
// 配置文件版本
"version": 1,
// ftp被动模式随机端口范围
"passive_transfer_port_range": {
"start": 2122,
"end": 2130
},
// 可连接用户
"accesses": [
{
"user": "test", // 用户名
"pass": "test", // 密码
"fs": "os", // 使用存储方式,os为本地存储, 其他支持类型具体参考开源主页
"params": { // 存储配置参数
// 本地存储该用户的根路径
// 注意: 该配置路径为容器内路径,并非宿主机路径,服务默认配置根路径为/tmp
// 一般建议每个用户分配单独根路径以作为区分
"basePath": "/tmp/test"
}
}
// 需要增加用户如上添加即可
]
}
启动容器
docker run --rm -d \
# 端口映射需要注意与配置文件一致,既为主动模式端口+被动模式随机端口范围
# 默认配置主动模式2121端口,被动模式范围为2122-2130
# 如果修改需要保持一致,防止被动模式随机端口未对外映射导致的链接失败
-p 2121-2130:2121-2130
# ftp目录映射
-v /ftp/data:/tmp \
# ftp配置文件映射
-v /ftp/ftpserver.json:/app/ftpserver.json \
--name=ftpserver
fclairamb/ftpserver
验证
在任意一个可访问服务环境进行如下测试
# 创建文件
echo ftpuploadtest > ftpupload.txt
# 上传
curl -v -T ftpupload.txt ftp://test:test@ip:2121
# 下载
curl ftp://test:test@ip:2121/ftptest.txt -o ftpdownload.txt
# 对比
diff ftpupload.txt ftpdownload.txt