一、 阿里云防火墙设置

搭建站点前需要先指定防火墙安全组,我们需要允许ftp的21端口访问,按照之前的防火墙配置方法进入阿里云控制台配置:

用云服务器跑ffmpeg 云服务器配置ftp_python

二、 在centos上搭建FTP 站点

1. 安装 vsftpd

用xshell进行ssh连接,成功后输入如下指令:

yum install -y vsftpd

如果前面没有安装python3,那么这里不会出现问题。但如果安装了这里会出现如下报错:

用云服务器跑ffmpeg 云服务器配置ftp_用云服务器跑ffmpeg_02

找了一圈,发现报错的原因和我们一开始yum包遇到的一样,没有修改python索引,由于python3的安装导致索引到python2.7的包发生错误,到如下文件中修改:

/usr/libexec/urlgrabber-ext-down

用云服务器跑ffmpeg 云服务器配置ftp_用云服务器跑ffmpeg_03

将第一行最后的python修改成python2.7:

用云服务器跑ffmpeg 云服务器配置ftp_python_04

修改完成保存,然后再次运行vsftpd安装,这次成功执行,如下:

用云服务器跑ffmpeg 云服务器配置ftp_linux_05

现在vsftpd就算安装完成了,我们可以进入下面路径查看相关配置文件:

/etc/vsftpd

用云服务器跑ffmpeg 云服务器配置ftp_python_06

这里有四个文件,前三个位配置文件,作用分别是:

        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

 


用云服务器跑ffmpeg 云服务器配置ftp_python_07

如图即为启动成功

 

3. 问题与解决方法

Ⅰ、windows资源管理器无法连接ftp

打开conf文件,文件默认开启了匿名用户访问的功能。但如果我们从windows资源管理器访问大概率会出现如下报错:

用云服务器跑ffmpeg 云服务器配置ftp_linux_08

如果出现该问题,我们只需要打开IE浏览器>>Internet选项>>高级>>将“使用被动FTP(用于防火墙和DSL调制解调器的兼容)”选项去掉>>确定即可:

用云服务器跑ffmpeg 云服务器配置ftp_centos_09

Ⅱ、默认文件夹指定 

去掉之后错误消除,我们进入文件夹,只能看到一个空文件夹pub:

用云服务器跑ffmpeg 云服务器配置ftp_linux_10

这是为什么呢?因为我们的ftp目录被默认定位到了:

/var/ftp

现在我们作为匿名用户登录ftp服务器,如果你希望可以将其它文件显示出来,有两个方法:

1. 在conf文件中加入一句:anon_root=/opt,这个配置表示匿名用户访问我的ftp服务的话就直接进入我的服务器/opt目录,当然你也可以在这里设置成其它目录,都行。

用云服务器跑ffmpeg 云服务器配置ftp_centos_11

修改完成后使用:systemctl restart vsftpd,使服务器重启生效配置。

2. 直接在/var/ftp目录下进行操作即可,这样操作有很大的好处,因为为了安全,这个目录默认不允许设置为777权限,否则ftp将无法访问。所以我们选择在这个目录里创建一个允许独写权限的文件夹。

当然,也可以指定具体用户访问的具体范围,这里我暂时不需要,就不再赘述。

Ⅲ、浏览器无法访问文件

现在在ftp根目录下放一个文件夹photos,然后在其中放一张照片,我们尝试访问:

用云服务器跑ffmpeg 云服务器配置ftp_配置文件_12

可以看到这个照片,但是当我们双击打开的时候,跳转到浏览器会无法显示:

用云服务器跑ffmpeg 云服务器配置ftp_配置文件_13

这里是因为我们的ftp被动连接接口被防火墙墙了,虽然资源管理器可以连接但浏览器无法连接

1. 修改vsftpd的配置,手动指定被动模式的随机连接端口,增加以下内容:

pasv_min_port=50000
pasv_max_port=60000

2)设置阿里云的安全组控制端口,这里最好把20端口也打开:

用云服务器跑ffmpeg 云服务器配置ftp_配置文件_14

这样,我们再在浏览器里也可以正常访问了!

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