阿里云服务器创建FTP服务需要完成系统环境准备、安装FTP服务软件、配置防火墙与安全组、设置用户权限以及测试连接等步骤,以下是详细操作流程:

系统环境准备
-
购买并登录ECS实例
登录阿里云控制台,在ECS管理页面创建Linux实例(推荐CentOS 7.x或Ubuntu 20.04系统),创建完成后通过SSH工具(如PuTTY、Xshell)使用root账号或sudo权限用户登录服务器。 -
更新系统软件包
执行以下命令更新系统:- CentOS系统:
yum update -y
- Ubuntu系统:
apt update && apt upgrade -y
- CentOS系统:
安装FTP服务软件
根据需求选择FTP服务类型,常用有vsftpd(非常安全的FTP守护进程)和ProFTPD,此处以vsftpd为例:
-
安装vsftpd
(图片来源网络,侵删)# CentOS系统 yum install vsftpd -y # Ubuntu系统 apt install vsftpd -y
-
启动并设置开机自启
systemctl start vsftpd systemctl enable vsftpd
-
检查服务状态
执行systemctl status vsftpd
确认服务处于active (running)
状态。
配置vsftpd
-
备份默认配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
-
编辑核心配置文件
使用vim /etc/vsftpd/vsftpd.conf
修改以下关键参数:anonymous_enable=NO # 禁止匿名用户访问 local_enable=YES # 允许本地用户登录 write_enable=YES # 允许文件上传 chroot_local_user=YES # 限制用户仅可访问主目录 allow_writeable_chroot=YES # 允许被限制在主目录的用户写文件 pasv_min_port=30000 # 被动模式最小端口 pasv_max_port=31000 # 被动模式最大端口 userlist_enable=YES # 启用用户列表控制 userlist_file=/etc/vsftpd/user_list # 用户列表文件路径
-
创建FTP用户目录
以创建用户ftpuser
为例:useradd -d /home/ftpuser -s /sbin/nologin ftpuser # 创建不可登录系统的用户 echo "ftpuser密码" | passwd ftpuser --stdin # 设置用户密码
-
将用户加入允许列表
编辑/etc/vsftpd/user_list
文件,添加ftpuser
到最后一行。
配置防火墙与安全组
-
开放FTP相关端口
- 防火墙配置(以CentOS 7为例):
firewall-cmd --permanent --add-service=ftp firewall-cmd --permanent --add-port=30000-31000/tcp firewall-cmd --reload
- Ubuntu系统使用
ufw
:ufw allow 21/tcp ufw allow 30000:31000/tcp
- 防火墙配置(以CentOS 7为例):
-
阿里云安全组配置
登录ECS控制台,进入实例的“安全组”配置页面,添加以下规则:
| 方向 | 协议/端口 | 授权对象 | 描述 | |--------|--------------|--------------|------------| | 入方向 | TCP 21 | 0.0.0.0/0 | FTP控制端口| | 入方向 | TCP 30000-31000 | 0.0.0.0/0 | FTP数据端口|
优化安全设置
-
限制用户登录
编辑/etc/vsftpd/ftpusers
文件,将需要禁止的用户(如root)加入列表。 -
启用SSL加密(可选)
生成SSL证书文件并修改配置:openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
在
vsftpd.conf
中添加:ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES
测试FTP连接
-
使用命令行测试
本地执行ftp <服务器公网IP>
,输入用户名和密码后,通过put test.txt
上传文件测试。 -
使用图形化工具测试
推荐FileZilla,输入服务器公网IP、用户名、密码及端口(21),连接成功后即可传输文件。
常见问题处理
- 权限问题:确保用户目录权限为
755
(chmod 755 /home/ftpuser
),文件权限为644
。 - 连接超时:检查安全组是否开放被动端口范围,确认防火墙未拦截。
- 无法上传:检查
write_enable=YES
是否启用,chroot
目录是否有写权限。
相关问答FAQs
Q1: 如何修改FTP服务的默认端口?
A: 编辑/etc/vsftpd/vsftpd.conf
文件,添加listen_port=2121
(自定义端口),同时修改阿里云安全组规则,开放新端口(如2121)并关闭默认21端口端口,重启服务后生效:systemctl restart vsftpd
。
Q2: 如何限制FTP用户仅能访问指定目录?
A: 创建用户时通过-d
参数指定主目录(如useradd -d /data/ftpuser -s /sbin/nologin ftpuser
),并在vsftpd.conf
中设置chroot_local_user=YES
,若需更精细控制,可使用user_sub_token
和local_root
参数实现目录映射,
user_sub_token=$USER local_root=/data/$USER