无法在 Ubuntu 上运行的纯 ftp 上增加 maxclientsperip

无法在 Ubuntu 上运行的纯 ftp 上增加 maxclientsperip
root@www:~# cat /etc/pure-ftpd/conf/MaxClientsNumber 
100
root@www:~# cat /etc/pure-ftpd/conf/MaxClientsPerIP 
50

重新启动 ftp 服务器:运行:

/usr/sbin/pure-ftpd -l extauth:/var/run/ftpd-auth.sock -l pam -y 150:0 -c 100 -C 50 -H -P 10.8.1.7 -u 1000 -p 18000:18020 -E -Y 1 -U 113:002 -R -A -8 UTF-8 -O clf:/var/log/pure-ftpd/transfer.log -B

但是尝试连接超过 10 次时会出现此错误。在客户端上:

421 10 users (the maximum) are already logged in, sorry

运行 ubuntu 10.10

我困惑了。

答案1

-p 18000:18020仅允许使用 21 个端口。

您需要至少两倍于您想要同时允许的用户数量。

一般来说,您不希望端口范围太小,而是希望其尽可能大。

答案2

我从 pureftp 支持邮件列表得到的答案:

抱歉,如果这太挑剔了,但我想纠正 lacibusiness 的回复中的一些内容。准确解释事情总是最好的,以避免误解。

首先,确认一下所说的内容是否正确(而且非常好,很有帮助,而且回复很快,这总是令人赞叹):是的,允许的 FTP 控制连接数将限制为被动端口范围大小的一半。因此,如果您的范围覆盖 21 个端口(就像您的一样,18000 - 18020),那么一半就是 10.5。Pure-ftpd 基本上会将其四舍五入为 10,并强制执行一条规则,即您一次只能拥有该数量(在本例中为 10)的 ftp 会话。

但要纠正不准确的信息:

FTP 为每个客户端打开 2 个新的被动 FTP 连接

从技术上来说,这并不正确。相反,你可以说 Pure-ftpd 希望确保至少有 2 个被动连接可以在每个 ftp 会话期间使用。它可能不会同时打开两个。它甚至可能不会打开一个。我认为它甚至可以打开 3 个或更多,具体取决于 ftp 会话实际执行的数据导向任务(文件传输和目录列表)的数量。您可能会说 Pure-ftpd 想要预订打开被动数据连接的能力,因此可以保护被动端口的使用。

由于 tcp 端口可能需要一些时间才能被重新使用,因此 Pure-ftpd(在实施这一理念时)相当谨慎。如果存在 10 个 FTP 控制连接,那么(即使没有被动数据连接现在开放),它认为每个会话可能平均需要 2 个连接,因此它认为保留 20 个端口是可取的。事实上,它被编码为要求这。

该“保留”必须来自“PassivePortRange”(又名 -p 设置),因此范围的宽度必须是您想要支持的 ftp 客户端会话数量的两倍。

因为你只开放了 20 个被动端口

说“可用”可能比说“打开”更好。因为从开放的 TCP 连接的角度来看,他可能没有 20 个被动端口“打开”。他可能根本没有打开任何端口。相反,他有 21 个端口的定义范围来可能开放用于被动数据连接。

达西 [电子邮件保护]

相关内容