FTP 服务器

File Transfer Protocol 文件传输协议,具备强大的文件传输可靠性和更高的效率。

FTP 工作原理

  1. 客户端向服务器发出连接请求,同时客户端系统动态地打开一个大于 1024 的端口(比如 1031 端口)等候服务器连接。

  2. 若 FTP 服务器在端口 21 监听到请求,则会在客户端的 1031 端口和服务器的 21 端口建立 FTP 会话链接。

  3. 传输数据时,FTP 客户端动态地打开一个大于 1024 的端口(比如 1032 端口)连接到服务器的 20 端口,并在这两个端口之间进行数据传输。

  4. 数据传输完毕,客户端 1032 端口和服务器 20 端口之间的自动断开。

  5. 会话结束,FTP 客户端断开与 FTP 服务器的连接,客户端动态分配的端口自动释放。

FTP 服务的传输模式

FTP 服务有两种工作模式:主动传输模式(Active FTP)和被动传输模式(Passive FTP)。

  1. 主动传输模式

    FTP 客户端随机打开一个大于 1024 的端口 N(比如 1031 端口)向服务器的 21 号端口发起连接。同时,客户端开启 N+1 号端口(1032)进行监听,并向服务器发出 PORT 1032 命令。

    服务器接收到命令后,会用其本地的 FTP 数据端口(通常是 20)来连接客户端指定的 1032 端口,并进行数据传输。

  2. 被动传输模式

    FTP 客户端随机开启一个大于 1024 的端口 N(比如 1031 端口)向服务器的 21 号端口发起连接。同时,客户端开启 N+1 号端口(1032)并向服务器发送 PASV 命令。

    服务器接收到命令后,会开放一个大于 1024 的端口 P(比如 1521 端口)进行监听,然后用 PORT 1521 命令通知客户端。

    客户端收到命令后,会通过 1032 端口连接到服务器的 1521 端口,然后在两个端口之间进行数据传输。

主动传输模式是指服务器主动连接客户端的数据端口,被动传输模式是指服务器被动等待客户端连接。

被动传输模式的 FTP 服务通常用于处在内网的 FTP 客户端访问外界 FTP 服务器的情况。

因为在这种情况下,防火墙通常会阻止外网的主机连接内网主机,而只允许内网主机连接外网主机。因此这种情况下,不能有效地使用主动传输模式,而被动传输模式却可以很好地工作。