准备阶段
要想实现FTP功能,肯定要先有服务器,接下来我们就先创建一台ECS
创建阿里云ECS
首先进入场景,然后选择开始体验,进去之后点击免费开通
大概等1分钟左右就会自动开通,到这一步我们就创建完成了。
连接阿里云ECS
创建好之后,我们需要从本地连接到服务器才能进行操作。首先我们通过win+R打开window终端,然后输入
ssh -V
- 1
来检测下电脑上是否有ssh工具,如果显示下边的提示说明安装成功,
如果没有的话,可以去这里下载openssh
然后在终端输入连接命令 ssh [username]@[ipaddress] 例如
ssh root@47.100.30.172
- 1
username(用户名) 和 ipaddress(IP地址)在这里
然后输入之后,会让你选择yes和no,这里我们输入yes,然后回车,会让你输入密码,这时我们把上边截图里的密码输入上去,然后回车,出现这个信息就说明连接成功了
配置阶段
vsftpd(very secure FTP daemon)是一款在Linux发行版中最受推崇的FTP服务器。vsftpd支持匿名访问和本地用户模式两种访问方式。匿名访问方式任何用户都可以访问搭建的FTP服务;本地用户模式只支持添加的本地用户访问搭建的FTP服务。
连接好之后我们开始在服务器配置vsftpd
安装vsftpd
运行以下命令安装
yum install -y vsftpd
- 1
输入之后回车,然后等待服务器自动安装,出现这个画面代表安装成功了
然后输入下边这个命令配置开机启动
systemctl enable vsftpd.service
- 1
启动FTP服务
systemctl start vsftpd.service //这步执行完之后没有提示
- 1
运行以下命令查看FTP服务监听的端口
netstat -antup | grep ftp
- 1
这里我们可以看到是21端口,记住这些信息,之后我们会用到
配置vsftpd
安装好之后,我们需要对vsftpd配置一下,这里分两种模式,一种是匿名用户模式,一种是本地用户模式,两种只能选择一种配置
这里我们选择比较难的本地用户模式给大家讲一下
1、为FTP服务创建一个Linux用户
adduser ftptest
- 1
然后设置下密码
passwd ftptest
- 1
出现这个画面就是创建好了
2、 创建一个供FTP服务使用的文件目录
mkdir /var/ftp/test
- 1
3、 更改/var/ftp/test目录的拥有者为ftptest
chown -R ftptest:ftptest /var/ftp/test
- 1
4、修改vsftpd.conf配置文件
直接在终端一条条运行下边的命令
配置FTP为主动模式请执行如下命令:
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 #设置本地用户登录后所在的目录
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
配置FTP为被动模式请执行如下命令:
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 #设置被动模式下,建立数据传输可使用的端口范围的最大值
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
5、在/etc/vsftpd目录下创建chroot_list文件,并在文件中写入例外用户名单
#使用vim命令编辑chroot_list文件,添加例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。
vim /etc/vsftpd/chroot_list
- 1
- 2
6、重启FTP服务
systemctl restart vsftpd.service
- 1
测试阶段
一切准备就绪,接下来我们测试一下
1、打开浏览器,在地址栏中输入ftp://<FTP服务器公网IP地址>:FTP端口,FTP服务器公网IP地址为ECS服务器的弹性IP地址。例如:ftp://106.15.9.91:21
2、在弹出的框中输入用户名和密码,用户名在上边添加用户那里有,如果用的文章中的命令,那用户名就是ftptest,密码是自己设置的
3、登陆成功后就会显示下边的页面
因为此目录没有文件,所以什么也没显示
——————————————————————————————————————————————————
到此处,这次的项目就完成了,后续可以自己在该目录下载一些文件来尝试下对文件的操作。
同时以后自己有服务器了也可以搭建一个这样的功能供自己保存或下载文件。