一、 阿里云防火墙设置
搭建站点前需要先指定防火墙安全组,我们需要允许ftp的21端口访问,按照之前的防火墙配置方法进入阿里云控制台配置:
二、 在centos上搭建FTP 站点
1. 安装 vsftpd
用xshell进行ssh连接,成功后输入如下指令:
yum install -y vsftpd
如果前面没有安装python3,那么这里不会出现问题。但如果安装了这里会出现如下报错:
找了一圈,发现报错的原因和我们一开始yum包遇到的一样,没有修改python索引,由于python3的安装导致索引到python2.7的包发生错误,到如下文件中修改:
/usr/libexec/urlgrabber-ext-down
将第一行最后的python修改成python2.7:
修改完成保存,然后再次运行vsftpd安装,这次成功执行,如下:
现在vsftpd就算安装完成了,我们可以进入下面路径查看相关配置文件:
/etc/vsftpd
这里有四个文件,前三个位配置文件,作用分别是:
vsftpd.conf:核心配置文件;
ftpusers:是黑名单文件,此文件里的用户不允许访问 FTP 服务器;
user_list:是白名单文件,userlist_deny为NO时只允许名单内用户访问,为YES时不允许名单内用户访问(userlist_deny在vsftpd.conf中配置)。
2. 启动 vsftpd
设置开机自启动:
systemctl enable vsftpd.service
启动 FTP 服务:
systemctl start vsftpd.service
运行以下命令查看 FTP 服务端口:
netstat -antup | grep ftp
如图即为启动成功
3. 问题与解决方法
Ⅰ、windows资源管理器无法连接ftp
打开conf文件,文件默认开启了匿名用户访问的功能。但如果我们从windows资源管理器访问大概率会出现如下报错:
如果出现该问题,我们只需要打开IE浏览器>>Internet选项>>高级>>将“使用被动FTP(用于防火墙和DSL调制解调器的兼容)”选项去掉>>确定即可:
Ⅱ、默认文件夹指定
去掉之后错误消除,我们进入文件夹,只能看到一个空文件夹pub:
这是为什么呢?因为我们的ftp目录被默认定位到了:
/var/ftp
现在我们作为匿名用户登录ftp服务器,如果你希望可以将其它文件显示出来,有两个方法:
1. 在conf文件中加入一句:anon_root=/opt,这个配置表示匿名用户访问我的ftp服务的话就直接进入我的服务器/opt目录,当然你也可以在这里设置成其它目录,都行。
修改完成后使用:systemctl restart vsftpd,使服务器重启生效配置。
2. 直接在/var/ftp目录下进行操作即可,这样操作有很大的好处,因为为了安全,这个目录默认不允许设置为777权限,否则ftp将无法访问。所以我们选择在这个目录里创建一个允许独写权限的文件夹。
当然,也可以指定具体用户访问的具体范围,这里我暂时不需要,就不再赘述。
Ⅲ、浏览器无法访问文件
现在在ftp根目录下放一个文件夹photos,然后在其中放一张照片,我们尝试访问:
可以看到这个照片,但是当我们双击打开的时候,跳转到浏览器会无法显示:
这里是因为我们的ftp被动连接接口被防火墙墙了,虽然资源管理器可以连接但浏览器无法连接
1. 修改vsftpd的配置,手动指定被动模式的随机连接端口,增加以下内容:
pasv_min_port=50000
pasv_max_port=60000
2)设置阿里云的安全组控制端口,这里最好把20端口也打开:
这样,我们再在浏览器里也可以正常访问了!
4. vsftpd.conf 文件设置
如果需要配置匿名用户上传和下载(创建目录或删除、重命名文件夹),可以在文件中进行相关配置。
#允许匿名用户登录FTP
anonymous_enable=YES
#设置匿名用户的登录目录(如需要,需自己添加并修改)
anon_root=/var/ftp/pub
#打开匿名用户的上传权限
anon_upload_enable=YES
#打开匿名用户创建目录的权限
anon_mkdir_write_enable=YES
#打开匿名用户删除和重命名的权限(如需要,需自己添加)
anon_other_write_enable=YES
#匿名用户的掩码(如需要,需自己添加,含义:如umask是022,这时创建一个权限为666的文件,文件的实际权限为666-022=644)
anon_umask=022
本文参考资料:
https://www.jianshu.com/p/c1639416fc73
http://blog.sina.com.cn/s/blog_1629172bc0102xyei.html