在 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
。默认 listen
为 NO
, 将 listen_ipv6
为 YES
listen=YES
#.....
#.....
#.....
listen_ipv6=NO
修改后之后我们重启vsftpd
服务:
systemctl restart vsftpd
4. 测试连接
经过前面三步,我们就安装了 vsftpd
并且完成了最简单的配置,下面我们使用第三方 ftp
连接工具(这里我使用的是 xftp
)进行连接测试:
输入用户和密码:
]然后就连接成功了:
踩坑
但是我们不能使用 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
登陆(记得修改过配置文件后要重启服务):
但是发现还是不行:
我们还忘记了在 /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
工具重新连接,这个时候我们就发现连接成功了: