Назад | Перейти на главную страницу

Ограничить количество прослушивающих портов в Linux

Я попытался запустить скрипт для прослушивания тысяч портов 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 сейчас, чтобы попытаться обойти это ограничение.