在Linux系统中搭建FTP服务器是许多企业和个人用户的需求,主要用于文件传输、共享和管理,本文将详细介绍在Linux环境下搭建FTP服务器的步骤、配置及优化方法,帮助读者快速完成部署并确保安全性。

选择FTP服务器软件
Linux下常用的FTP服务器软件有vsftpd(Very Secure FTP Daemon)、ProFTPD和Pure-FTPd等,vsftpd因其安全性高、性能稳定且配置简单而成为首选,本文以vsftpd为例进行讲解。
安装vsftpd
以CentOS系统为例,使用yum包管理器安装vsftpd:
sudo yum install vsftpd -y
安装完成后,启动并设置开机自启:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
对于Ubuntu/Debian系统,可使用apt命令安装:
sudo apt update sudo apt install vsftpd -y
配置vsftpd
vsftpd的主配置文件位于/etc/vsftpd/vsftpd.conf,以下是关键配置项及说明:
| 配置项 | 默认值 | 说明 |
|---|---|---|
| anonymous_enable=YES | 允许匿名用户访问 | 建议设为NO以提高安全性 |
| local_enable=YES | 允许本地用户访问 | 通常保持开启 |
| write_enable=YES | 允许FTP命令修改文件 | 需根据需求谨慎开启 |
| chroot_local_user=YES | 限制用户仅能访问主目录 | 增强安全性 |
| pasv_min_port=60000 | 被动模式最小端口 | 避免使用特权端口(<1024) |
| pasv_max_port=60100 | 被动模式最大端口 | 与防火墙规则保持一致 |
编辑配置文件:

sudo vim /etc/vsftpd/vsftpd.conf
根据需求修改上述参数,保存后重启服务:
sudo systemctl restart vsftpd
创建FTP用户
建议为FTP服务创建独立用户,避免使用系统用户,创建用户ftpuser并设置密码:
sudo useradd -m -d /home/ftpuser -s /sbin/nologin ftpuser sudo passwd ftpuser
参数说明:
-m:自动创建用户主目录-d:指定用户主目录-s /sbin/nologin:禁止用户通过SSH登录
配置防火墙和SELinux
- 防火墙配置(以firewalld为例):
sudo firewall-cmd --permanent --add-service=ftp sudo firewall-cmd --reload
- SELinux配置(如启用):
sudo setsebool -P ftpd_full_access on
测试FTP服务器
使用FileZilla或命令行工具测试连接,通过命令行测试:
ftp localhost
输入用户名和密码后,尝试上传或下载文件,验证配置是否正确。
优化与安全建议
- 禁用匿名访问:确保
anonymous_enable=NO。 - 限制用户权限:通过
write_enable和chroot限制用户操作范围。 - 启用日志记录:配置
xferlog_enable=YES记录传输日志。 - 更新软件:定期运行
sudo yum update或sudo apt upgrade。
常见问题排查
- 连接被拒绝:检查防火墙和SELinux设置,确认端口(21和被动模式端口)开放。
- 权限不足:确保用户对主目录有读写权限,可通过
chmod调整。
FAQs

Q1: 如何限制FTP用户只能访问其主目录?
A1: 在vsftpd.conf中设置chroot_local_user=YES,并确保用户主目录权限为755(chmod 755 /home/ftpuser),若用户仍能跳出目录,检查SELinux是否为 enforcing 模式,并执行sudo setsebool -P ftpd_full_access on。
Q2: 如何实现FTP服务器的SSL/TLS加密?
A2: 生成SSL证书(如使用openssl req -new -x509 -days 365 -nodes -out vsftpd.pem -keyout vsftpd.pem),然后在配置文件中添加以下参数:
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
重启服务后,客户端需选择“使用显式FTP over SSL(FTPES)”连接。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/62821.html