菜鸟科技网

阿里云ECS如何用FTP连接?

要通过FTP连接阿里云ECS(Elastic Compute Service),需要完成一系列配置步骤,包括ECS实例的安全组设置、FTP服务器的安装与配置、本地FTP客户端的使用等,以下是详细操作流程和注意事项:

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

准备工作

  1. 购买并配置ECS实例
    登录阿里云控制台,确保已创建一台ECS实例(推荐选择Linux系统,如CentOS 7.x),实例需满足以下条件:

    • 公网IP地址已绑定(用于远程访问)。
    • 系统防火墙已关闭或开放FTP相关端口(默认为21,被动模式可能需开放1024-65535)。
    • 实例已安装SSH客户端工具(如PuTTY或Xshell),用于远程连接服务器。
  2. 本地环境准备
    在本地电脑安装FTP客户端工具(如FileZilla、WinSCP等),并确保网络可访问ECS的公网IP。

ECS实例安全组配置

安全组是ECS的虚拟防火墙,需手动开放FTP端口,操作步骤如下:

  1. 登录阿里云控制台,进入“ECS > 网络与安全 > 安全组”。
  2. 选择目标ECS实例对应的安全组,点击“配置规则”。
  3. 在“入方向”规则中添加以下两条规则(若已存在则跳过):
    • 规则1(FTP控制端口)
      • 授权策略:允许
      • 端口范围:21
      • 授权对象:0.0.0.0/0(开放所有IP,生产环境建议限制特定IP)
    • 规则2(FTP数据端口,被动模式)
      • 授权策略:允许
      • 端口范围:1024-65535(或自定义被动端口范围)
      • 授权对象:0.0.0.0/0
  4. 点击“保存”生效。

安装并配置FTP服务器(以vsftpd为例)

安装vsftpd

通过SSH连接ECS实例(使用PuTTY或Xshell),执行以下命令:

阿里云ECS如何用FTP连接?-图2
(图片来源网络,侵删)
# 更新软件包
yum update -y
# 安装vsftpd
yum install vsftpd -y
# 启动服务并设置开机自启
systemctl start vsftpd
systemctl enable vsftpd

配置vsftpd

编辑配置文件 /etc/vsftpd/vsftpd.conf,修改以下关键参数:

vim /etc/vsftpd/vsftpd.conf

主要配置项:

# 禁止匿名用户访问
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传文件
write_enable=YES
# 锁定用户主目录(防止访问系统文件)
chroot_local_user=YES
# 启用被动模式(推荐)
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=65535
# 禁止root用户登录(可选)
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=YES

保存后重启vsftpd服务:

systemctl restart vsftpd

创建FTP用户

# 创建用户(例如ftpuser),并设置密码
adduser ftpuser
passwd ftpuser
# 将用户添加到允许列表(若配置了userlist_deny=YES)
echo "ftpuser" >> /etc/vsftpd/user_list
# 设置用户主目录权限(确保可读写)
chmod 755 /home/ftpuser

防火墙与SELinux配置

关闭防火墙(或开放端口)

# 临时关闭(重启后失效)
systemctl stop firewalld
# 永久关闭
systemctl disable firewalld

若需开启防火墙,需添加FTP服务例外:

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

配置SELinux(若开启)

# 安装SELinux FTP支持
yum install selinux-policy-targeted -y
# 设置布尔值
setsebool -P ftpd_full_access on

使用FTP客户端连接

以FileZilla为例:

  1. 打开FileZilla,点击“文件 > 站点管理 > 新建站点”。
  2. 填写以下信息:
    • 主机:ECS的公网IP
    • 协议:FTP - 文件传输协议
    • 加密:只使用FTP(不安全)
    • 用户名:之前创建的FTP用户(如ftpuser)
    • 密码:用户密码
  3. 点击“连接”,若成功则显示服务器文件列表。

常见问题排查

  1. 连接超时或被拒绝

    • 检查安全组是否开放21和被动端口。
    • 确认防火墙和SELinux配置。
    • 查看vsftpd日志:tail -f /var/log/vsftpd.log
  2. 无法上传文件

    • 检查用户目录权限:ls -ld /home/ftpuser(需为755)。
    • 确认write_enable=YES是否在配置文件中启用。
  3. 被动模式连接失败

    在FileZilla中设置被动模式:编辑 > 设置 > 连接 > 被动模式,勾选“使用服务器被动模式”。

相关问答FAQs

Q1: 连接FTP时提示“530 Login incorrect”怎么办?
A: 可能原因包括:用户名或密码错误、用户被锁定在user_list中、或SELinux阻止登录,建议检查用户列表文件(/etc/vsftpd/user_list)是否包含该用户,并确认密码正确,同时查看日志排查错误。

Q2: 如何限制FTP用户只能访问指定目录?
A: 在vsftpd.conf中配置chroot_local_user=YES后,用户默认被限制在主目录,如需指定目录,可创建虚拟用户并配置local_root参数,

user_sub_token=$USER  
local_root=/data/ftp/$USER  

并确保目录权限正确(chown -R ftpuser:ftpuser /data/ftp)。

分享:
扫描分享到社交APP
上一篇
下一篇