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等等。