我试图启动一个脚本来听取数千个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源代码尝试绕过这个限制。