目录
开场白
基础
主动 FTP
主动 FTP 的例子
被动 FTP
被动 FTP 的例子
总结
参考资料
附录 1: 配置常见 FTP 服务器
开场白
处理防火墙和其他网络连接问题时最常见的一个难题是主动 FTP 与被动 FTP 的区别以及如何完美地支持
它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持 FTP 这个问题上的一些混乱。
本文也许不像题目声称的那样是一个权威解释,但我已经听到了很多好的反馈意见,也看到了本文在许多
地方被引用,知道了很多人都认为它很有用。虽然我一直在找寻改进的方法,但如果你发现某个地方讲的
不够清楚,需要更多的解释,请告诉我!最近的修改是增加了主动 FTP 和被动 FTP 会话中命令的例子。
这些会话的例子应该对更好地理解问题有所帮助。例子中还提供了非常棒的图例来解释 FTP 会话过程的
步骤。现在,正题开始了...
基础
FTP 是仅基于 TCP 的服务,不支持 UDP。 与众不同的是 FTP 使用 2 个端口,一个数据端口和一个命令
端口(也可叫做控制端口)。通常来说这两个端口是 21-命令端口和 20-数据端口。但当我们发现根据
(FTP 工作)方式的不同数据端口并不总是 20 时,混乱产生了。
主动 FTP
主动方式的 FTP 是这样的:客户端从一个任意的非特权端口 N(N>;1024)连接到 FTP 服务器的命令端
口,也就是 21 端口。然后客户端开始监听端口 N+1,并发送 FTP 命令“port N+1”到 FTP 服务器。接着服
务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
针对 FTP 服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式 FTP:
1. 任何端口到 FTP 服务器的 21 端口 (客户端初始化的连接 S<-C)
2. FTP 服务器的 21 端口到大于 1023 的端口(服务器响应客户端的控制端口 S->C)
3. FTP 服务器的 20 端口到大于 1023 的端口(服务器端初始化数据连接到客户端的数据端口 S-
>C)
4. 大于 1023 端口到 FTP 服务器的 20 端口(客户端发送 ACK 响应到服务器的数据端口 S<-C)
评论2