如果控制连接在FTPqq临时会话连接结束前被中断,你认为会发生什么?它会影响数据连接吗?

FTP协议为什么需要两个TCP连接啊?(数据和控制连接)_百度知道
FTP协议为什么需要两个TCP连接啊?(数据和控制连接)
rt~用一个连接也可以实现吧?
如果是需要传输数据可能会影响速度,再从这个端口发送数据,但是也是可以实现的吧……假设开端口20,等待客户发送请求,为什么不可以实现呢
提问者采纳
只是它们所用的端口不一样,一个用21(发送数据),如果是10种协议呢,一个用来接收数据,那就是复用一个端口,数据出错的概率也变大了,端口的复用等于说在一个端口上同时使用2种协议以上,如果你清楚的话,一个用20(接收数据) ?不但会影响传输速度我记得一个是用来发送数据,端口之间通信需要传输协议才能建立连接。如果只是一个连接的话
其他类似问题
为您推荐:
ftp协议的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁查看:1785|回复:5
初级工程师
有一台外网ftp服务器,因为默认端口被占用,我另建了一个ftp域,端口用的其他的(试过很多端口)。
现在就有一个奇怪的问题,使用flashfxp等ftp软件可以ftp上服务器并且可以下载东西,但是用命令行下载(get)
就会报错,请教一下,这是为什么?(如果使用默认端口21的话,是可以get的)
(10.05 KB)
使用get或ls或dir都会出现这种问题,请问是不是与数据端口有关啊?
网上说与什么主动、被动模式有关,可是服务器上两个模式都打开或关掉一个都试过,没用
(23.54 KB)
还有说是与防火墙有关,这个我想应该也不是问题所在,ftp服务器上防火墙是允许ftp服务的,本机允许所有端口。
各位帮忙看下什么问题啊
本帖最后由 幽鸣草 于
11:48 编辑
白袍大法师
FTP的特殊性:
大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯。但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计。一般,FTP连接包括:
一个控制连接(control connection)
这个连接用于传递客户端的命令和服务器端对命令的响应。它使用服务器的21端口,生存期是整个FTP会话时间。
几个数据连接(data connection)
这些连接用于传输文件和其它数据,例如:目录列表等。这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同。而且,数据连接既可能是客户端发起的,也可能是服务器端发起的。
在FTP协议中,控制连接使用周知端口21,因此使用ISA的IP PACKET FILTER就可以这种连接进行很好的安全保护。相反,数据传输连接的目的端口通常实现无法知道,因此处理这样的端口转发非常困难。FTP协议使用一个标准的端口21作为ftp-data端口,但是这个端口只用于连接的源地址是服务器端的情况,在这个端口上根本就没有监听进程。FTP的数据连接和控制连接的方向一般是相反的,也就是说,是服务器向客户端发起一个
于数据传输的连接。连接的端口是由服务器端和客户端协商确定的。FTP协议的这个特征对ISA转发以及防火墙和NAT的配置增加了很多困难。
除此之外,还有另外一种FTP模式,叫做被动模式(passive mod)。在这种模式下,数据连接是由客户程序发起的,和刚才讨论过的模式(我们可以叫做主动模式)相反。是否采取被动模式取决于客户程序,在ftp命令行中使用passive命令就可以关闭/打开被动模式。
前面我们讲过,FTP协议的数据传输存在两种模式:主动模式和被动模式。这两种模式发起连接的方向截然相反,主动模式是从服务器端向客户端发起;被动模式是客户端向服务器端发起连接。
我们回到ISA的情况,如果采用被动模式,由于IIS是完全随机的选择一个端口,并告知客户,然后客户进行主动连接,这就意味着在ISA上,你要让所有的端口都允许动态入站连接才行,这样肯定不行,因为太危险了,等于打开了所有的端口连接。
如果采用主动模式(PORT Mode),IIS选择好端口后,主动与客户进行连接,这时候不需要像PASV模式那样打开所有的动态入站连接,而且正好相反,我们需要打开所有的动态出站连接即可,安全性增加很多。
PORT其实是Standard模式的另一个名字,又称为Active模式?中文意思是“主动模式
PASV也就是Passive的简写中文就是“被动模式
两者之间有什么不同:
不同之处是由于PORT这个方式需要在接上TCP 21端口后,服务器通过自己的TCP 20来发出数据?并且需要建立一个新的连接来传送档案?而PORT的命令包含一些客户端没用的资料,所以有了PASv的出现
而PASV模式就当然拥有PORT模式的优点及去掉一些PORT的缺点,PASV运行方式就是当服务器接收到PASV命令时,就会自动从端口中随机选择,而且还会使用同一个端口来传送数据,不用建立新的连接
PASV方式设置:
& && && & 所有FTP服务器软件都支持PORT方式大部分FTP服务器软件PORT方式和PASV方式都支持,Serv-U默认配置下两种方式都支持,如果要关闭 PASV方式,请打开Serv-U,进入 Domains -& user.dns0755.net -& Settings -& Advanced -& 把“Allow passive mode data transfers&前面的钩去掉
& && && & 使用内网标准版的用户,不能取消PASV方式
PASV方式与防火墙的问题:
& && && & 公网和内网TrueHost用户,如果安装了防火墙,需要在防火墙上打开一些端口给FTP的PASV模式使用,否则使用PASV模式无法登录。在 Serv-U的Local Server -& Settings -& Advanced -& PASV port range里,填入给PASV模式使用的本地端口范围,如,如果使用Win 9x/Me,请把端口范围限制在5个以内,如果使用Win NT/2000/XP/2003,请把端口范围限制在20个以内?之后,再在防火墙里打开这个范围的端口就可以了
& && && & 使用内网标准版的用户不需要设置此选项
& && && & 防火墙的设置方法
& && && & 注:Win XP自带的防火墙会自动为FTP打开PASV端口,如果使用Win XP防火墙就不需要设置
公网+端口映射的注意事项:
& && &&&通过ADSL共享器/路由器或其他网关上网,采用网关端口映射而使用公网动态域名的用户,建立FTP服务器,用PORT方式访问是没问题的,要用PASV方式访问,需要做如下设置:
& && &&&1、在Domains -& user.dns0755.net里选择“Enable dynamic DNS&?之后,右边会多出一个选项“Dynamic DNS&,点击“Dynamic DNS&,在“IP name&里输入域名“user.dns0755.net&,“IP address&留空不设按,“F5&即可得到IP地址,点击“Apply&保存设置
& && &&&2、参考上面的“PASV方式与防火墙的问题&中的说明,设置PASV端口范围,例如 60000 - 60020
& && &&&3、在网关(ADSL共享器/路由器)上为PASV端口设置映射?例如把网关的 60000 - 60020 端口映射到本机的 60000 - 60020 端口
天下风云出我辈, 一入江湖岁月催。当年的“小侠唐在飞” 如今变成了“大侠唐在飞”。?金杯银杯,不如网友的口碑;金奖银奖,不如网友的褒奖;熊掌鸭掌,不如网友的鼓掌~& &
?欢迎新疆的午饭加入“51CTO新疆午饭群”,群号:7860563。?
初级工程师
感谢版主回了这么多,可是我还是不太懂。。。
白袍大法师
你用什么配置的FTP?
IIS还是serv-u
天下风云出我辈, 一入江湖岁月催。当年的“小侠唐在飞” 如今变成了“大侠唐在飞”。?金杯银杯,不如网友的口碑;金奖银奖,不如网友的褒奖;熊掌鸭掌,不如网友的鼓掌~& &
?欢迎新疆的午饭加入“51CTO新疆午饭群”,群号:7860563。?
初级工程师
有两个服务,一个server-u FTP,一个Gene6 FTP server。之前就是因为别人用server-u占用了21端口,我是再Gene6 上建的域和账号。FTP是常见的基于TCP的网络服务,它使用了两个TCP连接来建立逻辑通信信道,即控制连接和数据连接。当客户端与服务器建立一个FTP会话时,使用TCP创建一个持久的控制连接以传递命令和应答。当发送文件和其它数据传输时,它们在独立的TCP数据连接上进行传递,这个连接根据需要创建和拆除。
更为复杂的是,FTP标准指定了创建数据连接的两种不同方法,即正常(主动)数据连接和被动数据连接。FTP的控制连接总是由客户端首先发起的,主动数据连接是由服务器端发起的,被动数据连接是由客户端发起的。
成功建立控制连接后,在进行主动连接时,客户端发送PORT命令,其中内嵌了地址和端口信息,以告知服务器进行连接,然后服务器打开默认端口20建立到客户端已告知地址和端口的数据连接。在进行被动连接时,客户机使用PASV命令告诉服务器等待客户机建立数据连接,服务器响应,告诉客户机为了数据传输它应该使用服务器上的什么端口(随机打开)。这种工作机制带来了一个严重的问题:在FTP的命令(PORT或PASV)或对它们的回答中传递IP地址及端口号与网络分层机制严重冲突,在FTP客户端与服务器的通信信道之间的设备(或)上启用了NAT功能的情况下将出现连接性问题。
对于像FTP这样的多端口连接的TCP应用,其影响是深远的,在复杂的网络环境中,更是由于设备、软件的多样性可能导致不可预知的问题。作为一名网络管理员,深入了解和FTP的工作原理及其在NAT环境下防火墙对FTP的影响,对于选择FTP服务软件及安装、部署、管理及维护FTP服务和实际工作中排除FTP应用故障是大有裨益的。本文就以一个在实际环境中比较常见的FTP部署和应用拓扑为例,来详细解读防火墙(启用了NAT功能)对FTP的影响。如有不当之处,敬请指正。
一、网络拓扑图
二、主动模式的连接分析
如本例中网络拓扑所示,IP为192.168.1.1客户端计算机打开一个可用的TCP端口1025,经过其前端的防火墙进行NAT转换成地址1.1.1.1和端口1025后建立到目标地址为2.2.2.2的21端口的连接,然后服务器前端的防火墙将此连接信息传递到服务器172.16.6.1的21端口,成功建立FTP控制连接。
服务器则经由这个已经建立的逻辑连接通道返回数据包,与客户端进行交互。接着,客户端发出PORT指令,在指令中嵌入了地址信息(IP:192.168.1.1,Port:1026),告知服务器用于数据连接,并打开端口1026,等待服务器连接。当承载PORT指令的数据包到达客户机前端的防火墙时,由于NAT的缘故,在成功创建NAT表项,改写数据包的IP和TCP端口信息后:
如果此时防火墙不能识别并检查此连接是FTP应用,便不能对PORT指令中嵌入的地址和端口信息进行改写,则将此数据包通过先前已建立的控制连接通道传递到服务器后,服务器则打开20端口,将建立到192.168.1.1的1026端口的数据连接。
显然,此连接数据包要么被其前端的防火墙丢弃,要么在流入因特网后立刻被丢弃,永远无法到达客户端。在这种情况下,客户端一直处在控制连接阶段发送含有PORT指令的数据包,以便建立数据连接;而服务器则在打开了20端口后,一直尝试建立到客户端的数据连接,但始终收不到应答。
直接的结果就是:客户端成功连接了FTP服务器,却无法进行数据传输。这里可能还包含一个隐藏的安全威胁:如果恰巧192.168.1.1对于服务器主机来说是直接可达的,则此时服务器便将数据包发送到这台计算机,在这两台主机之间产生莫名的数据流。其他可能更隐蔽、更不好的情况,笔者不再做假设论述了。
如果此时防火墙能支持对FTP应用进行审查和跟踪,即能识别PORT指令中的内容,就将其中嵌入的地址信息改写成(IP:1.1.1.1,PORT:1026)并动态打开1026端口,并建立新的NAT转换表项,等待连接,则当服务器收到PORT指令后,打开20端口,建立到1.1.1.1上1026端口的连接,成功交互后,便能进行数据传输了。
三、被动模式的连接分析
控制连接建立后,客户端发出的PASV指令到达服务器,服务器则随机打开一个可用的TCP端口,并将地址和端口信息(IP:172.16.6.1,Port:50000)返回给客户端,告知客户端利用这些信息进行数据连接。当包含服务器地址信息的这个数据包到达其前端的防火墙时:
如果防火墙不能识别并检查此数据包的应用层数据,无法判定它是FTP的PASV指令的返回包,并对其中嵌入的地址信息进行重写,则当此数据包返回到客户端时,客户端将随机打开端口3000,以目的地址172.16.6.1、端口50000来进行数据连接,同理,此连接数据包永远不能到达服务器端。
这种情况下,客户端将一直尝试建立数据连接,却总是不能收到应答。这里可能包含的隐藏安全威胁,如前所述。
如果防火墙能对FTP应用进行审查和跟踪,并将返回包中嵌入的服务器地址信息进行重写,即转换成(IP:2.2.2.2,Port:50000),然后建立新的NAT表项,动态打开50000端口,等待连接。则此返回包到达客户端时,客户端将随机打开端口3000,以目的地址2.2.2.2、端口50000来新建连接,便能成功建立数据连接。
根据以上分析,为成功进行FTP数据传输,主动模式下要求客户机前端的防火墙在启用NAT后能对FTP应用进行审查和跟踪,识别并改写PORT指令中的客户端地址信息;被动模式下则要求服务器前端的防火墙能改写服务器响应PASV指令后返回数据包中的服务器地址信息。
当然,为保险起见,为保证FTP应用的正常使用,建议两端的防火墙都需要支持对FTP进行识别和内容审查。
四、网络防火墙与FTP
大多数设置防火墙的默认访问控制策略是:允许从内部到外部的一切流量,禁止从外部到内部的一切流量。
就FTP应用来说,为了简化防火墙策略的配置又兼顾安全策略要求,客户机选择被动模式进行数据连接较好,不需要对其前端的防火墙设置特别的访问控制策略,但要求服务器前端的防火墙能动态打开数据连接所需的随机端口;服务器端则选择主动连接较好,为允许客户端的访问,其前端防火墙的访问控制策略仅需要显式对外开放21端口即可,但需要客户机前端的防火墙能动态打开数据连接所需的端口。
从方便使用的角度考虑,既然提供FTP服务,就要配置好服务器前端的防火墙,使其访问控制策略能支持两种模式下的FTP服务正常工作。
如果客户机前端的NAT设备为,不是防火墙,并不能审查和跟踪FTP应用,从前面的分析可以推断出,主动模式下肯定存在连接性问题,需要以被动方式建立数据连接才能成功使用FTP服务。
如果FTP控制端口非默认,而是定制的TCP端口(比如2121),在这种情况下,服务器前端的防火墙通过配置命令显式指示FTP的控制端口,便能进行审查和跟踪。但客户机前端的防火墙即使其能识别默认端口下的FTP应用,此时也会把控制端口非21的FTP服务当作一般的TCP应用对待,这种情形下,便不能改写主动模式下的客户端地址端口信息,导致服务器在建立数据连接时失败,但客户端使用被动连接模式能正常工作。
综上所述,客户端使用被动方式连接FTP服务器是最恰当的,能最大限度地降低连接性问题。同时降低了对客户机前端防火墙备的要求,不需要像主动方式那样动态开放允许输入的随机端口,把可能的安全威胁推给了服务器端。这或许是微软的IE浏览器()默认设置使用被动方式的原因。如图表2所示。另外需要注意的,在Windows命令行下,FTP默认是使用主动方式进行数据连接的。
五、主机防火墙与FTP
如果将FTP服务器架设在Windows 上,由于它内置Windows防火墙,而且默认已经启用,所以客户端建立到这台FTP服务器的控制连接便会被封锁,此时需要在防火墙上开放对TCP 21端口的传入连接。
被动模式下,由于服务器通过控制信道将用来监听客户端请求的端口号是随机产生的,此时需要在防火墙上开放的传入连接的端口也是随机的。由于Windows防火墙不能像网络防火墙那样根据需要动态打开和关闭FTP服务要求的随机端口,所以需要静态开放全部可能的随机端口。
Windows 默认的动态端口范围是,而Windows防火墙的例外开放规则只能针对单一端口来开放,要开放这个范围内的一万多个端口,非常不切实际,更是会给运行FTP服务器的主机带来严重的安全威胁。
所幸的是,基于IIS7.0建立的FTP服务器允许将端口号固定在自行指定的一个范围中,如,此时便只需要开放这一小段范围的端口即可,大大提升了安全性和配置Windows防火墙的效率。如果服务器上部署的是第三方防火墙,则需要慎重考虑如何设置使之能安全保障FTP服务的正常运行。
原文地址:
Windows 自带的 ftp 命令不支持被动模式
阅读(...) 评论()第17章 FTP服务配置_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
第17章 FTP服务配置
上传于||文档简介
&&l​i​u​n​x​ ​F​T​P​服​务​配​置
大小:1.01MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢

我要回帖

更多关于 远程会话被中断 的文章

 

随机推荐