温馨提示×

怎么给CentOS加FTPServer

小樊
45
2026-07-20 14:18:14
栏目: 智能运维

在 CentOS 上搭建 FTP 服务器(FTPS,即 FTP over SSL/TLS),最常用的是 vsftpd + SSL。下面我按 最简可运行方案 给你一步步来,适合 CentOS 7 / 8 / Stream。


一、安装 vsftpd

yum install -y vsftpd

(CentOS 8 / Stream 用 dnf install -y vsftpd


二、生成 SSL 证书(FTPS 必须)

1️⃣ 创建证书目录

mkdir -p /etc/vsftpd/ssl

2️⃣ 生成自签证书(1 年)

openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/vsftpd/ssl/vsftpd.key \
  -out /etc/vsftpd/ssl/vsftpd.crt

一路回车即可(Common Name 建议填服务器 IP 或域名)。


三、配置 vsftpd(核心)

编辑配置文件:

vim /etc/vsftpd/vsftpd.conf

✅ 推荐 FTPS 配置(直接覆盖或合并)

# 基础
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

# 被动模式(非常重要)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

# SSL / TLS(FTPS 关键)
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

rsa_cert_file=/etc/vsftpd/ssl/vsftpd.crt
rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key

# 安全
chroot_local_user=YES
allow_writeable_chroot=YES

# 日志
xferlog_enable=YES
log_ftp_protocol=YES

四、放行端口(防火墙)

1️⃣ 开放 FTP 端口

firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload

2️⃣ 如果是云服务器

安全组也要放行 21 和 30000–31000


五、启动 vsftpd

systemctl enable vsftpd
systemctl start vsftpd
systemctl status vsftpd

六、创建 FTP 用户

useradd ftpuser
passwd ftpuser

用户默认家目录:/home/ftpuser


七、客户端连接方式(重点)

✅ 必须使用 FTPS(Explicit TLS)

客户端 设置
FileZilla 协议:FTP over TLS
WinSCP 协议:FTP + TLS/SSL
lftp set ftp:ssl-force true

❌ 不要用普通 FTP(会被拒绝)


八、常见问题排查

1️⃣ 连接超时

  • 防火墙没放行
  • 云安全组没开
  • 被动端口不一致

2️⃣ 530 Login incorrect

setenforce 0

测试是否 SELinux 问题

3️⃣ 无法上传

chmod 755 /home/ftpuser

九、要不要我帮你?

你可以直接告诉我:

  • CentOS 版本
  • 内网 / 云服务器
  • 只想本地用 or 对外网

我可以给你 专用配置 + 排错命令,甚至帮你改成 SFTP(更推荐)

0