在阿里云ECS(云服务器)上使用FTP,和在其他Linux/Windows服务器上配置FTP原理相同,但需要特别注意云平台的安全组规则,以下是详细的操作步骤,分为Linux系统和Windows系统两种情况,并附上关键注意事项。
无论你选择哪种FTP软件,首先必须登录阿里云控制台:
1、进入ECS实例列表。
2、点击实例ID ->安全组 ->配置规则 -> 入方向。
3、添加以下规则(以vsftpd默认配置为例,若自定义请按实际端口放行):
允许21(FTP控制端口)
允许20(FTP数据端口,主动模式)
允许30000-31000(vsftpd被动模式端口范围,如使用其他FTP软件请调整)
这是最简单、可视化的方式,无需手动配置vsftpd。
1、安装宝塔面板(CentOS为例):
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh
2、安装完成后,在面板后台 ->软件商店 -> 安装Pure-Ftpd。
3、点击FTP 菜单 ->添加FTP账户,设置用户名、密码、根目录。
4、连接时使用IP(或域名)、端口21、用户名密码即可。
三、方案二:手动配置 vsftpd(Linux系统标准方案)
CentOS / Alibaba Cloud Linux yum install -y vsftpd Ubuntu / Debian apt install -y vsftpd
2. 编辑配置文件/etc/vsftpd/vsftpd.conf
关键修改如下(建议备份原文件后修改):
禁用匿名登录 anonymous_enable=NO 允许本地用户登录 local_enable=YES write_enable=YES 限制用户在自己的家目录(提高安全性) chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list 启用被动模式,并指定端口范围 pasv_enable=YES pasv_min_port=30000 pasv_max_port=31000 被动模式下,客户端连接IP(填写ECS的公网IP) pasv_address=你的ECS公网IP
3. 创建chroot_list文件(限制用户不得跳出家目录)
touch /etc/vsftpd/chroot_list 若某些用户需要跳出家目录访问其他目录,则在该文件中写入用户名,每行一个
useradd -d /var/www/html -s /sbin/nologin ftpuser passwd ftpuser chmod 755 /var/www/html
systemctl start vsftpd systemctl enable vsftpd
如果ECS为CentOS 7+且启用了firewalld,需额外放行:
firewall-cmd --permanent --add-service=ftp firewall-cmd --permanent --add-port=30000-31000/tcp firewall-cmd --reload
使用FTP客户端(如FileZilla、WinSCP),协议选择FTP - 文件传输协议:
- 主机:ECS公网IP
- 用户名:你创建的本地用户(如ftpuser)
- 密码:用户密码
- 端口:21
- 连接成功后,FileZilla中需将传输模式设为主动模式 或被动模式(两者均需在安全组放行相应端口,推荐被动模式)。
四、方案三:Windows Server(以安装IIS FTP为例)
1、打开服务器管理器 ->添加角色和功能,勾选Web服务器(IIS) ->FTP服务器。
2、在IIS管理器中,右键站点 ->添加FTP站点,指定名称和物理路径。
3、绑定IP和端口21,SSL选“无”。
4、授权允许特定用户(如Administrator)或所有用户。
5、在FTP防火墙支持 中,配置数据通道端口范围(如30000-31000),并确保安全组已放行。
6、使用客户端连接(注意关闭Windows防火墙或添加例外)。
检查安全组:是否放行了21、20、被动端口范围。
检查vsftpd服务状态:systemctl status vsftpd。
检查用户密码:passwd ftpuser重新设置。
检查目录权限:家目录用户必须有读/写权限(chmod 755)。
2. 登录成功,但无法列出目录(列表失败)
- 原因:被动模式端口未放行 或 主动模式无法建立数据连接。
- 解决:在FileZilla中选择站点管理器 -> 传输设置 -> 传输模式改为被动模式,并确认阿里云安全组已放行30000-31000端口。
3. 530 Login incorrect
- 确保用户名正确,且用户shell有效(vsftpd要求shell在/etc/shells中,如/sbin/nologin需添加进去)。
- 检查被动端口范围是否与pasv_min_port/pasv_max_port一致,且安全组已放行。
- 减少客户端超时设置(如FileZilla中超时秒数改为60秒)。
- 临时测试:setenforce 0。
- 永久关闭(不推荐生产):编辑/etc/selinux/config,SELINUX=disabled。
- 正确做法:setsebool -P ftpd_full_access on。
1、禁用匿名登录(anonymous_enable=NO)。
2、限制用户在家目录(chroot_local_user=YES)。
3、使用SFTP替代FTP:如果只为传输文件,更推荐使用SSH自带的SFTP(仅需放行22端口),更安全且穿透防火墙简单。
- 连接示例:FileZilla协议选择SFTP - SSH File Transfer Protocol,端口22,使用Linux系统用户登录。
按照上述步骤,你应该能顺利在阿里云ECS上使用FTP,如果仍有问题,请提供具体的错误提示,我可以进一步帮你分析。
文章摘自:https://idc.huochengrm.cn/zj/25923.html
评论
濮博艺
回复阿里云主机FTP使用方法:首先在阿里云控制台开启FTP服务,配置用户权限和文件路径,然后使用FTP客户端软件连接,输入用户名和密码即可进行文件上传和下载操作。
南门振平
回复阿里云主机使用FTP,首先在云服务器控制台创建FTP用户,然后下载并安装FTP客户端,配置服务器地址、用户名和密码,即可实现文件的上传和下载。