Я попытался запустить скрипт для прослушивания тысяч портов TCP (от 1000 до 10000), но, похоже, он достиг предела в 1024 порта прослушивания. Я подтвердил это через netstat и закрыл порты выше определенных диапазонов.
Есть ли фиксированный лимит прослушиваемых портов в Linux и как, если возможно, его увеличить?
Вероятно, вы достигли предела nofile, который по умолчанию равен 1024.
Попробуйте поднять ulimit -n в своей оболочке перед запуском программы, например:
$ ulimit -n 20480; ./myprogram
Вне всяких сомнений, у вас должна быть привилегия поднять лимит nofile до такой степени, поэтому проверьте текущие мягкие и жесткие ограничения с помощью:
$ ulimit -a
И поднимите их в /etc/security/limits.conf или /etc/security/limits.d/*conf
Кстати, я не упомянул, что программа / скрипт запускается xinetd, и что xinetd игнорирует настройки ulimit nofile, глядя на исходный код xinetd сейчас, чтобы попытаться обойти это ограничение.