阿里云配置ftp后,本地电脑怎么连上去传文件

第一次在阿里云ECS上搭FTP,很多人会卡在同一个地方:服务装好了,本地连不上;或者能连上,却传不了文件。问题大多出在安全组、被动端口和目录权限这三处。本文以一台Alibaba Cloud Linux服务器为例,走一遍阿里云配置ftp的完整流程,并说明常见报错怎么排查。

阿里云配置ftp后,本地电脑怎么连上去传文件

一个实际的需求

小王在一家做茶叶电商的小公司负责运营。每天要把新品图片和详情页素材交给设计外包,对方习惯用FTP客户端直接拖文件。之前两边靠邮件和网盘来回传,版本经常对不上。他的要求不复杂:开一个专用账号,只能进指定目录,能上传,看不到服务器上的其他内容。于是他在阿里云买了一台ECS,自己动手配FTP。

第一步:放行安全组

ECS默认只开放22端口(SSH)。FTP需要控制端口21,还要一段被动模式使用的数据端口。安全组不放行,后面的配置都不会生效。

在ECS控制台找到“安全组”,添加入方向规则:

  • 端口21:协议TCP,授权对象填办公网出口IP,或者0.0.0.0/0
  • 端口30000-31000:协议TCP,供被动模式传输数据使用

对外开放0.0.0.0/0,意味着全网都能尝试登录。能限定办公网出口IP就尽量限定,防暴力破解的办法后面会讲。

第二步:安装vsftpd

vsftpd是轻量、稳定的FTP服务端,个人和中小团队够用。CentOS系或Alibaba Cloud Linux上执行:

sudo yum install -y vsftpd
sudo systemctl enable vsftpd
sudo systemctl start vsftpd

Ubuntu或Debian系统用sudo apt update && sudo apt install -y vsftpd。装完后执行systemctl status vsftpd,看到active才算服务正常启动。

第三步:建专用用户和目录

不建议用root或系统已有账号登录FTP。小王新建了一个只用于传文件的账号,并把素材目录单独放在一处:

sudo mkdir -p /data/ftp/shop
sudo useradd -d /data/ftp -s /sbin/nologin designer
sudo passwd designer
sudo chown -R designer:designer /data/ftp/shop

/sbin/nologin让这个用户无法通过SSH登录系统,它只能走FTP。目录属主设为designer,外包才有权限写入文件。

第四步:修改vsftpd配置

编辑/etc/vsftpd/vsftpd.conf,保留原有注释,只改下面这些项:

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
listen=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的ECS公网IP
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO

几个关键项的作用:

  • anonymous_enable=NO:关闭匿名登录。不关的话,任何人都能不用密码进来。
  • chroot_local_user=YES:把本地用户锁在自己的家目录里,看不到系统其他文件。
  • allow_writeable_chroot=YES:允许chroot根目录可写。新版vsftpd默认拒绝这种情况,不加会报500 OOPS错误。
  • pasv_address:必须填ECS的公网IP。留空的话,被动模式下客户端拿到的是内网地址,连接会失败。

接着把允许登录的账号写进白名单:

echo "designer" | sudo tee -a /etc/vsftpd/user_list

保存后重启:sudo systemctl restart vsftpd。

第五步:服务器和客户端测试

先在服务器上看端口监听:ss -tlnp | grep 21。能看到vsftpd在监听21端口,说明服务本身没有问题。

然后在办公电脑上打开FileZilla之类的客户端,填写:

  • 主机:ECS公网IP
  • 端口:21
  • 加密:先选“仅使用普通FTP”,等配好证书再升级
  • 用户名和密码:前面创建的designer账号

连上后,先传一张测试图片。小王第一次测试时,目录列表正常显示,上传却卡在“正在等待响应”,最后报425错误。排查发现他漏放了30000-31000这段被动端口。补上规则后,传输立刻恢复。遇到“能连上但传不了”的情况,先查被动端口。

常见报错和排查

530 Login incorrect

账号或密码错误,也可能是用户没有写进user_list。先核对用户名,再看白名单。

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

没有加allow_writeable_chroot=YES。加上后重启服务。

425 Can’t open data connection

多数是被动端口没放行,或者pasv_address没有填公网IP。

550 Permission denied

