限于linux中侦听端口的数量

我试图启动一个脚本来听取数千个tcp端口(1000到10000),但它似乎达到了1024个监听端口的限制。 我已经通过netstat证实了这一点,并closures了某些范围以上的端口。

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

你可能在nofile限制,这是默认的1024。

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

 $ ulimit -n 20480; ./myprogram 

在场外,你必须有权限提高nofile的限制,所以检查目前的软硬限制:

 $ ulimit -a 

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

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