Class One. 基于ECS搭建FTP服务
序言
1. FTP服务简介
FTP(File Transfer Protocol)文件传输协议 是TCP/IP协议簇中的协议之一。
2. FTP服务功能
- 服务端提供文件存储功能
- 客户端可以使用FTP客户端软件通过FTP协议访问位于FTP服务器上的资源
3. FTP服务端使用端口
-
20
: 主动模式下传输数据的端口若为被动模式,具体端口是由服务端和客户端协商决定的。
-
21
: 传输控制信息
4. FTP服务端软件
- 较为常用的是
vsftpd (Very Secure FTP Daemon)
,可以运行在Unix/Linux等系统上,且开源免费。 - 本篇使用vsftpd作为服务搭建使用软件
一.阿里云控制台放行安全组
1. 进入对应的安全组
2. 选择所需方向添加规则
ECS训练营创建的资源已经配置了全部放行,这步可以省略,仅供参考
- 公网入方向: 从公网访问ECS的流量
- 公网出方向: 从ECS访问公网的流量
- 入方向: 访问ECS的流量(范围更广)
- 出方向: ECS访问其他的流量(范围更广)
二.FTP服务端搭建
1. 安装vsftpd
yum install -y vsftpd
2. 启动vsftpd服务
systemctl start vsftpd
3. 开启vsftpd开机自启动
systemctl enable vsftpd
4. 查看vsftpd服务状态
Loaded行后的enbaled表示已启动开机自启
Active行后的状态为 active(running)表示的是正在运行中
Main PID后的数字表示进程号
systemctl status vsftpd
#### 执行命令后的结果如下
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2021-01-21 16:29:04 CST; 55s ago
Main PID: 1608 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─1608 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Jan 21 16:29:04 *********************** systemd[1]: Starting Vsftpd ftp daemon...
Jan 21 16:29:04 *********************** systemd[1]: Started Vsftpd ftp daemon.
三. 配置FTP服务端-匿名模式
vsftpd服务端配置文件位于
/etc/vsftpd/vsftpd.conf
1. 修改配置文件,启动匿名模式
vim /etc/vsftpd/vsftpd.conf
#修改anon_upload_enable为YES,并取消注释
anon_upload_enable=YES
2. 添加目录写入权限
chmod o+w /var/ftp/pub
3. 重启vsftp服务
systemctl restart vsftpd
四. 配置FTP服务端-用户模式
1. 创建linux用户并设置密码
useradd ftpuser
echo 123456 | passwd --stdin ftpuser
2. 创建FTP服务使用的目录
mkdir /var/ftp/user
chown -R ftpuser:ftpuser /var/ftp/user
3. 修改vsftpd配置文件
以下仅展示主动模式
- vsftpd支持ipv4或ipv6,但不支持同时监听。如果listen和listen_ipv6都设置为了YES,则会报错
500 OOPS: run two copies of vsftpd for IPv4 and IPv6
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf
#关闭匿名模式
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf
#开启ipv4监听
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf
#关闭ipv6监听
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf
#开启用户chroot功能
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
#允许chroot用户写入权限
echo "local_root=/var/ftp/user" >> /etc/vsftpd/vsftpd.conf
#用户登录后的目录
4. 重启vsftpd服务
systemctl restart vsftpd.service
五.验证FTP服务
1. 本地浏览器访问ftp://IP地址
2. 显示登录,表示成功
阿里云高校计划
阿里云高校计划,陪伴两千多所高校在校生云上实践、云上成长。
在这里你可以领用免费的cpu资源,还可以参加免费训练营,实践提高:
https://developer.aliyun.com/adc/student/