目录权限不对。检查目标目录的属主是不是designer,同时确认write_enable=YES已开启。

安全加固

FTP以明文传输账号密码和文件内容,放在公网上并不安全。素材不涉及敏感信息时,上面的配置够用。如果传的是客户数据或合同,建议改用SFTP,它走22端口,由SSH提供加密。也可以在vsftpd中开启FTPS,即设置ssl_enable=YES并配置证书。

另外几件事也值得做:

  • 用fail2ban监控vsftpd日志,对反复失败的IP自动封禁。
  • 定期用阿里云快照备份数据盘,误删或勒索时能恢复。
  • 安全组只放行办公网出口IP,不要长期对全网开放。
  • 密码用足够长的随机字符串,并定期更换。

小结

按顺序检查:安全组放行21和被动端口区间,vsftpd里chroot和pasv_address设对,目录属主与用户白名单对得上。大部分问题照这个顺序走一遍就能定位。小王后来把这套流程写成内部文档,设计外包交付素材的时间从两天缩短到几个小时,版本混乱的问题也基本解决了。

赞 (0)
阿里云PAI训练到上线,这几步要先做
上一篇 2026年10月31日 下午9:23
阿里云服务器续费怎么选,哪种方式不容易多花钱
下一篇 2026年10月31日 下午9:24

相关推荐

  • 阿里云首页各板块怎么用?从入口到常用功能

    第一次打开阿里云官网,很多人会被满屏的产品名和活动图弄得不知所措。轻量应用服务器、对象存储、云数据库、通义千问,名字都听过,却不清楚从哪里点起。这篇文章顺着页面从上到下,讲清楚各区域的用途,并用两个示意案例说明实际怎么用。 顶部导航:先找到分类 页面顶部是主导航,一般有产品、解决方案、定价、文档、云市场等入口。只想看价格的话,直接点“定价”最省事,不必一个个…

    2026年10月31日
  • 阿里云专有云私有化落地,企业要先理清哪些事

    金融、政务、能源和大型制造企业上云,难点通常不在算力,而在三件事:数据放在哪里,由谁管,出了问题找谁负责。公有云弹性好、上手快,但有些核心数据受监管约束,不适合全部放进公共资源池。阿里云专有云就是为这类情况准备的方案。云平台部署在企业自己的机房或指定数据中心,资源池化和自动化运维的能力保留下来,数据和运行环境仍在企业可控的范围内。 专有云是什么,和公有云差在…

    2026年10月31日
  • 阿里云软件下载去哪里找,怎么避开山寨渠道?

    刚接触阿里云的开发者,常在第一步就卡住:软件到底从哪里下。官网栏目多,文档分散在不同页面,搜索结果里又常出现第三方站点,有的打包了旧版本,有的夹着广告。花十分钟把渠道理清楚,比在错误的安装包上排查半天省事。 阿里云软件下载的三类入口 阿里云的软件大致分三类,获取方式各不相同,入口也分开放。先判断自己要的是哪一类,再去对应位置找,比在站内乱翻快得多。 开发者工…

    2026年10月31日
  • 阿里云香港主机怎么选?小站和跨境用起来差在哪

    网站放在哪里,通常是上线前最先要定的事。放在大陆服务器,需要先完成备案,审核周期可能要几周。放在海外,访问速度和管理方式又会有另一套问题。阿里云香港主机介于两者之间,不用备案,国内访问也比较稳定,所以很多小团队会先选它。 香港主机值得选在哪里 香港机房离大陆近,国内用户访问时的网络延迟一般比美西、东南亚节点低。如果你的官网、活动页或小程序后端主要面向大陆用户…

    2026年10月31日
  • 阿里云的OSS存储类型怎么选,冷数据放错会多花钱

    图片、视频、日志、备份文件攒多了,放在应用服务器磁盘上,迟早会遇到扩容慢、备份慢、账单涨得没道理的问题。阿里云的OSS就是为这类场景准备的对象存储。容量基本不用提前规划,通过 HTTP 接口读写,和应用对接也不麻烦。 阿里云OSS是什么,主要用来放什么 OSS 的基本结构是存储桶(Bucket)和对象(Object)。一个对象由文件内容、元信息和唯一的 Ke…

    2026年10月31日
返回顶部