Cetnos7 上安装 vsftpd 服务程序比较简单,但是可能会踩的坑也比较多,为了避免自己需要的时候还要瞎折腾,就将安装的过程记录下来,方便后续的回顾和总结。

安装 vsftpd 服务仅需要三步:安装、打开防火墙然后简单的配置。

1.安装

在终端中直接使用 yum 安装即可:

# yum install -y vsftpd

2.为该服务开放端口

# firewall-cmd --zone=public --permanent --add-port=21/tcp
# firewall-cmd --zone=public --permanent --add-service=ftp
# firewall-cmd --reload

3. 简单的配置

vsftpd 的配置其实很简单,但是如果想要一些特殊的功能的话,可能就要仔细的研究一下位于 /etc/vsftpd/ 下面的几个文件,尤其是 vsftpd.conf 这个是 vsftpd 主要的配置文件。
如果只是想使用的话,我们只需要修改一处即可:将 listen 设置为 YES, 将 listen_ipv6 设置为 NO。默认 listenNO, 将 listen_ipv6YES

listen=YES
#.....
#.....
#.....
listen_ipv6=NO

修改后之后我们重启vsftpd 服务:

systemctl restart vsftpd

4. 测试连接

经过前面三步,我们就安装了 vsftpd 并且完成了最简单的配置,下面我们使用第三方 ftp 连接工具(这里我使用的是 xftp)进行连接测试:

centos7 ffmpeg安装 centos7安装ftp_服务程序

输入用户和密码:

centos7 ffmpeg安装 centos7安装ftp_配置文件_02

]然后就连接成功了:

centos7 ffmpeg安装 centos7安装ftp_配置文件_03

踩坑

但是我们不能使用 root 用户连接 ftp 服务,这是 vsftpd 的默认行为,默认是不允许 root 连接的,也是为了保证安全性。但是我们是可以设置使用 root 连接的。
还记得在 /etc/vsftpd/ 下面的三个文件夹嘛,我们查看 ftpusers 文件:

# cat ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

看注释,写的是 Users that are not allowed to login via ftp, 也就是说下面这些用户是不被允许登陆 ftp 的,而 root 就在这份名单中,所以root 不被允许通过 ftp 登陆。这里可以将 root 从该文件中删除后再试一下使用 root 登陆(记得修改过配置文件后要重启服务):

但是发现还是不行:

centos7 ffmpeg安装 centos7安装ftp_服务程序_04

我们还忘记了在 /etc/vsftpd/ 目录下的另一个文件 user_list,我们打开查看一下:

cat user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

通过查看注释说的意思和 ftpuser 下说的意思是一样的,也就是当前列表中的用户不允许登录,可以看到还是有 root, 我们再把这里的 root 从列表中删除试一下(记得修改过配置文件后要重启服务):

使用 ftp 工具重新连接,这个时候我们就发现连接成功了:

centos7 ffmpeg安装 centos7安装ftp_配置文件_05