CentOS vsftpd 安装指南
在 CentOS 系统中,vsftpd(Very Secure FTP Daemon)是一款小巧轻快且安全易用的 FTP 服务器程序,本文将详细介绍如何在 CentOS 系统上安装和配置 vsftpd,包括安装步骤、配置防火墙、添加用户、设置目录权限以及配置文件的详细解释。

一、vsftpd简介
vsftpd 是“Very Secure FTP Daemon”的缩写,是一款在Linux发行版中广泛使用的FTP服务器软件,它以安全性高和轻量级著称,适用于各种FTP服务场景。
二、安装步骤
1. 检查是否已安装
在安装之前,可以先检查系统中是否已经安装了 vsftpd,使用以下命令:
- rpm qa | grep vsftpd
如果未安装,则继续下一步。
2. 安装 vsftpd
以 root 用户或具有 sudo 权限的用户身份执行以下命令来安装 vsftpd:

- yum install y vsftpd
安装完成后,可以查看安装版本以确认安装成功:
- vsftpd v
3. 启动并设置开机自启动
启动 vsftpd 服务:
- systemctl start vsftpd
设置开机自启动:
- systemctl enable vsftpd
4. 检查服务状态
确保服务正常运行:

- systemctl status vsftpd
输出示例如下:
- ● vsftpd.service Vsftpd ftp daemon
- Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
- Active: active (running) since Mon 20200330 15:16:51 EDT; 10s ago
- Docs: man:vsftpd(8)
- Main PID: 2880 (vsftpd)
- CGroup: /system.slice/vsftpd.service
- └─2880 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
三、配置防火墙
为了允许外部访问 FTP 服务,需要配置防火墙,默认情况下,CentOS 使用 firewalld 管理防火墙。
1. 永久关闭 firewalld
如果不希望每次重启后都手动关闭 firewalld,可以永久关闭:
- systemctl stop firewalld
- systemctl disable firewalld
2. 使用 iptables 配置防火墙
编辑/etc/sysconfig/iptables
文件,在 REJECT 行之前添加以下代码:
- A RHFirewall1INPUT m state state NEW m tcp p tcp dport 21 j ACCEPT
保存并关闭文件,然后重启 iptables:
- service iptables restart
或者,使用以下命令立即生效:
- iptables F
- iptables A INPUT p tcp dport 21 j ACCEPT
四、配置 vsftpd
vsftpd 的配置文件位于/etc/vsftpd/vsftpd.conf
,可以使用文本编辑器打开该文件进行配置:
- vi /etc/vsftpd/vsftpd.conf
1. 基本配置
以下是一些常见的配置选项及其解释:
- 禁止匿名登录
- anonymous_enable=NO
- 允许本地用户登录
- local_enable=YES
- 允许上传文件
- write_enable=YES
- 锁定用户在其主目录
- chroot_local_user=YES
- 指定 chroot() 列表文件位置
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd/chroot_list
- 启用被动模式
- pasv_enable=YES
- 设置被动模式端口范围
- pasv_min_port=30000
- pasv_max_port=31000
- 指定被动模式 IP 地址(公网 IP)
- pasv_address=<你的服务器IP>
2. 添加例外用户名单
创建/etc/vsftpd/chroot_list
文件,并添加例外用户,添加用户peter
和john
:
- peter
- john
每个用户占一行,无空格,保存并关闭文件。
3. 重启 vsftpd 服务
修改配置文件后,重启 vsftpd 服务使配置生效:
- systemctl restart vsftpd
五、验证连接
使用 FTP 客户端(如 filezilla)连接到服务器,输入服务器 IP 地址、用户名和密码进行测试,如果配置正确,应能成功连接并访问指定的目录。
六、常见问题及解答(FAQs)
Q1:如何更改 FTP 服务的监听端口?
A1:在/etc/vsftpd/vsftpd.conf
文件中,找到并修改listen
参数,将监听端口改为 2222:
- listen=YES
- listen_ipv6=NO
- listen_port=2222
然后重启 vsftpd 服务:
- systemctl restart vsftpd
确保防火墙开放新的端口:
- firewallcmd permanent addport=2222/tcp
- firewallcmd reload
或者配置 iptables:
- iptables A INPUT p tcp dport 2222 j ACCEPT
- service iptables restart
Q2:如何限制特定用户只能访问其主目录?
A2:通过配置chroot_local_user
和chroot_list
来实现,设置chroot_local_user=YES
,然后在/etc/vsftpd/chroot_list
中列出例外用户,若只允许用户peter
访问其他目录,而其他用户只能访问其主目录,可以如下配置:
- chroot_local_user=YES
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd/chroot_list
- /etc/vsftpd/chroot_list 内容:
- peter
这样,除了peter
之外的用户都会被限制在自己的主目录内。