在阿里云的ECS上搭建VSFTPD的时候遇到了一些奇怪的问题,下面将解决方案分享下。安全
最新的vsftpd是2.2.2版本vsftpd -v
能够查看,配置文件跟以前有很大的不一样,咱们能够按照阿里云给出的文档进行配置服务器
网上不少教程关于user_list的说法都是若是开启了userlist_enable=YES
而且userlist_deny=YES
的时候,表明user_list
文件内部是禁止的用户。可是实际上新版本的配置文件,只有一个userlist_enable=YES
,这个的意思是『若是为YES表明禁止里面的用户登录』,这个地方须要注意。代理
在使用21端口进行访问的时候,长时间无反应,查看iptables
发现是关闭状态,另外使用netstat
命令查看vsftpd的确正在监控21端口。code
因而怀疑是不是ecs的自己设置问题,登录控制台,发现有安全组的配置。自己开启了部分端口。因而咱们建立一个新的安全组添加端口为21/21
,而后就能够登录了。教程
对于ftp而言,是有主动(pass)和被动(pasv)两种模式的,简单介绍下:
主动:服务端来连接客户端
被动:客户端去连接服务端ip
有什么区别呢?客户端在内网,通过层层代理,若是服务端来连接个人话,可能会找不到我。因此咱们要用被动模式,也是最经常使用的模式。路由
可是报错了!!文档
链接创建,等待欢迎消息... 状态: 不安全的服务器,不支持 FTP over TLS。 状态: 已登陆 状态: 读取“/”的目录列表... 状态: 服务器发回了不可路由的地址。使用服务器地址代替。
而后找资料不少都是说从被动模式回退为主动模式,可是咱们稍加思考就知道这种方式不对哦。get
咱们来分析下:
上面就是咱们解决这个问题的思路,配置一个范围,在/etc/vsftpd/vsftpd.conf
中加入下面代码
pasv_enable=YES pasv_max_port=7000 pasv_min_port=6000
开启了6000-7000的端口,不要着急,咱们还要去安全组将这个范围的端口打开,容许客户端连接进来,而后就大功告成!