本文为第一期「实战派」有奖征文优秀作品。
场景介绍
本方案实现在Alinux 3(Alibaba Cloud Linux 3)系统上搭建FTP站点,实现客户端指定账号访问,支持本地文件上传、远端文件下载等基本功能。
目标读者
了解阿里云基础ECS产品,有一定的云计算实践经验,熟悉Linux操作系统及FTP软件的个人开发者。
相关概念
Alinux(Alibaba Cloud Linux): 是阿里云基于龙蜥社区(OpenAnolis)的龙蜥操作系统(Anolis OS)打造的操作系统发行版,在兼容RHEL/CentOS生态的同时也为云上应用程序环境提供 Linux 社区的增强功能,并针对阿里云基础设施做了深度的优化,为阿里云用户提供优质的云上操作系统体验。
FTP(FileTransferProtocol):是文件传输协议的英文简称,用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。简单地说,支持FTP协议的服务器就是FTP服务器。(via百度百科)
前提条件/环境准备
1. 已开通阿里云ECS服务
2. 创建如下配置的云服务器
3. 提前获取公网IP
公网IP:101.133.129.237
4.提前准备好root用户密码
5.提前准备好ftp服务测试客户端,本案例使用mac系统自带软件finder
操作步骤
步骤一:安装ftp软件(本案例使用vsftp软件)
1. 使用终端远程登录到已创建好的Alinux 实例:
2. 执行命令yum install -y vsftpd安装软件:
3. 执行命令ll /etc/vsftpd/查看vsftp安装目录:
ftpusers:ftp登录用户黑名单
user_list:ftp登录用户白名单
vsftpd.conf:vsftp配置文件
vsftpd_conf_migrate.sh:配置文件迁移脚本
4.执行systemctl start vsftpd.service启动vsftp。
5.执行systemctl status vsftpd查看vsftp启动状态:
6.执行systemctl enable vsftpd.service设置FTP服务开机自启动。
步骤二:配置安全组,放通入方向21端口
1. 在ECS服务控制台实例详情中点击安全组配置:
2. 点击实例绑定的安全组详情:
3. 点击手动添加,放通入方向21端口
步骤三:配置FTP服务主动模式本地用户访问
1. 执行命令adduser ftptest为FTP服务创建一个Linux用户;
2. 执行命令passwd ftptest为用户设置密码;
3. 执行命令mkdir /var/ftp/test创建一个供FTP服务使用的文件目录:
4. 执行命令chown -R ftptest:ftptest /var/ftp/test 更改/var/ftp/test目录的拥有者为ftptest;
5. 执行如下命令,配置FTP为主动模式:
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf
6. 执行命令touch /etc/vsftpd/chroot_list 生成例外用户名单,默认为空;
7. 执行命令systemctl restart vsftpd.service 重启ftp服务;
方案验证
1.使用chrome浏览器测试登录,自动跳转到mac系统finder,输入ftp用户名ftptest和密码:
2.ftp服务器端生成测试文件testfile:
3.在客户端能够查看到ftp端生成的文件:
常见问题
1.ftp服务有多种模式,本实践案例使用的是主动模式本地用户访问,其他模式请参考:https://baike.baidu.com/item/FTP/13839?fr=aladdin
2.mac系统电脑自带的finder访问ftp时只能下载文件,无法上传文件(系统做了只读保护),如需进一步测试ftp功能,建议下载FileZilla。