linux环境下部署vsftpd比较繁琐,可以直接使用docker官方仓库中的pure-ftpd镜像来部署ftp服务器。
下载镜像
docker pull stilliard/pure-ftpd:hardened
启动镜像
docker run --rm -d --name ftpd_server -p 2121:21
-p 30010-30019:30010-30019 -e FTP_PASSIVE_PORTS=30010:30019 -e FTP_USER_NAME=test -e FTP_USER_PASS=123456 -e FTP_USER_HOME=/home/ftp/test
-e PUBLICHOST=x.x.x.x -v /home/ftp:/home/ftp stilliard/pure-ftpd:hardened
参数说明
连接端口:docker内默认的端口是21,映射成2121
数据端口范围:被动模式默认使用30000-30009端口范围,如果需要修改的话,可以设置环境变量FTP_PASSIVE_PORTS,并将端口映射到宿主机。例如,下面将端口范围设置为30010:30019:
-p 30010-30019:30010-30019 -e FTP_PASSIVE_PORTS=30010:30019
PUBLICHOST:被动模式下,服务器会将服务器地址发送给客户端,但是服务器是部署在内网,所以需要将真实的公网地址告诉客户端,这里配置的就是服务器的真实公网地址
添加用户
用户名、密码和用户主目录可以通过设置环境变量FTP_USER_NAME、FTP_USER_PASS和FTP_USER_HOME来进行配置
如果需要添加其他用户,可以运行docker exec -it ftpd_server /bin/bash进入docker,然后执行下面命令添加
useradd -d /home/ftp/test1 test1 pure-pw useradd test1 -m -u test1 -d /home/ftp/test1