温馨提示×

怎样设linux ftpserver

小樊
45
2026-09-29 09:19:38
栏目: 智能运维

下面以 最常见的 vsftpd(Very Secure FTP Daemon) 为例,说明在 Linux 上搭建 FTP / FTPS 服务器 的基本步骤(含匿名、本地用户、以及 FTPS 加密)。


一、安装 vsftpd

CentOS / RHEL

yum install -y vsftpd

Ubuntu / Debian

apt update
apt install -y vsftpd

二、启动并设置开机自启

systemctl start vsftpd
systemctl enable vsftpd

查看状态:

systemctl status vsftpd

三、基础配置(/etc/vsftpd/vsftpd.conf)

配置文件位置:

  • CentOS:/etc/vsftpd/vsftpd.conf
  • Ubuntu:/etc/vsftpd.conf

1️⃣ 允许本地用户登录(最常用)

anonymous_enable=NO
local_enable=YES
write_enable=YES

2️⃣ 限制用户只在自己家目录(推荐)

chroot_local_user=YES
allow_writeable_chroot=YES

3️⃣ 被动模式(云服务器必开)

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

⚠️ 云服务器需在安全组放行 21 和 30000–31000


四、创建 FTP 用户

useradd -m ftpuser
passwd ftpuser

设置目录权限:

chown -R ftpuser:ftpuser /home/ftpuser

五、配置 FTPS(FTP over SSL,推荐)

1️⃣ 生成证书

openssl req -x509 -nodes -days 365 \
-keyout /etc/vsftpd/vsftpd.pem \
-out /etc/vsftpd/vsftpd.pem

2️⃣ 修改配置

ssl_enable=YES
allow_anon_ssl=NO
force_local_logins_ssl=YES
force_local_data_ssl=YES

rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem

重启服务:

systemctl restart vsftpd

客户端使用 FTPS(显式 SSL,端口 21)


六、防火墙(如有)

firewalld

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

iptables

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT

七、测试连接

ftp localhost

或用 FileZilla:

  • 主机:服务器IP
  • 协议:FTP
  • 加密:显式 FTP over TLS
  • 用户 / 密码:ftpuser

八、常见问题

❌ 530 Login incorrect

  • 检查用户是否被锁定
  • SELinux 可临时关闭测试:
setenforce 0

✅ SELinux 正确做法

setsebool -P ftpd_full_access on

如果你愿意,我可以:

  • 帮你写 完整 vsftpd.conf
  • 教你用 SFTP(更推荐)
  • 针对 CentOS 7 / Ubuntu 22.04 单独说明

你用的是哪种 Linux?

0 踩