主机部署参考教程: https://blog.csdn.net/qq_29644709/article/details/109526662
在我的阿里云上搭建-docker-vsftpd-虚拟用户-独立目录 :(docker搭建vsftpd,相对简单些,创建与删除都快速)
docker搭建vsftpd参考教程:
https://www.niwoxuexi.com/blog/hangge/article/903.html#
本次使用的docker images : fauria/vsftpd
因为是云服务器,或者你的网络是处于nat网络中
配置时,尽量使用公网地址 (公网114.55.87.169)(私网172.18.53.157) ftp 114.55.87.169,不然会报错:登录、查看等超时(time out)
说明下:ftp服务器的root用户,不是linux系统的root用户,尽量不要配置root用户
ftp服务器的默认主目录是你当前登录ftp时的用户主目录“/”,但不是linux系统的“/”
上传时,要么,就不写服务器的路径,自动放到你登录ftp时的用户主目录里,
我直接 关闭了selinux和firewalld
生产环境,尽量都配置上要使用的端口
==搭建开始===passive被动模式==================================================
docker run -d -v /app/dockerdir/vsftpd/:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=admin -e FTP_PASS=admin \
-e PASV_ADDRESS=114.55.87.169 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd-yr --restart=always fauria/vsftpd
==搭建完成==单个用户=========================================================
给vsftpd容器添加用户yr,一般来说一个用户一个目录,增加用户,要手动配置,还要重启vsftpd容器,要不就搞个脚本吧(本人没弄脚本 )
docker exec -i -t vsftpd bash
mkdir /home/vsftpd/yr
echo -e "yr\yr" >> /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
==搭建完成==添加多个用户=======================================================
==以下是从linux系统上登录ftp的报错===本人亲测========================================
--error--vsftp: connect: Connection timed out
在创建ftp时,直接使用服务器的公网地址
--error--425 Security: Bad IP connecting
VSftpd连接错误425 Security: Bad IP connecting解决方法,故障分析:FTP客户端软件连接VSftpd服务报此错误,大概原因是在连接中变换了IP地址。
解决方法:
# vi /etc/vsftpd/vsftpd.conf
添加:pasv_promiscuous=YES
保存退出
# service vsftpd restart
pasv_promiscuous选项参数说明:
此选项激活时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。
合理的用法是:在一些安全隧道配置环境下,或者更好地支持FXP时(才启用它)。
--error--vsftp上传553 Could not create file
说明下:ftp服务器的root用户,不是linux系统的root用户,尽量不要配置root用户
ftp服务器的默认主目录是你当前登录ftp时的用户主目录“/”,但不是linux系统的“/”
上传时,要么,就不写服务器的路径,自动放到你登录ftp时的用户主目录里,
put xxxxx
要么,跟ftp用户的全路径/文件名,要写全,不然还是要报错
--以下为实例--
ftp> put iptable_shell.tar.gz /
local: iptable_shell.tar.gz remote: /
227 Entering Passive Mode (114,55,87,169,82,112).
553 Could not create file.
ftp> put iptable_shell.tar.gz
local: iptable_shell.tar.gz remote: iptable_shell.tar.gz
227 Entering Passive Mode (114,55,87,169,82,111).
150 Ok to send data.
226 Transfer complete.
10240 bytes sent in 4.6e-05 secs (222608.69 Kbytes/sec)
ftp> put iptable_shell.tar.gz /ip
local: iptable_shell.tar.gz remote: /ip
227 Entering Passive Mode (114,55,87,169,82,110).
150 Ok to send data.
226 Transfer complete.
10240 bytes sent in 4.1e-05 secs (249756.10 Kbytes/sec)
--以上实例--