FTP协议

FTP协议用于文件的上传和下载。主动模式下,服务器使用端口20发起数据连接,可能存在防火墙问题。被动模式下,客户端指定数据端口并建立连接,解决服务器到客户端的连接难题。控制连接使用端口21,数据连接在主动模式中由服务器到客户端,被动模式中由客户端到服务器的指定端口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FTP:file transport protocol  文件传输协议 用于文件的上传和下载

1、主动模式下,当客户端存在防火墙时,由于数据连接是由服务器发起,数据连接可能会发生问题。被动模式下,这个问题得到了解决。主动模式有利于对FTP服务器的管理,不利于对客户端的管理;被动模式则相反。

2、缺省情况下,服务器的端口21用于传输控制命令,端口20用于传输数据。

3、FTP连接主动模式建立过程:

1>服务器打开端口21 启动监听,等待连接。启动监听,等待连接。

2>客户端发起控制连接的建立请求,服务器响应。

3>客户端通过控制连接发送PORT命令,将客户端数据连接的临时口号告诉服务器。

4>服务器的20 号端口与客户建立起数据连接。

总结:

主动模式下,客户端随机打开一个大于 1024 的端口向服务器的命令端口 P,即 21 端口,发起连接,同时开放N +1 端口监听,并向服务器发出 “port N+1” 命令,由服务器从它自己的数据端口 (20) 主动连接到客户端指定的数据端口 (N+1)。

FTP 的客户端只是告诉服务器自己的端口号,让服务器来连接客户端指定的端口。对于客户端的防火墙来说,这是从外部到内部的连接,可能会被阻塞

4、FTP连接被动模式建立过程:

1>服务器打开端口21 启动监听,等待连接。

2>客户端发起控制连接的建立请求,服务器响应。

3>客户端通过控制连接发送命令字PASV,告知服务器处于被动模式。

4>服务器回应,将数据连接的临时端口号告诉客户。

5>客户端与服务器的临时口建立起数据连接。
 

总结:

为了解决服务器发起到客户的连接问题,有了另一种 FTP 连接方式,即被动方式。命令连接和数据连接都由客户端发起,这样就解决了从服务器到客户端的数据端口的连接被防火墙过滤的问题。

被动模式下,当开启一个 FTP 连接时,客户端打开两个任意的本地端口 (N > 1024 和 N+1) 。

第一个端口连接服务器的 21 端口,提交 PASV 命令。然后,服务器会开启一个任意的端口 (P > 1024 ),返回如“227 entering passive mode (127,0,0,1,4,18)”。 它返回了 227 开头的信息,在括号中有以逗号隔开的六个数字,前四个指服务器的地址,最后两个,将倒数第二个乘 256 再加上最后一个数字,这就是 FTP 服务器开放的用来进行数据传输的端口。如得到 227 entering passive mode (h1,h2,h3,h4,p1,p2),那么端口号是 p1*256+p2,ip 地址为h1.h2.h3.h4。这意味着在服务器上有一个端口被开放。客户端收到命令取得端口号之后, 会通过 N+1 号端口连接服务器的端口 P,然后在两个端口之间进行数据传输。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值