推荐配置:2 核 4G 内存以上,50GB SSD,公网 IP
操作系统:CentOS 7+/Ubuntu 20.04+
安全组规则(阿里云 / 腾讯云等):开放 TCP 20、21、30000-31000 端口(被动模式范围)
# CentOS/RHELyum update -y# Ubuntu/Debianapt update && apt upgrade -y
# 安装vsftpdyum install vsftpd -y# 启动并设置开机自启systemctl enable vsftpd --now# 配置防火墙firewall-cmd --permanent --add-service=ftp firewall-cmd --permanent --add-port=30000-31000/tcp firewall-cmd --reload
# 安装vsftpdapt install vsftpd -y# 启动并设置开机自启systemctl enable vsftpd --now# 配置UFW防火墙ufw allow 20/tcp ufw allow 21/tcp ufw allow 30000:31000/tcp ufw reload
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
vim /etc/vsftpd/vsftpd.conf
关键配置参数:
conf
# 基础设置 anonymous_enable=NO # 禁用匿名访问 local_enable=YES # 启用本地用户 write_enable=YES # 启用写入权限 local_umask=022 # 文件创建掩码 # 被动模式配置(关键!) pasv_enable=YES pasv_min_port=30000 pasv_max_port=31000 pasv_address=你的公网IP # 填写云服务器公网IP # 安全增强 chroot_local_user=YES # 限制用户在自家目录 allow_writeable_chroot=YES # 允许chroot目录可写 rsa_cert_file=/etc/ssl/certs/vsftpd.pem # SSL证书路径(后续配置) ssl_enable=YES # 启用SSL force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH
重启服务使配置生效:
bashsystemctl restart vsftpd
useradd -d /data/ftp/user1 -s /sbin/nologin ftpuser1passwd ftpuser1 # 设置密码
mkdir -p /data/ftp/user1chown -R ftpuser1:ftpuser1 /data/ftp/user1chmod -R 755 /data/ftp
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout /etc/ssl/private/vsftpd.key \-out /etc/ssl/certs/vsftpd.crt \-subj "/C=CN/ST=Shanghai/L=Shanghai/O=Company/OU=IT/CN=yourdomain.com"cat /etc/ssl/private/vsftpd.key /etc/ssl/certs/vsftpd.crt > /etc/ssl/certs/vsftpd.pemchmod 600 /etc/ssl/certs/vsftpd.pem
# ..已添加以下配置 ssl_enable=YES rsa_cert_file=/etc/ssl/certs/vsftpd.pem rsa_private_key_file=/etc/ssl/certs/vsftpd.pem allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO
协议:选择 "FTP-SSL/TLS" 或 "FTPS"
主机:云服务器公网 IP
端口:21
加密:显式 FTPS
登录类型:正常
用户名 / 密码:ftpuser1 及对应密码
ftp -p 你的公网IP# 登录后使用ls、cd、put、get等命令操作
# 仅允许特定IP访问(示例:仅允许192.168.1.0/24网段)echo "192.168.1.0/24" > /etc/vsftpd/allowed_ipsvim /etc/pam.d/vsftpd# 添加以下行到文件开头auth required pam_listfile.so item=ip sense=allow file=/etc/vsftpd/allowed_ips onerr=fail apply=/usr/sbin/vsftpd
# 在vsftpd.conf中添加 xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES
# 限制同一IP的并发连接数 max_clients=100 max_per_ip=5 # 限制传输速率(KB/s) local_max_rate=5000
systemctl status vsftpd journalctl -u vsftpd -f
# CentOSfirewall-cmd --list-all# Ubuntuufw status
确认pasv_address
为云服务器公网 IP
检查安全组是否开放pasv_min_port
-pasv_max_port
范围
# 创建SFTP用户组groupadd sftpusersusermod -aG sftpusers ftpuser1# 配置SSHvim /etc/ssh/sshd_config# 添加/修改以下行Subsystem sftp internal-sftp Match Group sftpusers ChrootDirectory /data/ftp/%u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no systemctl restart sshd
通过以上步骤,你可以在云服务器上搭建一个安全、的 FTP 服务,支持多用户隔离和数据加密传输。建议优先使用 FTPS 或 SFTP 协议,避免明文传输敏感信息。
(声明:本文来源于网络,仅供参考阅读,涉及侵权请联系我们删除、不代表任何立场以及观点。)