Как зарезервировать список портов для моих пользовательских приложений?
Точнее говоря, продукт, который я создаю, имеет много процессов и много взаимосвязей между ними.
У меня проблема в том, что время от времени ОС крадет мои порты. Это редко, но это случается.
Это может быть потому, что другое приложение использовало ":: bind" без указания порта.
Или иногда мои собственные приложения крадут порт, когда я вызываю «:: connect» с несвязанным сокетом. Как видно из справочной страницы:
Если сокет еще не был привязан к локальному адресу, connect () должен связать его с адресом, который, если семейство адресов сокета не AF_UNIX, является неиспользуемым локальным адресом.
Поэтому мой вопрос: могу ли я зарезервировать нужные мне порты, чтобы ОС их не использовала? Можно ли это сделать с помощью / etc / services? Или есть другой способ?
SELinux
в принудительном режиме может удовлетворить ваши требования, я все еще учусь на нем. Так только предположение, может быть , вы можете определить свою собственную политику SELinux
в резервное Yours портов, такие как my_server_port_t tcp 1111, 2222, 3333, 4444-4600
. Если ваше приложение будет работать везде (не серверное приложение), боюсь, вы не сможете контролировать, SELinux
включено или выключено.