使用docker容器搭建ftp服务器
1. 搭建vsftpd服务器 [墙裂推荐]
docker pull fauria/vsftpd
拉取镜像,该容器使用的docker镜像是fauria/vsftpd
- 创建容器
docker run -d \ -v /home/vsftpd:/home/vsftpd \ -p 20:20 -p 21:21 -p 21100-21110:21100-21110 \ -e FTP_USER=theftp -e FTP_PASS=theftp123456 \ -e PASV_MIN_PORT=21100 \ -e PASV_MAX_PORT=21110 \ --name vsftpd --restart=always fauria/vsftpd
- 如果报
425 Security: Bad IP connecting
解决方法如下:vim /etc/vsftpd/vsftpd.conf
pasv_promiscuous=YES
添加这段代码并且重启vsftpd服务- pasv_promiscuous选项参数说明:
此选项激活时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。
合理的用法是:在一些安全隧道配置环境下,或者更好地支持FXP时(才启用它)。
2. stilliard/pure-ftpd
docker run -d --name ftpd_server -p 21:21 -p 30000-30009:30000-30009 -e "PUBLICHOST=localhost" -v /home/ftpusers/test:/home/ftpusers/test stilliard/pure-ftpd:hardened
docker exec -it ftpd_server /bin/bash
pure-pw useradd test -u ftpuser -d /home/ftpusers/test
chown ftpuser:ftpgroup /home/ftpusers/test
pure-pw mkdb
- 要进容器添加用户有点麻烦,如果 pure-pw useradd -d 后面的目录不存在,会由 ftpuser 自动创建,就不需要chown了