一、宿主机开通20、21、21100-21110端口
1.主动模式: 21端口为ftp默认的端口,是ftp的控制端口, 而20端口是ftp的数据端口, 21端口用来接收客户端连接, 20端口用来传输数据; 服务器(主动地)定下规矩,客户端与服务端建立连接, 那通过21端口, 想传数据就通过20端口, 20端口和21端口结合到一起就是ftp的主动模式
2.被动模式: 主动模式有一些安全性问题, 如果有人想攻击你的ftp服务, 就直接到20端口堵你, 为了避免数据出门被人堵, 就出现了被动模式, 被动模式把传数据的20端口, 改成了范围, 比如文中的21100-21110, 具体哪个值由客户端来定(比如21115), 这样传出的数据就不容易被人堵,安全性大大提升, 现在大多数ftp客户端,默认使用被动模式连接服务器, 也就是由客户端定传数据的端口
二、拉取镜像
docker pull fauria/vsftpd
三、安装ftp命令和建立用户目录
yum install ftp
mkdir -p /home/vsftpd
chown ftp.ftp -R /home/vsftpd
四、启动容器
docker run -d --net=host -v /home/vsftpd/:/home/vsftpd -e FTP_USER=ftp -e FTP_PASS=ftp -e PASV_ADDRESS=<宿主机IP> -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd fauria/vsftpd
五、添加新用户和匿名用户
docker exec -it vsftpd bash
mkdir -p /home/vsftpd/<新增用户名>
vi /etc/vsftpd/virtual_users.txt
注:奇数行为用户名,偶数行为密码
db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 允许匿名用户访问
write_enable=YES 允许登录用户有写权限。属于全局设置
anon_root=var/ftp 指定匿名用户登录的目录
anon_upload_enable=YES 允许匿名用户有上传文件的权限
anon_mkdir_write_enable=YES 允许匿名用户有新增目录的权限
chown_uploads=YES 设置是否改变匿名用户上传文件的属主。默认为NO。chown_uploads=YES的时候不设置chown_users列表,anon_umask是不生效的。
chown_username=username 设置匿名用户上传文件的属主名
chmod 777 -R /var/ftp/pub
ctrl+D退回宿主机
docker restart vsftpd
六、使用winSCP登录ftp站点进行文件传输
注:协议选择不加密,端口21
ftp用户目录 :/home/vsftpd/ftp
新增用户目录:/home/vsftpd/<新增用户名>
匿名用户目录:/var/ftp/pub
本文详细介绍了如何在Docker环境下设置VSFTPD服务,包括开启宿主机的20、21、21100-21110端口以支持FTP的主动和被动模式,拉取镜像,安装FTP命令并创建用户目录,启动容器,添加新用户及匿名用户,最后通过WinSCP使用不加密协议和端口21进行文件传输。
6215

被折叠的 条评论
为什么被折叠?



