云服务器搭建 FTP

本文介绍了如何在云服务器上搭建FTP服务,包括选择合适的FTP服务器软件(如vsftpd或Pure-FTPd)、安装配置、创建专用用户、设置权限与防火墙规则(开放21端口及被动模式所需端口),以及启用SSL/TLS加密以提升传输安全性,操作需基于Linux系统(如CentOS或Ubuntu),强调安全配置,避免使用匿名登录和弱密码,确保符合生产环境要求。

用云服务器快速搭建安全FTP服务(零基础实操指南)

在日常开发、网站维护或团队协作中,常需在不同设备间稳定传输文件,相比网盘或邮件附件,FTP(文件传输协议)凭借其直连、可控、批量高效等优势,仍是许多技术场景的首选,而借助云服务器搭建私有FTP服务,既能保障数据主权与传输安全,又无需自购硬件、省去机房运维烦恼,本文将带你用最简步骤,在主流Linux云服务器(如阿里云ECS、腾讯云CVM或华为云ECS)上,从零部署一个稳定、可认证、带SSL加密的FTP服务——全程命令可复制,无冗余配置,5分钟即可上线。

环境准备:选型与初始化
推荐选用主流云厂商的入门级云服务器(如2核4G、Ubuntu 22.04 LTS或CentOS 7.9+系统),确保已开通安全组并放行以下端口:21(FTP控制端口)、20(主动模式数据端口)、以及被动模式所需端口段(如30000–30100),为兼顾安全性与易用性,我们采用Pure-FTPd——轻量、无依赖、内置TLS支持,比vsftpd更简洁,比proftpd更易审计。

安装与基础配置
SSH登录服务器后,依次执行:

# Ubuntu/Debian系统  
sudo apt update && sudo apt install pure-ftpd -y  
# CentOS/RHEL系统  
sudo yum install epel-release -y && sudo yum install pure-ftpd -y  

启动服务前,先禁用匿名访问,启用独立守护进程模式:

sudo systemctl stop pure-ftpd  
sudo systemctl disable pure-ftpd  
# 创建配置文件(覆盖默认设置)  
echo "yes" | sudo tee /etc/pure-ftpd/conf/NoAnonymous  
echo "yes" | sudo tee /etc/pure-ftpd/conf/ChrootEveryone  
echo "30000 30100" | sudo tee /etc/pure-ftpd/conf/PassivePortRange  

创建专属FTP用户(非系统用户,更安全)
Pure-FTPd支持虚拟用户机制,避免将FTP账户与系统账户绑定,我们使用纯密码文件管理:

# 创建FTP用户目录(如 /var/www/ftp-data)  
sudo mkdir -p /var/www/ftp-data  
sudo chown -R ftp:ftp /var/www/ftp-data  
# 添加虚拟用户 'webdev',主目录指向该路径,UID/GID设为系统ftp用户(安全沙箱)  
sudo pure-pw useradd webdev -u ftp -g ftp -d /var/www/ftp-data -m  
# 系统会提示输入密码(建议强密码),输入后执行:  
sudo pure-pw mkdb  

启用TLS加密(关键一步!)
明文FTP极易被嗅探,启用FTPS(FTP over SSL)仅需两步:

# 生成自签名证书(生产环境建议替换为Let's Encrypt证书)  
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /etc/ssl/private/pure-ftpd.pem \
  -out /etc/ssl/private/pure-ftpd.pem  
sudo chmod 600 /etc/ssl/private/pure-ftpd.pem  
# 启用TLS强制模式(仅允许加密连接)  
echo "2" | sudo tee /etc/pure-ftpd/conf/TLS  

启动服务并验证

# 以守护进程方式启动(不依赖inetd)  
sudo pure-ftpd -l puredb:/etc/pure-ftpd/pureftpd.pdb -B  
# 或通过systemd管理(Ubuntu 22.04+推荐)  
sudo systemctl enable pure-ftpd  
sudo systemctl start pure-ftpd  

检查状态:sudo ss -tlnp | grep :21,确认监听正常。

客户端连接测试
推荐使用FileZilla(免费开源):

  • 主机:你的云服务器公网IP
  • 用户名:webdev
  • 密码:刚才设置的密码
  • 加密:选择“要求显式FTP over TLS”
  • 端口:留空(自动使用21)

首次连接时,客户端会提示证书信任——点击“确定”接受自签名证书即可,成功后即可见/var/www/ftp-data目录,上传下载畅通无阻。

安全加固小贴士(必做)

  1. 防火墙精简:仅开放21端口及被动端口段(30000–30100),关闭其他无关端口;
  2. 定期轮换密码sudo pure-pw passwd webdev -m 可修改虚拟用户密码;
  3. 日志监控:日志默认位于 /var/log/syslog(Ubuntu)或 /var/log/messages(CentOS),可配合logrotate归档;
  4. 禁止root上传:因已启用Chroot,用户天然被限制在指定目录,无需额外限制。

结语
云服务器搭FTP,本质是把“可控性”还给使用者——不再受第三方平台限速、审核或隐私条款约束,本文所用方案不足百行命令,零依赖、低资源占用(内存常驻<15MB),且全程规避root权限操作,兼顾效率与纵深防御,对于中小团队、个人开发者或静态网站托管场景,这不仅是“能用”,更是“好用、放心用”的起点,真正的运维自由,始于一次干净利落的部署。(全文共1786字)