FTP的主被动模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FTP的主被动模式相关的知识,希望对你有一定的参考价值。

FTP有主动模式和被动模式,FTP服务器在公网的话,需要使能ALG(Application Layer Gateway的缩写)功能。
主要关键点:FTP主动被、NAT、ALG
NAT的三种模式:
一对一(静态),多对一(easy IP),多对多(动态)
主动模式:
客户端的N端口(>1024)与服务器的21端口建立控制连接,(客N——>服21)
服务端的20端口与客户端的N+1端口建立数据连接;(服20——>客N+1)
用到的PORT命令
被动模式:
客户端的N端口(>1024)与服务器的21端口建立控制连接,(客N——>服21)
客户端的N+1端口与服务端的Y端口(>1024)建立数据连接;(客N+1——>服Y)
用到的PASV命令
区别:
被动模式命令连接和数据连接都是由客户端发起的,这样就可以解决从服务器到客户端的数据端口的入方向连接被客户端所在网络防火墙过滤掉。
主动是PORT命令,被动是PASV命令
FTP在公网的情况下,需要用到被动模式:
IPV4环境中公司内部的电脑要访问外部网络的服务器时,需要用到NAT。
但FTP,它分为控制连接和数据连接。如果FTP是一个外部服务器时,内网电脑是客户端,客户端会N端口和服务器端21端口先建立一个控制连接,但要传递文件的时候,都要先通过控制连接协商出一个数据连接来。
客户端的报文经过了路由器NAT之后,当然对于控制连接来说这没有影响,但是对于正要通过控制连接建立的数据连接就有问题了因为服务器是无法和一个内部地址建立连接的,所以这个时候就出现了ALG这个功能。ALG就是在发现如果报文头做了NAT,在这个时候如果发现这个是一个FTP的连接的时候,就需要同时改变IP层和TCP层的内容。因为FTP是一个TCP的连接,如果更改报文内容,那么就涉及到整个TCP连接的一些参数的更改,比如sequence number,TCP报文的checksum等等。

以上是关于FTP的主被动模式的主要内容,如果未能解决你的问题,请参考以下文章

如何设置FTP的主动模式和被动模式

FTP主动模式和被动模式!

FTP Port主动模式 Passive被动模式区别-Filezilla Server设置Passive被动模式

如何设置FTP的主动模式和被动模式

如何设置FTP的主动模式和被动模式

主动模式FTP与被动模式FTP该如何选择