正如标题所述,我目前有一个可通过FTP或FTPS(显式)在路由器后面运行NAT的FTP服务器。 服务器运行Windows Server 2012 R2与IIS 8.0(我相信是2012r2附带的版本)。
服务器将只有less数人使用,less于10人。
服务器当前正在运行,端口21和30850-30859(数据通道)从路由器转发。 我的问题是,FTPS需要多less个数据通道端口? 同步文件传输是一个吗? 或同时用户? 要么…?
您需要足够的数据端口,以便客户端IP客户端随机端口 – 服务器数据端口组合唯一标识任何FTP会话(传输)。
端口号用作控制连接上的传输请求和数据连接之间的链接。 请注意,数据连接上没有“协议”,客户可以使用它来告诉它所要求的是什么。 端口号是服务器唯一的唯一信息。
唯一性有多强有可能取决于服务器的实现。 我相信大多数服务器要求端口在客户端请求传输之后和连接到数据端口之前的短时间内是唯一的。 所以如果你有10个端口和11个客户同时要求转移,那么11号很可能会被拒绝。
如果两个客户端同时请求传输,并且服务器将使用相同的端口号(没有其他备用服务器),则服务器将无法分辨要传输哪个文件。 当然,服务器可以使用客户端IP来做出决定(实际上许多FTP服务器都会validation客户端IP是否与控制连接上使用的IP相匹配以保证安全)。
但是当客户端请求传输时,真实生活实现会打开一个独特的侦听套接字。 所以当没有端口号空闲的时候,服务器不能开始监听,拒绝传输,所以甚至没有上述的问题。
另请参见为什么FTP被动模式需要一个端口范围而不是只有一个端口?