菜鸟科技网

阿里云ECS如何设置FTP?

在阿里云ECS(Elastic Compute Service)实例中设置FTP服务,需要完成实例安全组配置、FTP服务器安装与配置、用户权限管理以及防火墙设置等步骤,以下是详细的操作指南,帮助您顺利完成FTP服务的搭建。

阿里云ECS如何设置FTP?-图1
(图片来源网络,侵删)

准备工作

在开始设置FTP之前,确保您已完成以下准备工作:

  1. 创建并启动ECS实例:登录阿里云控制台,创建一台Linux或Windows系统的ECS实例,并确保实例已启动,本文以CentOS 7系统为例进行说明。
  2. 连接ECS实例:通过SSH工具(如PuTTY、Xshell)连接到ECS实例,或使用Windows系统的远程桌面连接(如果是Windows实例)。
  3. 安全组配置:在ECS控制台的“网络与安全”>“安全组”中,添加安全组规则,放行FTP服务的默认端口(21端口)以及被动模式可能使用的端口范围(如20000-21000),具体配置如下:
    • 方向:入方向
    • 授权对象:0.0.0.0/0(表示允许所有IP访问,生产环境建议限制为特定IP)
    • 端口范围:21/21(FTP控制端口)
    • 端口范围:20000-21000/20000-21000(FTP被动模式数据端口)

安装FTP服务器软件

以CentOS 7为例,安装vsftpd(Very Secure FTP Daemon):

  1. 更新系统软件包:
    sudo yum update -y
  2. 安装vsftpd:
    sudo yum install vsftpd -y
  3. 启动并设置开机自启:
    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd

配置FTP服务器

  1. 备份原始配置文件
    sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
  2. 编辑配置文件
    sudo vim /etc/vsftpd/vsftpd.conf

    修改以下关键参数:

    • anonymous_enable=NO:禁止匿名访问
    • local_enable=YES:允许本地用户访问
    • write_enable=YES:允许用户上传文件
    • chroot_local_user=YES:限制用户仅能访问其主目录
    • pasv_min_port=20000:设置被动模式最小端口
    • pasv_max_port=21000:设置被动模式最大端口
    • allow_writeable_chroot=YES:允许被限制在主目录的用户具有写权限(需配合以下配置) 在文件末尾添加以下内容以支持被动模式:
      pasv_address=<ECS实例公网IP>  # 替换为您的ECS公网IP
      pasv_addr_resolve=YES
  3. 保存并退出wq)。

创建FTP用户并设置权限

  1. 创建FTP用户
    sudo useradd -m -d /home/ftpuser -s /sbin/nologin ftpuser
    • -m:自动创建用户主目录
    • -d:指定用户主目录
    • -s:禁止用户登录SSH(仅允许FTP)
  2. 设置用户密码
    sudo passwd ftpuser
  3. 设置目录权限
    sudo chmod 755 /home/ftpuser
    sudo chown ftpuser:ftpuser /home/ftpuser

配置防火墙与SELinux

  1. 开放FTP相关端口
    sudo firewall-cmd --permanent --add-port=21/tcp
    sudo firewall-cmd --permanent --add-port=20000-21000/tcp
    sudo firewall-cmd --reload
  2. 关闭SELinux或设置FTP相关策略(推荐关闭):
    sudo setenforce 0  # 临时关闭
    sudo vim /etc/selinux/config  # 永久关闭,将SELINUX=disabled

重启FTP服务并测试

  1. 重启vsftpd服务
    sudo systemctl restart vsftpd
  2. 测试连接
    • 使用FTP客户端(如FileZilla)连接,输入ECS公网IP、用户名(ftpuser)和密码。
    • 确保可以上传、下载文件,且用户被限制在主目录中。

常见问题排查

  1. 连接被拒绝:检查安全组规则是否放行21和被动端口,防火墙是否已关闭或开放端口。
  2. 无法上传文件:检查write_enable=YES是否配置,用户目录权限是否为755,所有者是否为ftpuser。
  3. 被动模式连接失败:确认pasv_address是否为ECS公网IP,安全组是否放行被动端口范围。

相关问答FAQs

问题1:如何限制FTP用户只能访问指定目录?
答:通过chroot_local_user=YES限制用户访问主目录,并确保用户主目录权限为755,所有者为FTP用户,若希望用户访问/data/ftp目录,可执行:

阿里云ECS如何设置FTP?-图2
(图片来源网络,侵删)
sudo useradd -m -d /data/ftp -s /sbin/nologin ftpuser
sudo chown ftpuser:ftpuser /data/ftp

问题2:如何设置FTP用户仅可下载不可上传?
答:在vsftpd.conf中配置write_enable=NO,或针对特定用户使用user_config_dir功能。

  1. 创建用户配置目录:
    sudo mkdir /etc/vsftpd/user_conf
  2. 为用户ftpuser创建配置文件/etc/vsftpd/user_conf/ftpuser,添加:
    write_enable=NO
  3. vsftpd.conf中添加:
    user_config_dir=/etc/vsftpd/user_conf
  4. 重启vsftpd服务即可生效。
阿里云ECS如何设置FTP?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