在Linux系统中启动FTP服务主要有两种方式:使用系统内置的FTP软件包(如vsftpd、proftpd等)或通过更安全的SFTP/FTPS协议实现。以下是基于vsftpd(Very Secure FTP Daemon)的详细操作流程:

1. 安装vsftpd(根据发行版选择命令)
bash # Debian/Ubuntu sudo apt update && sudo apt install vsftpd # CentOS/RHEL sudo yum install vsftpd
2. 启动并设置开机自启
bash sudo systemctl start vsftpd # 立即启动服务 sudo systemctl enable vsftpd # 开机自启 sudo systemctl status vsftpd # 验证状态
配置文件路径:/etc/vsftpd.conf
关键配置项:
ini anonymous_enable=NO # 禁用匿名登录 local_enable=YES # 允许本地用户登录 write_enable=YES # 开放写权限 local_umask=022 # 文件创建权限掩码 chroot_local_user=YES # 锁定用户到主目录 allow_writeable_chroot=YES # 允许可写chroot pasv_min_port=40000 # 被动模式端口范围 pasv_max_port=50000
修改后需重启服务:sudo systemctl restart vsftpd
bash # 放行FTP默认端口(21)及被动端口 sudo ufw allow 21/tcp sudo ufw allow 40000:50000/tcp sudo ufw reload
1. 新建系统用户(禁止Shell登录)
bash sudo useradd -m ftpuser -s /sbin/nologin sudo passwd ftpuser # 设置密码
2. 配置用户目录权限
bash sudo chown ftpuser:ftpuser /home/ftpuser sudo chmod 750 /home/ftpuser
| 特性 | FTP | SFTP |
|---|---|---|
| 协议基础 | TCP 21(控制)+20(数据) | SSH协议(默认TCP 22) |
| 加密支持 | 需FTPS实现 | 原生支持 |
| 防火墙友好度 | 需处理被动端口 | 单端口即可 |
| 文件传输效率 | 高 | 中等 |
| 安全性 | 明文传输(基础FTP) | 端到端加密 |
1. 禁用root登录:在配置中添加root_sqash=YES
2. 启用TLS加密:配置FTPS需要SSL证书支持
3. 日志监控:启用xferlog_enable=YES记录传输日志
4. IP限制:通过tcp_wrappers或防火墙策略限制访问源
1. 连接超时:检查防火墙/安全组策略
2. 认证失败:确认/etc/vsftpd.user_list和/etc/vsftpd.chroot_list
3. 目录不可写:验证用户目录权限(建议750)及SELinux状态
4. 被动模式失效:检查pasv_address是否配置公网IP
注:现代Linux环境推荐优先使用SFTP(基于SSH子系统),命令格式:sftp user@host,无需额外服务配置。

查看详情

查看详情