正如标题所述,我目前有一个 FTP 服务器,可通过在路由器后面运行 NATed 的 FTP 或 FTPS(显式)访问。服务器正在运行带有 IIS 8.0 的 Windows Server 2012 R2(我相信这是 2012r2 附带的版本)。
服务器只会被少数人使用,不到 10 人。
服务器当前运行正常,从路由器转发端口 21 和 30850-30859(数据通道)。我的问题是,FTPS 需要多少个数据通道端口?每个同时文件传输一个吗?还是同时用户?或者...?
正如标题所述,我目前有一个 FTP 服务器,可通过在路由器后面运行 NATed 的 FTP 或 FTPS(显式)访问。服务器正在运行带有 IIS 8.0 的 Windows Server 2012 R2(我相信这是 2012r2 附带的版本)。
服务器只会被少数人使用,不到 10 人。
服务器当前运行正常,从路由器转发端口 21 和 30850-30859(数据通道)。我的问题是,FTPS 需要多少个数据通道端口?每个同时文件传输一个吗?还是同时用户?或者...?
您需要足够的数据端口,以便客户端 IP - 客户端随机端口 - 服务器数据端口组合唯一标识任何 FTP 会话(传输)。
端口号用作控制连接上的传输请求和数据连接之间的链接。请注意,数据连接上没有“协议”,客户端可以使用它来告诉它它要求什么。端口号是服务器拥有的唯一唯一信息。
唯一性有多强可能取决于服务器实现。我相信大多数服务器只要求端口在客户端请求传输之后和连接到数据端口之前的那一小段时间内是唯一的。因此,如果您有 10 个端口和 11 个客户端同时请求传输,则第 11 个可能会被拒绝。
如果两个客户端同时请求传输,并且服务器会为两者使用相同的端口号(没有任何其他备用端口),则服务器将无法判断要传输的文件。当然,服务器可以使用客户端 IP 进行决策(实际上许多 FTP 服务器会验证客户端 IP 是否与控制连接上使用的 IP 相匹配以确保安全)。
但是当客户端请求传输时,现实生活中的实现会打开一个唯一的侦听套接字。因此,当没有可用的端口号时,服务器无法开始侦听,拒绝传输,因此它甚至不会遇到上述问题。
另一方面,Bitvise“SSH”服务器内置的 FTP 服务器实际上只支持单个数据端口。服务器需要 TLS 加密和会话恢复。它使用 TLS 会话来链接控制和数据连接。
另请参阅为什么 FTP 被动模式需要一个端口范围而不是一个端口?