前段时间无意间看到了阿里云7天实践ECS训练营的活动,因为我本身自己也已经使用了两年的阿里云学生机,但是全凭自己的喜好来的,没有经过一个系统的训练,这次看到这个活动,便马上参加了,所以特在此记录每天的学习经历。
1.前言
文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标
准协议,它工作在 OSI 模型的第七层,TCP 模型的第四层,即应用层,使用TCP传输而不是UDP,客户在和服务器建立连接前要经过一个“三次握手”的过程,保证客户与服务器之间的连接是可靠的,而且是面向连接,为数据传输提供可靠保证。
2.部署环境准备
(1).准备部署服务器
可以在阿里云的ECS 7天训练营提供的“基于ECS搭建ftp"的教程页面,选择免费体验即可获得一小时的体验时间,或者自行购买阿里云的ECS服务器,可自行选择,我这里采阿里云提供的实验环境。
(2).根据教程界面提示创建资源,等待创建成功后,打开“putty”远程连接软件,登录临时分配的体验服务器
3.搭建FTP服务
(1).安装vsftpd
yum -y install vsftpd
(2).运行一下命令设置ftp服务开机自启
systemctl enable vsftpd.service
(3).启动ftp服务
systemctl start vsftpd.service
(4).运行以下命令查看ftp服务监听端口
netstat -antup | grep ftp
4.配置FTP服务
使用本地用户模式配置FTP服务
(1).为ftp服务创建一个Linux用户
adduser chen
(2).为该用户设置密码
passwd chen
(3).创建一个供ftp使用的文件夹
mkdir /var/ftp/chen
(4).更改该目录的拥有者为chen
chown -R chen:chen /var/ftp/chen
(5).修改vsftpd.conf配置文件
配置为被动模式
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #监听IPv4 sockets
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #关闭监听IPv6 sockets
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 #设置本地用户登录后所在的目录
echo "pasv_enable=YES" >> /etc/vsftpd/vsftpd.conf #开启被动模式
echo "pasv_address=<FTP服务器公网IP地址>" >> /etc/vsftpd/vsftpd.conf #本教程中为ECS服务器弹性IP
echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最小值
echo "pasv_max_port=21" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最大值
(6).在/etc/vsftpd目录下创建chroot_list文件,并在文件中写入例外用户名单
vim /etc/vsftpd/chroot_list
(7).重启FTP服务
systemctl restart vsftpd.service
5.测试FTP服务是否搭建成功
浏览器访问ftp://106.14.23.189/,出现提示登录界面,输入之前建立的用户名和密码
回车登录,如果成功则返回一下界面