一、概述
本文以第三方ftp软件为例,描述如何在windows服务器上搭建ftp服务端。
二、什么是ftp?
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
三、搭建FTP服务器步骤
市面上有很多ftp的服务端软件,本文以PHPstudy旗下的ftpserv为例讲解如何搭建ftp服务端.
第一步,先将软件安装到服务器
![e7f3144a6051db09cb40c49e44896c13.png](https://i-blog.csdnimg.cn/blog_migrate/dabda89080fec3a4daf7b7504bd50c3e.jpeg)
第二步,启动ftp Server,启动之后打开ftpserver管理器
![eeddbf8fb47d6b6e1243c016e2008cef.png](https://i-blog.csdnimg.cn/blog_migrate/18c4ac7f909528698f208e99dfabe24c.jpeg)
第三步,新建一个用户,并向这个用户设置一个专属文件夹,并视情况赋予其对应的权限
![d35fa304edbf9d15a36be33e3df2991f.png](https://i-blog.csdnimg.cn/blog_migrate/9527cae213f720a40b7a593ec63c29e7.jpeg)
![35b3e0141986f04c3ce5ec4d1d8a2c58.png](https://i-blog.csdnimg.cn/blog_migrate/8d0317a2f6320a91c133963f06f6247d.jpeg)
![ab44ba71be49a97cead856f1c63d975f.png](https://i-blog.csdnimg.cn/blog_migrate/08d50f1a1d2161dea3582b312c9e7dc9.jpeg)
第四步,设置服务端的被动模式,并设置端口范围
![b1c2f430edaaa1737e261ac504d72fd1.png](https://i-blog.csdnimg.cn/blog_migrate/0c476ff6965cd4ae89c838464339fda2.jpeg)
在这里说一下ftp的主动模式和被动模式:
(1) PORT(主动模式)
PORT中文称为主动模式,工作的原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据,原理如下图:
![9c24ee3ca6e6c2b21c6c003ec7d45d61.png](https://i-blog.csdnimg.cn/blog_migrate/b8f099df7a7f4255b6951bb1271f7142.jpeg)
(2) PASV(被动模式)
PASV是Passive的缩写,中文成为被动模式,工作原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输,原理如下图:
![41821250d6541e974fc4fb77f05d3a82.png](https://i-blog.csdnimg.cn/blog_migrate/fea82ed62d7a777fe9a961779c6eaa3a.jpeg)
两种模式的比较:
从上面的运行原来看到,主动模式和被动模式的不同简单概述为: 主动模式传送数据时是“服务器”连接到“客户端”的端口;被动模式传送数据是“客户端”连接到“服务器”的端口。
主动模式需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难。
被动模式只需要服务器端开放端口给客户端连接就行了,所以一般我们会使用被动模式来连接.