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
我难住了。
-p 18000:18020
只允许使用 21 个端口。您需要至少两倍于您希望同时允许的用户数量。
通常,您不希望端口范围很小,而是尽可能大。
我从 pureftp 支持邮件列表中得到的答案:
抱歉,如果这太挑剔了,但我想从 lacibusiness 的回复中纠正一些事情。最好总是准确地解释事情以避免误解。
首先,确认所说的内容是正确的(而且很棒,很有帮助,并且是一个快速的回复,总是很棒):是的,允许的 FTP 控制连接的数量将被限制为被动大小的 1/2端口范围。因此,如果您的范围涵盖 21 个端口(如您的那样,18000 - 18020),那么一半是 10.5。Pure-ftpd 基本上将其四舍五入到 10,并强制执行一个规则,即您一次只能拥有该数量(在本例中为 10 个)ftp 会话。
但要纠正不准确之处:
这在技术上是不正确的。相反,您可以说 Pure-ftpd 希望确保在每个 ftp 会话期间至少可以使用2个被动连接。它可能不会同时打开。它甚至可能不会打开一个。我认为它甚至可以打开 3 个或更多,这取决于 ftp 会话实际执行了多少面向数据的任务(文件传输和目录列表)。你可能会说 Pure-ftpd 想要保留打开被动数据连接的能力,所以它保护被动端口的使用。
由于 tcp 端口在被允许重用之前可能需要一些时间,所以 Pure-ftpd(在实现这一理念时)相当谨慎。如果存在 10 个 FTP 控制连接,那么(即使当前没有打开被动数据连接),它认为每个会话可能平均需要 2 个连接,因此它认为保留 20 个端口是可取的。事实上,它被编码为要求这个。
该“保留”必须来自“PassivePortRange”(又名 -p 设置),因此范围的宽度必须是您要支持的 ftp 客户端会话数的两倍。
说“可用”而不是“开放”可能会更好。因为在开放的 tcp 连接的意义上,他可能没有 20 个被动端口“开放”。他可能根本没有任何开放。相反,他定义了 21 个端口,可以为被动数据连接打开。
达西 [email protected]