环境
- 文件传输协议
问题
- 主动 FTP 和被动 FTP 有什么区别?
解决
主动模式
在主动模式下,FTP 客户端不会实际连接到服务器的数据端口,它只是告诉服务器它正在侦听哪个端口,然后服务器连接回客户端上的指定端口。从客户端防火墙来看,这似乎是外部系统发起与内部客户端的连接,通常会被阻止并需要处理。
主动FTP对FTP服务器管理员有利,但对客户端管理员不利。 FTP 服务器尝试与客户端上的随机高端口建立连接,这可能会被客户端的防火墙阻止。
- 流程图:
- FTP 客户端从随机非特权端口(N > 1023)连接到 FTP 服务器的命令端口 21。
- 服务器然后将“ACK”发送回客户端的命令端口。
- 服务器在其本地数据端口上启动与客户端先前在步骤 1 中指定的数据端口的连接。
- 最后客户端发送ACK。
被动模式
被动模式 FTP 解决了客户端的许多问题,同时在服务器端带来了一系列问题。最大的问题是需要允许任何远程连接到服务器上编号更高的端口。
被动FTP对客户端有利,但对FTP服务器管理员不利。客户端将与服务器建立两个连接,但其中一个将连接到随机的高端口,该端口可能会被服务器端的防火墙阻止。
- 流程图:
- FTP 客户端从服务器命令端口 21 上的随机非特权端口(N > 1023)进行联系,并发出PASV命令。
- 服务器然后打开一个随机非特权端口(P > 1023)并发送P返回客户端以响应 PASV 命令。
- 然后,客户端在步骤 2 中启动从其(N+1 > 1023)数据端口到指定服务器数据端口的数据连接。
- 最后,服务器将步骤 4 中的 ACK 发送回客户端的数据端口。
端口号大致分为三个范围
- 众所周知的端口、注册端口以及动态和/或私有端口。
- 众所周知的端口是从 0 到 1023 的端口。
- 注册端口是从 1024 到 49151 的端口。
- 动态或专用端口是从 49152 到 65535 的端口,这些端口是根据 IANA(互联网号码分配机构)保留的端口。
网友评论