Ftp:文件传输协议。NAS(网络附加存储)使用的协议之一。其它还有smb,nfs,webdav协议。。。。。

ftp用于各地分散的主机使用网际网络传输文件,达到资源共享和信息传递的目的。ftp采用c/s架构(Client/Server:即客户端/服务端)。一般是在一台服务器上架设ftp server,如果量小,你在个人电脑上也可以架设ftp server,让别人的电脑来访问你的ftp server.

 ftp原理:

控制连接:

    ​ftp是最古老的互联网应用协议之一。ftp服务端开放一个21端口,等待访客来访。姑且认为是办事大厅的21号柜台吧。ftp客户端以一个随机端口(比如随机端口是1028) 向ftp 服务端发送建立连接的请求。ftp服务端验证ftp客户端的合法性,允许建立。此次建立称之为控制连接。

ftp服务的两种工作模式:

1.ftp服务器的主动模式(ftp默认工作方式)

服务器的20端口主动从客户端发起连接

1.用户端通过ftp账号和密码登录服务器端的21号端口(服务器开启21端口处于监听模式,等待客户端访问)

服务端接收到客户端的访问请求,就验证ftp客户端的账户和密码,如果不合格,服务端则拒绝;

2.如果账户和密码合格,则ftp服务端允许ftp客户端访问。此时ftp客户端会随机开启一个1024以上的端口,并附带传输port命令给服务端,通过port命令 告诉并要求ftp服务端打开一个端口,然后向ftp客户端传递数据。

3.ftp服务端收到ftp客户端的port命令之后,便会在ftp服务端开启20端口。然后ftp服务端就可以向ftp客户端的随机端口发送数据

1679386406102.jpg

 

ftp主动模式的缺陷:ftp客户端的端口不是固定的,每一个ftp客户端都不在ftp服务端管理人员的掌控之中,如果ftp客户端有防火墙拦截,ftp服务端就无法访问ftp客户端

2.ftp服务器的被动模式:ftp客户端主动访问ftp服务端的某个随机端口

1.用户端通过ftp账号和密码登录服务器端的21号端口(服务器开启21端口处于监听模式,等待客户端访问)

服务端接收到客户端的访问请求,就验证ftp客户端的账户和密码,如果不合格,服务端

2.如果账户和密码合格,则ftp服务端允许ftp客户端访问。此时ftp客户端会传输pasv命令给服务端,通过pasv命令 告诉并要求ftp服务端打开一个随机端口,然后ftp服务端将自己随机打开的端口号告知给ftp客户端。此时ftp客户端也会产生一个随机端口向ftp服务端的随机端口传输数据

1679386451499.jpg

 

ftp被动模式:是一种更加可靠的模式,虽然ftp服务端的端口号是随机的,毕竟ftp服务端在管理人员的控制范围之内。

 

Windows FTP服务端软件:

    ​IIS,ServU(商业版:付费软件),FileZilla(开源中的免费产品)

Windows Ftp客户端软件:

    ​ftp,FlashFXP,ServU客户端,FileZilla客户端

 

本文采用开源且免费的FileZilla,支持跨平台。你可以使用windows 或windows server 操作系统安装。

1.下载FileZilla Server服务端软件:

https://download.filezilla.cn/server/windows/FileZilla_Server-cn-0_9_60_2.exe

 

ftp1.png

 

2.双击打开,进入Filezilla Server的安装向导,点击 我接受

ftp2.png

3.点击下一步

ftp3.png

4.点击下一步

ftp4.png

5.保持默认选项,继续点击下一步:next

ftp5.png

6.保持默认选项,点击安装

ftp6.png

7.等待完成安装

ftp7.png

8.点击关闭

ftp8.png

9.设置ftp server管理密码。可以为空(但不建议)

ftp9.png

10.图示如下 红色文字为警告讯息,可以不予理会

ftp10.png

11.点击编辑,选择 用户

ftp11.png

 

12.点击 右侧 用户下面的添加选项 进行添加ftp账户

ftp12.png

13.设置账户名称,点击确定。比如我设置的账户名称:chunghwa

ftp13.png

14.账户设置,点击 启用账户和密码。设置ftp账户的登录密码。如果你不设置密码 ,意味着 是一个guest账户。以后无需输入密码即可访问ftp server共享资源。比如 某收音机厂商搭建ftp服务器存放收音机使用说明书电子版。希望用户以匿名账户的方式登录ftp 下载相关说明书

ftp14.png

15.点击Shared folders:共享目录

ftp15.png

16.打开命令提示符,输入 md  C:\目录名称。比如我在C:\建立ftp目录。即md  C:\ftp

然后在 共享文件夹下面点击 添加,选择你创建共享目录 最后点击确定即可

ftp16.png

 17.为用户分配权限。根据你的实际情况 酌情分配 具体权限。

ftp17.png

18.选中共享文件夹下创建的目录选项,点击设为主目录。 

ftp18.png

19.命令提示符中输入 ipconfig /all查看你服务器的ip地址。如果是多网卡,请酌情选择一个网卡配置的ip地址 进行ftp server的绑定

ftp19.png

20.点击编辑下的设置

ftp20.png

21.点击ip绑定,输入你的服务器的ip地址,最后点击确定即可

ftp21.png

22.命令提示符输入如下命令:

    ​防火墙放行ftp控制连接(命令连接)端口21:netsh advfirewall   firewall   add   rule   name=ftp   action=allow  dir=on   prptocol=tcp  localport=21

    ​防火墙放行ftp数据连接端口20:netsh   advfirewall   firewall   add   rule   name=ftp    action=allow    dir=on   prptocol=tcp  localport=20

   如果你的防火墙尚未启用,则需要先输入:netsh      advfirewall    set    currentprofile   state     on

如果你购买的是云服务器,还需要在后台开启安全组,放行相应端口。具体操作请咨询你所在的云服务器厂商。

ftp22.png

23.客户端测试连接ftp server:

    ​这里使用windows系统自带的ftp命令行客户端测试

    ​ftp    "ftp server ip地址"

    ​比如:

    ​ftp  192.168.1.144

    输入账户名,密码登录即可

    ​图示如下:

   image.png