限制Linux中监听端口的数量

限制Linux中监听端口的数量

我曾尝试启动一个脚本来监听数千个 tcp 端口(1000 到 10000),但似乎达到了 1024 个监听端口的限制。我已通过 netstat 确认了这一点,并关闭了超过一定范围的端口。

Linux 中监听端口是否有固定的限制?如果可能的话,如何提高这个限制?

答案1

您可能达到了 nofile 限制,默认为 1024。

在运行程序之前,尝试在 shell 中提高 ulimit -n,例如:

$ ulimit -n 20480; ./myprogram

当然,您必须具有将 nofile 限制提高到如此高的权限,因此请使用以下命令检查当前的软限制和硬限制:

$ ulimit -a

并在 /etc/security/limits.conf 或 /etc/security/limits.d/*conf 中提出它们

答案2

顺便说一句,我没有提到该程序/脚本是由 xinetd 启动的,并且 xinetd 忽略了 ulimit nofile 设置,现在查看 xinetd 源代码以尝试绕过这个限制。

相关内容