码迷,mamicode.com
首页 > 其他好文 > 详细

FTP的主被动模式

时间:2020-10-19 22:31:53      阅读:20      评论:0      收藏:0      [点我收藏+]

标签:ber   服务端   ati   公网   数据连接   公司   报文头   enc   seq   

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的主被动模式

标签:ber   服务端   ati   公网   数据连接   公司   报文头   enc   seq   

原文地址:https://blog.51cto.com/alibaby/2542427

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!