当前位置:首页 > 虚拟主机 > 正文

广州云服务器如何创建FTP?云服务器搭建FTP教程

在阿里云、西西安全或华为云等主流云服务商的广州区域创建 FTP 服务,通常涉及服务器系统配置、FTP 软件安装、安全组策略调整以及客户端连接测试四个核心环节,以下将详细拆解这一过程,确保您能够顺利搭建并访问文件传输服务。

服务器环境准备与安全组配置

在开始安装软件之前,必须确保云服务器的网络策略允许 FTP 协议的通信,FTP 协议较为特殊,它使用两个端口:一个用于控制连接(默认端口 21),另一个用于数据传输(被动模式通常为随机高位端口,主动模式为 20),仅开放 21 端口往往无法成功传输文件。

端口号 协议类型 用途说明 配置建议
21 TCP 控制连接(命令通道) 必须开放,允许所有 IP 或指定 IP 访问
20 TCP 主动模式数据连接 建议开放,但现代环境多使用被动模式
49152-65534 TCP 被动模式数据连接范围 关键:需开放此范围端口,否则文件列表或下载会卡住

操作步骤:

  1. 登录云服务商控制台,找到您的广州区域云服务器实例。
  2. 进入“安全组”或“防火墙”设置页面。
  3. 添加入方向规则:
    • 授权对象:0.0.0/0(若需限制访问,请替换为特定 IP 段)。
    • 端口范围:21 和 49152-65534(以 CentOS 7/Ubuntu 20.04 为例,若使用 vsftpd 被动模式)。
    • 协议:TCP。

安装 FTP 服务软件

Linux 系统中最稳定且广泛使用的 FTP 软件是 vsftpd(Very Secure FTP Daemon),以下以 CentOS 7/8 和 Ubuntu 20.04/22.04 为例进行说明。

CentOS 系统安装命令:

# 更新系统包 yum update -y # 安装 vsftpd yum install -y vsftpd # 启动服务并设置开机自启 systemctl start vsftpd systemctl enable vsftpd

Ubuntu 系统安装命令:

# 更新系统包 apt update # 安装 vsftpd apt install -y vsftpd # 启动服务并设置开机自启 systemctl start vsftpd systemctl enable vsftpd

配置 FTP 用户与权限

为了安全起见,不建议直接使用 root 用户登录 FTP,建议创建一个专用的 FTP 用户,并限制其只能访问特定目录。

广州云服务器如何创建FTP?云服务器搭建FTP教程 第1张

创建用户与目录:

# 创建用户 ftpuser,并指定其主目录为 /var/www/html/ftpdata useradd -d /var/www/html/ftpdata -s /bin/bash ftpuser # 设置用户密码 passwd ftpuser # 赋予目录权限 chown -R ftpuser:ftpuser /var/www/html/ftpdata chmod -R 755 /var/www/html/ftpdata

修改 vsftpd 配置文件:

编辑 /etc/vsftpd/vsftpd.conf 文件,确保以下关键配置项正确:

# 允许本地用户登录 local_enable=YES # 允许写入权限 write_enable=YES # 限制用户在其主目录内(防止遍历系统文件) chroot_local_user=YES # 允许被动模式 pasv_enable=YES # 设置被动模式端口范围(需与安全组开放端口一致) pasv_min_port=49152 pasv_max_port=65534 # 设置被动模式下的服务器 IP(填写您的云服务器公网 IP) pasv_address=YOUR_PUBLIC_IP

注意:chroot_local_user=YES 导致用户无法登录(报错 500 OOPS),可能需要添加 allow_writeable_chroot=YES 或在 /etc/vsftpd/chroot_list 文件中列出允许写出的用户。

防火墙与 SELinux 调整

除了云服务商的安全组,服务器内部的防火墙也需要放行。

广州云服务器如何创建FTP?云服务器搭建FTP教程 第2张

CentOS (firewalld):

firewall-cmd --permanent --add-port=21/tcp firewall-cmd --permanent --add-port=49152-65534/tcp firewall-cmd --reload

Ubuntu (ufw):

ufw allow 21/tcp ufw allow 49152:65534/tcp ufw reload

SELinux 设置(仅 CentOS/RHEL):

如果启用了 SELinux,可能需要允许 FTP 写入:

setsebool -P ftpd_full_access on

连接测试

配置完成后,重启 vsftpd 服务:

广州云服务器如何创建FTP?云服务器搭建FTP教程 第3张

systemctl restart vsftpd

使用 FileZilla、WinSCP 或浏览器进行连接测试:

  • 主机:您的云服务器公网 IP
  • 用户名:ftpuser
  • 密码:您设置的密码
  • 端口:21
  • 加密:建议尝试“显式 FTP over TLS”以获得更好的安全性,若不支持则使用“仅使用普通 FTP”。


相关问题与解答

问题 1:为什么连接 FTP 服务器时能登录成功,但列出目录或下载文件时一直显示“正在连接”或超时?

解答:

这通常是由于 FTP 的被动模式(Passive Mode)端口未正确开放导致的,FTP 在列出目录或传输数据时,会建立一个新的数据连接,在被动模式下,服务器会告知客户端一个随机端口(通常在 49152-65534 之间)进行数据传输,如果云服务器的安全组或服务器内部防火墙没有开放这个端口范围,客户端就无法建立数据连接。

解决方法:

  1. 检查 vsftpd.conf 中的 pasv_min_port 和 pasv_max_port 设置。
  2. 确保云服务商控制台的安全组入方向规则中,开放了与配置文件中相同的端口范围(如 49152-65534)。
  3. 确保 pasv_address 设置为服务器的公网 IP。

问题 2:使用 FTP 传输大文件时速度非常慢,甚至中断,该如何优化?

解答:

FTP 协议本身效率较低,且受限于网络环境和配置,优化建议如下:

  1. 启用 TLS 加密:虽然加密会增加 CPU 开销,但能防止数据被窃听,确保服务器和客户端都支持并配置了 SSL/TLS,有时加密连接比未加密的明文连接在特定网络环境下更稳定。
  2. 调整并发连接数:在 FileZilla 等客户端中,增加“最大并发下载任务数”和“最大并发上传任务数”,这可以充分利用带宽。
  3. 考虑替代方案:如果仅仅是为了在云服务器和本地之间传输大文件,SCPSFTP(基于 SSH 协议)通常比传统 FTP 更快、更安全且配置更简单,如果必须使用 FTP,可以考虑安装 proftpd 或 pure-ftpd 作为替代,它们在某些场景下性能优于 vsftpd。
  4. 检查 MTU 设置:在某些云网络环境中,调整网络接口的 MTU 值(最大传输单元)可能有助于减少分片,提高传输效率。

0