随着云计算技术的迅速普及,越来越多的企业和个人倾向于将数据存储与服务部署迁移至云服务器,尽管FTP(File Transfer Protocol)作为一种历史悠久的文件传输协议,在现代网络环境中逐渐被SFTP或HTTP等更为安全高效的协议所取代,但在一些特定的使用场景中,如企业内部文件共享、网站内容更新以及数据备份等,FTP仍然具备独特优势和不可替代性。
本文将手把手地引导你在云服务器上搭建一个功能完善、安全可靠的FTP服务器,内容涵盖从环境准备、软件安装、服务配置到安全性加固的全过程,无论你是开发者、运维工程师,还是希望自行搭建文件传输服务的普通用户,只需按照本文步骤操作,即可快速部署一个稳定可用的FTP服务。
在开始搭建FTP服务器之前,首先需要完成以下几项基础准备工作。
目前主流的云服务提供商包括阿里云、腾讯云、华为云、AWS、DigitalOcean等,建议选择配置如下:
选择合适的系统和配置可以确保FTP服务运行稳定,避免因资源不足导致服务中断。
使用SSH工具(如 PuTTY、Xshell 或 Linux/macOS 的终端)远程连接服务器:
ssh root@your_server_ip
请确保你已配置好SSH密钥或设置了登录密码,并拥有root权限或sudo权限,以便后续安装和配置服务。
FTP协议默认使用 20(数据端口) 和 21(控制端口) 端口,如果你使用的是被动模式(Passive Mode),还需开放一个额外的端口范围(30000-31000)用于数据连接。
请在云平台的安全组设置中添加对应规则,确保端口开放,否则客户端将无法连接FTP服务。
在Linux系统中,最常用且安全稳定的FTP服务软件是 vsftpd(Very Secure FTP Daemon),它以其轻量、高效和良好的安全性,成为众多运维人员的首选。
根据你的系统类型执行以下命令:
sudo apt update sudo apt install vsftpd -y
sudo yum install vsftpd -y
安装完成后,启动服务并设置开机自启:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
检查服务运行状态:
sudo systemctl status vsftpd
若显示“active (running)”,则说明服务已成功启动。
vsftpd 的主配置文件位于 /etc/vsftpd.conf
,在进行修改前,建议先备份原始配置文件:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
然后使用编辑器打开配置文件进行编辑:
sudo nano /etc/vsftpd.conf
以下是推荐的核心配置项及其说明:
anonymous_enable=NO # 禁止匿名访问 local_enable=YES # 允许本地用户登录 write_enable=YES # 允许上传和写入操作 local_umask=022 # 设置上传文件权限掩码 dirmessage_enable=YES # 启用目录欢迎信息 xferlog_enable=YES # 启用日志记录 connect_from_port_20=YES # 启用标准数据端口20 chroot_local_user=YES # 限制用户在其主目录中 secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd # 使用PAM认证 rsa_cert_file=/etc/ssl/certs/ssl-cert.pem rsa_private_key_file=/etc/ssl/private/ssl-cert.pem ssl_enable=NO # 暂时不启用SSL加密 pasv_enable=YES # 启用被动模式 pasv_min_port=30000 pasv_max_port=31000 # 被动模式端口范围 pasv_address=your_server_ip # 填写服务器的公网IP
保存配置后退出编辑器。
为了确保 chroot 功能正常运行,需创建一个空目录:
sudo mkdir /var/run/vsftpd/empty
为了增强系统安全性,建议为FTP服务创建一个专用用户,而非直接使用系统用户。
sudo groupadd ftpusers
例如创建用户 ftpuser
,并限制其只能通过FTP访问:
sudo useradd -g ftpusers -s /sbin/nologin -d /home/ftpuser ftpuser
设置用户密码:
sudo passwd ftpuser
注意:
-s /sbin/nologin
表示该用户无法通过SSH登录服务器,仅可用于FTP服务,从而提升系统安全性。
sudo chown ftpuser:ftpusers /home/ftpuser sudo chmod 755 /home/ftpuser
确保用户对其主目录具有读写权限,同时防止其他用户越权访问。
为了确保FTP客户端能够正常访问,需在服务器的防火墙及云平台安全组中放行相关端口。
sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow 30000:31000/tcp sudo ufw reload
进入云平台控制台,为服务器添加以下入站规则:
协议 | 端口范围 | 描述 |
---|---|---|
TCP | 20 | FTP数据连接 |
TCP | 21 | FTP控制连接 |
TCP | 30000–31000 | 被动模式端口范围 |
确保上述端口在云平台的安全组中开放,否则客户端无法连接。
完成配置后,可以通过命令行工具或图形化客户端进行测试。
ftp your_server_ip
输入用户名和密码后,尝试上传或下载文件以验证服务是否正常工作。
在FileZilla中填写以下信息:
连接成功后即可进行文件传输操作。
systemctl status vsftpd
write_enable=YES
pasv_enable=YES
pasv_min_port
和 pasv_max_port
设置正确pasv_address
设置为服务器的公网IPFTP协议本身并不具备加密功能,因此容易受到中间人攻击等安全威胁,为提升安全性,建议采取以下措施:
编辑配置文件 /etc/vsftpd.conf
,启用SSL并配置证书路径:
ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES rsa_cert_file=/etc/ssl/certs/vsftpd.pem rsa_private_key_file=/etc/ssl
热卖推荐 上云必备低价长效云服务器99元/1年,OSS 低至 118.99 元/1年,官方优选推荐
热卖推荐 香港、美国、韩国、日本、限时优惠 立刻购买