FTP工作原理

FTP服务的具体工作过程如下。

①当FTP 客户端发出请求时,系统将 动态分配一个端口(如 x )。

②若FTP 服务器在端口 21 侦听到该请 求,则在 FTP 客户端的端口 x 和 FTP 服务器的端口 21 之间建立起一个 FTP 会话连接。

③当需要传输数据时, FTP 客户端再 动态打开一个连接到 FTP 服务器的 端口 20 的第 2 个端口(如 x+1 ),

这样就可在这两个端口之间进行数据的传输。当数据传输完毕后,这 两个端口会自动关闭。

④ 当FTP 客户端断开与 FTP 服务器的 连接时,客户端上动态分配的端口 将自动释放掉。

Pure-Ftpd 服务配置_第1张图片

主动模式和被动模式

在主动模式 中, FTP 客户端随机开启一个大于1024 的端口 X 向服务器的 21 号端口发起控制连接请求,然后开放 X+1 号端口进行监听; FTP 服务器接受请求并建立控制连接会话。如果客户端在控制会话中发送数据连接请求,那么服务器在接收到命令后,会用其本地的 FTP 数据端口(通常是 20 )来连接客户端指定的端口 X+1 进行数据传输。

被动模式的控制连接和数据连接都是由 FTP 客户端发起的。首先FTP客户端随机开启一个大于 102的端口 X 向服务器的 21 端口发起连接,同时会开启 X+1 端口。然后向服务器发送 PASV 命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于 1024的端口 Y 进行监听,然后用 PORT Y 命令通知客户端,自己的数据端口是 Y客户端收到命令后,会通过 X+1 号端口连接服务器的端口 Y ,然后在两个端口之间进行数据传输。这样就能使防火墙知道用于数据连接的端口号,而使数据连接得以建立。

Pure-Ftpd 服务配置_第2张图片

Pure-ftpd服务器的工作原理

Pure-Ftpd 服务配置_第3张图片

总体步骤:

1、搭建LNMP环境

2、源码安装Pure-ftpd

3、导入php页面管理Pure-ftpd的数据库文件

4、安装php页面管理Pure-ftpd环境

5、关联mysql与pureftpd(主要是修改配置文件)

6、在pureftpd服务器中创建虚拟帐号

搭建lnmp环境

由于pure-ftp的需要使用web的方式来进行管理,管理软件是基于php的,所以需要搭建php环境。搭建LNMP可以参考前面的LNMP博客。

Pure-Ftpd 服务配置_第4张图片

安装pure-ftp

purre-ftp安装时,要连接数据库,所以要先安装mysql-devel。使用rpm包安装mysql-devel。

Pure-Ftpd 服务配置_第5张图片

Pure-Ftpd 服务配置_第6张图片

Pure-Ftpd 服务配置_第7张图片

编译:make,安装:make install

生成配置脚本:

cp configuration-file/pure-config.pl /usr/local/pure/sbin/

修改配置脚本权限

chmod a+x /usr/local/pureftpd/sbin/pure-config.pl

建立FTP主目录

mkdir /ftproot

181422365.png

生成pure-ftpd的管理脚本。

pure-ftpd源码给提供了管理脚本,只不过要根据实际的情况,做相应的修改。

进入pure-ftpd的解压缩的目录中,拷贝contrib子目录中的redhat.init文件。

Pure-Ftpd 服务配置_第8张图片

Pure-Ftpd 服务配置_第9张图片

执行命令:chkconfig--add pure-ftpd 添加pure-ftpd服务到系统中,使它能够随系统而自动启动

产生pure-ftpd的启动配置文件

Pure-Ftpd 服务配置_第10张图片

然后启动pure-ftpd服务:service pure-ftpd start

Pure-Ftpd 服务配置_第11张图片

配置匿名用户登录环境

使用以下命令为其建立目录 / var /ftp 。

mkdir / var /ftp

如果希望 FTP 匿名用户能够上传文件到 FTP 服务器,还要保证 ftp 系统账户对主目录有写入权限。可以通过以下命令设置 / var /ftp 主目录的所有者和所有组为 ftp ,使得 ftp 系统账户对主目录有写入权限。

chown ftp:ftp / var /ftp

创建pure-ftpd用户数据库

Pure-Ftpd 服务配置_第12张图片

在导入数据库之前需要对数据库文件做一些修改。

Pure-Ftpd 服务配置_第13张图片

Pure-Ftpd 服务配置_第14张图片

Pure-Ftpd 服务配置_第15张图片

Pure-Ftpd 服务配置_第16张图片

Pure-Ftpd 服务配置_第17张图片

Pure-Ftpd 服务配置_第18张图片

实现后台管理ftp用户

Pure-Ftpd 服务配置_第19张图片

Pure-Ftpd 服务配置_第20张图片

Pure-Ftpd 服务配置_第21张图片

Pure-Ftpd 服务配置_第22张图片

关联mysql与pureftpd

Pure-Ftpd 服务配置_第23张图片

Pure-Ftpd 服务配置_第24张图片

Pure-Ftpd 服务配置_第25张图片

Pure-Ftpd 服务配置_第26张图片

Pure-Ftpd 服务配置_第27张图片

在pure-ftpd服务器上添加无登录权限的用户。

Pure-Ftpd 服务配置_第28张图片

Pure-Ftpd 服务配置_第29张图片

Pure-Ftpd 服务配置_第30张图片

Pure-Ftpd 服务配置_第31张图片

Pure-Ftpd 服务配置_第32张图片

Pure-Ftpd 服务配置_第33张图片

Pure-Ftpd 服务配置_第34张图片

说明:以上软件包和数据库文件下载地址--》http://yunpan.cn/QGepu9PeTYpvm