FTP

FTP简介

文件传输协议FTP(File Transfer Protocol)是TCP/IP协议组中的协议之一。在开发网站的时候,您可以使用FTP客户端将网站程序或者网页通过FTP协议上传到Web服务器。

工作方式如下所示:

  • 主动方式(PORT),工作流程如下:
    FTP客户端向服务器的FTP端口(默认是21)发送连接请求。服务器接受连接请求后,建立一条命令链路。需要传送数据时,客户端会在命令链路上向服务器发送PORT命令,命令中包含了客户端接收数据的端口。服务器收到命令后,会通过自己的20端口向PORT命令中的指定端口发送连接请求,建立一条数据链路来传送数据。
  • 被动方式(PASV),工作流程如下:
    FTP客户端向服务器的FTP端口(默认是21)发送连接请求。服务器接受连接请求后,建立一条命令链路。需要传送数据时,客户端会在命令链路上向服务器发送PASV命令。服务器收到命令后,随机开启一个端口并向客户端发送端口信息。客户端向服务器的端口发送连接请求,建立一条数据链路来传送数据。

PORT(主动模式)

PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据,原理如下图:

PASV(被动模式)

PASV是Passive的缩写,中文成为被动模式,工作原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输,原理如下图:

主动模式和被动模式的不同简单概述为: 主动模式传送数据时是“服务器”连接到“客户端”的端口;被动模式传送数据是“客户端”连接到“服务器”的端口。

FTP客户端注意事项

根据FTP客户端是否有公网IP、是否安装防火墙以及连接的云虚拟主机的搭建方式,您需要注意以下事项:

  • 如果您的FTP客户端没有公网IP,只能使用PASV方式才可以连接云虚拟主机。
  • 如果您的FTP客户端有公网IP,且安装了防火墙。当使用PORT方式连接云虚拟主机时,必须在防火墙上打开1024以上的高端端口,保证建立数据链路时,云虚拟主机向FTP客户端发送的连接请求不会被防火墙拦截。

FTP支持以下三种认证模式:

  • 匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。
  • 本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。
  • 虚拟用户模式:FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其它资源,进一步增强了FTP服务器的安全性。
posted @ 2021-12-15 08:57  源世  阅读(748)  评论(0编辑  收藏  举报