logo

在云服务器上搭建FTP服务器端的步骤详解

2025-08-25 by Joshua Nash 来源:互联网
  • 优化语句结构,使其更流畅自然
  • 补充说明性内容,增强逻辑连贯性
  • 提高语言专业性与原创性

随着云计算技术的迅速普及,越来越多的企业和个人倾向于将数据存储与服务部署迁移至云服务器,尽管FTP(File Transfer Protocol)作为一种历史悠久的文件传输协议,在现代网络环境中逐渐被SFTP或HTTP等更为安全高效的协议所取代,但在一些特定的使用场景中,如企业内部文件共享、网站内容更新以及数据备份等,FTP仍然具备独特优势和不可替代性。

本文将手把手地引导你在云服务器上搭建一个功能完善、安全可靠的FTP服务器,内容涵盖从环境准备、软件安装、服务配置到安全性加固的全过程,无论你是开发者、运维工程师,还是希望自行搭建文件传输服务的普通用户,只需按照本文步骤操作,即可快速部署一个稳定可用的FTP服务。


准备工作:选择云服务器与系统环境

在开始搭建FTP服务器之前,首先需要完成以下几项基础准备工作。

选择合适的云服务器

目前主流的云服务提供商包括阿里云、腾讯云、华为云、AWS、DigitalOcean等,建议选择配置如下:

  • 操作系统:推荐使用 CentOS 7 及以上、Ubuntu 18.04 及以上或 Debian 10 及以上版本
  • CPU:至少 1 核
  • 内存:建议 1GB 及以上
  • 磁盘空间:20GB 起步
  • 网络带宽:1Mbps 或更高

选择合适的系统和配置可以确保FTP服务运行稳定,避免因资源不足导致服务中断。

远程登录云服务器

使用SSH工具(如 PuTTY、Xshell 或 Linux/macOS 的终端)远程连接服务器:

ssh root@your_server_ip

请确保你已配置好SSH密钥或设置了登录密码,并拥有root权限或sudo权限,以便后续安装和配置服务。

开放防火墙端口

FTP协议默认使用 20(数据端口)21(控制端口) 端口,如果你使用的是被动模式(Passive Mode),还需开放一个额外的端口范围(30000-31000)用于数据连接。

请在云平台的安全组设置中添加对应规则,确保端口开放,否则客户端将无法连接FTP服务。


安装FTP服务器软件

在Linux系统中,最常用且安全稳定的FTP服务软件是 vsftpd(Very Secure FTP Daemon),它以其轻量、高效和良好的安全性,成为众多运维人员的首选。

安装 vsftpd

根据你的系统类型执行以下命令:

Ubuntu / Debian 系统:

sudo apt update
sudo apt install vsftpd -y

CentOS 系统:

sudo yum install vsftpd -y

安装完成后,启动服务并设置开机自启:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

检查服务运行状态:

sudo systemctl status vsftpd

若显示“active (running)”,则说明服务已成功启动。


配置 vsftpd 服务

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 所需空目录

为了确保 chroot 功能正常运行,需创建一个空目录:

sudo mkdir /var/run/vsftpd/empty

创建专用FTP用户

为了增强系统安全性,建议为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客户端能够正常访问,需在服务器的防火墙及云平台安全组中放行相关端口。

配置防火墙(以 UFW 为例)
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服务

完成配置后,可以通过命令行工具或图形化客户端进行测试。

使用命令行测试
ftp your_server_ip

输入用户名和密码后,尝试上传或下载文件以验证服务是否正常工作。

使用FileZilla客户端连接

在FileZilla中填写以下信息:

  • 主机:云服务器的公网IP
  • 用户名:ftpuser
  • 密码:你设置的密码
  • 端口:21
  • 传输模式:被动(PASV)

连接成功后即可进行文件传输操作。


常见问题与解决方案
无法连接服务器
  • 检查防火墙是否放行21端口
  • 检查云平台安全组是否放行对应端口
  • 检查服务是否正常运行:systemctl status vsftpd
无法上传文件
  • 检查配置项 write_enable=YES
  • 确保目标目录具有写入权限
被动模式连接失败
  • 检查配置项 pasv_enable=YES
  • 确认 pasv_min_portpasv_max_port 设置正确
  • 确保 pasv_address 设置为服务器的公网IP

安全加固建议

FTP协议本身并不具备加密功能,因此容易受到中间人攻击等安全威胁,为提升安全性,建议采取以下措施:

启用SSL/TLS加密传输

编辑配置文件 /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

image
超值优选 限时抢购 轻量云服务器 1核1G 15元/起

热卖推荐 上云必备低价长效云服务器99元/1年,OSS 低至 118.99 元/1年,官方优选推荐

热卖推荐 香港、美国、韩国、日本、限时优惠 立刻购买

优质托管支持

高质量、安全的网络托管方面拥有十多年的经验我们是您在线旅程的战略合作伙伴。

联系我们 企业微信