被动模式下 VSFTP 的连接数

被动模式下 VSFTP 的连接数

当使用被动模式时,如果我们将 pasv_max_port 设置为 10100,将 pasv_min_port 设置为 10090,这是否意味着 VSFTP 服务器只能同时为 10 个客户端提供服务?

我们可以将 pasv_max_port 和 pasv_min_port 设置为相同的端口号吗?如果可以,VSFTP 服务器可以同时处理多少个客户端?只能处理一个?

答案1

简化,我会说是的,你就应该这样考虑(在我看来)。

限制端口范围将根据您拥有的端口数量(介于最小值和最大值之间)限制同时客户端连接。这样您就可以避免出现奇怪的行为。

但事实上这并不属实,必须加以控制:-)

更深入、更准确地说:限制端口会影响数据通道的并发使用

请注意,新的连接请求需要可用的数据通道。

我不知道所有使用数据通道的 FTP 命令,但基本上上传(STOR)、下载(RETR)、列表(LIST)命令都需要数据通道。


为了说明这一点,我刚刚在实验室中使用我的 vsftpd 服务器和以下设置在以下设置进行了测试(您可以重现):

pasv_max_port=10100
pasv_min_port=10100

1.第一次测试:

  • 我与 Client1 建立连接:ok
  • 我与 Client2 建立连接,同时 Client1 仍处于连接状态:ok
  • 我与 Client3 建立连接,同时 Client1 和 Client2 仍处于连接状态:ok

为什么 ?

  • Client2 能够连接,因为 Client1 没有执行任何操作(空闲)并且没有使用数据通道,所以服务器已将端口分配给 Client2。
  • Client3 能够连接,因为 Client1 和 Client2 处于空闲状态且未使用数据通道,因此服务器已将端口分配给 Client3。

2.第二次测试:

  • 我连接 Client1 并开始上传文件:ok 文件上传正在进行中
  • 我连接了 Client2,而 Client1 的上传仍在运行:错误:无法连接
  • 我等待 Client1 上传完成
  • 一旦 Client1 上传完成,我就可以连接 Client2。

为什么 ?

  • 由于客户端 1 正在使用数据通道进行上传,客户端 2 无法连接,因为服务器端没有可用的端口为其提供服务。
  • 一旦客户端 1 上传完成,服务器就会释放数据通道端口,客户端 2 就可以使用它进行连接。

3.第三次测试:

  • 我与 Client1 建立连接:ok
  • 我与 Client2 建立连接,同时 Client1 仍处于连接状态:ok
  • 我从 Client1 开始上传到 ftp 服务器:ok,上传正在进行中
  • 我从 Client2 开始上传到 ftp 服务器,而 Client1 的上传仍在运行:错误:服务器关闭连接。传输失败。

为什么 ?

测试 1 和测试 2 的混合:

  • Client2 能够连接,因为 Client1 没有执行任何操作(空闲)并且没有使用数据通道,所以服务器已将端口分配给 Client2。
  • Client1 能够上传文件,因为 Client2 处于空闲状态,所以服务器已将端口分配给 Client1 以供其上传。
  • Client2 无法上传文件,因为 Client1 已使用数据传输端口进行上传

现在你可以理解为什么我在开始时谈论“奇怪”的行为。

希望它能有所帮助!

相关内容