使用docker容器搭建ftp服务器详细流程
使用的的镜像是fauria/vsftpdftp有2中模式 主动模式 文件传输是客服端建立服务 然后ftp服务端根据这个服务推送文件数据过来被动模式文件传输是ftp服务根据PASV_MIN_PORT~ PASV_MAX_PORT这2个环境变量的范围随机一个ip提供服务给客服端下载总结根据上面的模式 使用主动模式 客服端如果存在防火墙请把服务端口号开放出来使用被动模式...
使用的的镜像是fauria/vsftpd
ftp有2中模式
主动模式
文件传输是客服端建立服务 然后ftp服务端根据这个服务推送文件数据过来
被动模式
文件传输是ftp服务根据PASV_MIN_PORT~ PASV_MAX_PORT这2个环境变量的范围随机一个ip提供服务给客服端下载
总结
根据上面的模式 使用主动模式 客服端如果存在防火墙请把服务端口号开放出来
使用被动模式 服务端就要把PASV_MIN_PORT~ PASV_MAX_PORT范围的端口开放出来
如果使用了docker PASV_MIN_PORT~ PASV_MAX_PORT 这个范围的端口请映射成一样的
如果不一样会不会有问题我也不知道(我猜测绝壁是有问题的,一样的我测试没有问题)
下载镜像:
docker pull fauria/vsftpd
docker stop vsftpd
docker rm vsftpd
docker run -d \
-v /my/data/directory:/home/vsftpd \
-v /var/log/vsftpd/: /var/log/vsftpd/\
-p 2340:20\
-p 2341:21 -p 21100-21110:21100-21110\
-e FTP_USER=myuser \
-e FTP_PASS=mypass \
-e PASV_MIN_PORT=21100\
-e PASV_MAX_PORT=21110 \
-e PASV_ADDRESS=192.168.222.220\
-e LOG_STDOUT=1
--name vsftpd --restart=always fauria/vsftpd
注意: 21100-21110:21100-21110 \ 这儿的端口映射是这2个环境变量的范围
-e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \ 映射成一样的
PASV_MIN_PORT和PASV_MAX_PORT的默认值也是这2个数
这个是文件传输用的端口号一定要设置一样 如果不一样会造成文件无法传输
配置说明:
ftp的2个端口号 做docker端口映射的时候请保持2个端口号相差1的特点
/home/vsftpd: docker容器ftp文件根目录
/var/log/vsftpd docker容器ftp存储日志目录
环境变量:
PASV_MIN_PORT~ PASV_MAX_PORT给客服端提供下载服务随机端口号范围
默认21100-21110 docker端口映射请设置成一样
FTP_USER 用户名 默认admin
FTP_PASS 密码 默认随机字符串
PASV_ADDRESS 其他服务器访问本机使用的ip
LOG_STDOUT 是否开启日志 任意值开启
注意:如果启动日志有错误: /sbin/ip is missing 这个表示你使用被动模式将是无法访问的 这时一定要配置PASV_ADDRESS这个环境变量 提供给客服端访问的ip地址
所有建议PASV_ADDRESS这个环境变量必须配置(如果你不需要被动模式可以无视)
添加新的用户
docker exec -i -t vsftpd bash
mkdir /home/vsftpd/zhang
(这儿的myuser 就是要添加的用户名)
chown -R ftp:ftp /home/vsftpd(请别忘了这一句的执行否者写文件的时候可能会存在没有权限问题)
vi /etc/vsftpd/virtual_users.txt
(奇数行用户名 偶数行密码)
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
exit
docker restart vsftpd
更多推荐
所有评论(0)