下面我将为您提供一个从零开始、非常详细的步骤指南,包含准备工作、FTP服务器安装配置、云平台安全组设置以及最终使用FTP客户端连接的完整流程。
1、准备工作:获取云主机的IP地址和登录凭证。
2、在云主机上安装和配置FTP服务器软件(以最常用的vsftpd
为例)。
3、配置云服务平台的安全组/防火墙,放行FTP端口。
4、在本地电脑上使用FTP客户端(如FileZilla)进行连接。
在开始之前,请确保您手上有以下信息:
云主机的公网IP地址在您的云服务商(如阿里云、腾讯云、AWS等)的管理控制台中可以找到。
云主机的系统用户名和密码通常是root
用户和其密码(对于Linux系统),如果您使用SSH密钥对登录,也需要知道密钥文件的路径。
一个打算用于FTP登录的系统用户为了安全,不建议直接使用root
用户,我们可以创建一个专门用于FTP的普通用户。
第二步:在Linux云主机上安装和配置VSFTPD
注意:以下操作均需在您的云主机上通过SSH终端进行,您需要使用SSH工具(如PuTTY、Terminal、Xshell等)先登录到您的云主机。
以CentOS/RHEL/Alibaba Cloud Linux系统为例(Debian/Ubuntu系统命令类似,将yum
换为apt-get
即可):
更新软件包列表 sudo yum update 安装vsftpd sudo yum install vsftpd
启动vsftpd服务 sudo systemctl start vsftpd 设置开机自动启动 sudo systemctl enable vsftpd
创建一个系统用户,例如叫 ftpuser,并指定其家目录(这里以 /home/ftpuser 为例) sudo useradd -d /home/ftpuser -m ftpuser 为该用户设置密码(连接FTP时会用到) sudo passwd ftpuser 根据提示输入两次密码
编辑VSFTPD的主配置文件:
sudo vi /etc/vsftpd/vsftpd.conf
找到并修改以下配置行(如果行首有#
注释,请删除#
以取消注释):
禁止匿名登录(更安全) anonymous_enable=NO 允许本地系统用户登录 local_enable=YES 允许用户有写权限(上传、删除、重命名等) write_enable=YES 设置本地用户创建文件或目录的默认掩码(权限) local_umask=022 非常重要!启用被动模式(PASV) pasv_enable=YES 设置云主机的公网IP地址,用于被动模式连接 pasv_address=你的云主机公网IP地址 设置被动模式使用的端口范围(方便后续在安全组中开放) pasv_min_port=30000 pasv_max_port=31000 (可选)将所有本地用户限制在其家目录中(chroot),增强安全性 chroot_local_user=YES allow_writeable_chroot=YES (可选)在配置文件的最后,可以添加一个用户列表,明确指定哪些用户不能chroot 先启用chroot列表 chroot_list_enable=YES 然后指定列表文件路径 chroot_list_file=/etc/vsftpd/chroot_list 如果需要,创建这个文件并把不想被限制的用户名加进去
保存并退出编辑器(在vi中按Esc
,然后输入:wq
回车)。
sudo systemctl restart vsftpd
这是非常关键的一步,如果配置错误将无法连接,您需要登录到云服务商的管理控制台(如阿里云ECS控制台、腾讯云CVM控制台等)。
1、 找到您的云主机实例。
2、 找到“安全组” 配置选项。
3、 点击配置规则,添加以下两条入方向(Inbound)规则:
授权策略 | 协议类型 | 端口范围 | 授权对象 | 说明 | |
允许 | TCP | 20-21 | 0.0.0.0/0 | FTP控制通道端口 | |
允许 | TCP | 30000-31000 | 0.0.0.0/0 | FTP被动模式数据端口 |
注意:30000-31000
需要与第二步中配置文件里pasv_min_port
和pasv_max_port
设置的范围完全一致,授权对象0.0.0.0/0
表示允许所有IP访问,出于安全考虑,您可以后期改为只允许您自己的公网IP。
4、保存安全组规则。
第四步:使用FTP客户端连接(以FileZilla为例)
1、下载并安装FileZilla Client:从 [https://filezilla-project.org](https://filezilla-project.org) 下载。
2、打开FileZilla,在顶部的快速连接栏中填写信息:
主机(H)你的云主机公网IP地址
(或域名)
用户名(U)ftpuser
(第二步创建的用户名)
密码(W)你为ftpuser设置的密码
端口(P)21
(默认端口,如果没改就填21)
3、 点击“快速连接(Q)”。
如果一切配置正确,右侧的“远程站点”窗口将会显示/home/ftpuser
目录下的内容(初始为空),您现在就可以通过拖拽文件在本地和云主机之间传输文件了。
常见问题与排查 (Troubleshooting)
连接被拒绝/无法连接
* 99%的原因在于安全组/防火墙没有正确配置,请仔细检查是否放行了20, 21和30000-31000端口。
检查云主机系统自身的防火墙(如firewalld
或iptables
)是否阻止了端口,对于初学者,可以先暂时关闭系统防火墙进行测试sudo systemctl stop firewalld
。
登录失败,密码错误
* 确认用户名和密码是否正确,注意大小写,重新执行passwd ftpuser
命令修改密码。
可以连接但无法列出目录/无法传输文件
* 通常是被动模式(PASV) 配置问题,确保在vsftpd.conf
中正确设置了pasv_address
和端口范围,并且安全组也放行了该端口范围。
* 检查FTP用户对其家目录是否有读和执行权限(至少要有755
权限)。
推荐使用SFTP代替FTP
* FTP协议本身不安全,密码和数据以明文传输,更现代、更安全的方法是使用SFTP。
* SFTP基于SSH协议,只要您的云主机开启了SSH服务(默认22端口),就天然支持SFTP。
* 在FileZilla中,只需将“协议(P)”选为“SFTP - SSH File Transfer Protocol”,端口改为22
,使用你的SSH登录用户和密码(或密钥文件) 即可连接,无需额外安装和配置FTP服务器。这是更推荐的做法!
希望这份详细的指南能帮助您成功连接!
文章摘自:https://idc.huochengrm.cn/zj/15658.html
评论