Comment réserver une liste de ports pour mes applications personnalisées?
Pour être précis, le produit que je crée a beaucoup de processus et beaucoup d'intercommunication entre eux.
Le problème que j'ai, c'est que - de temps en temps - le système d'exploitation vole mes ports. C'est rare, mais ça arrive.
Cela peut être dû au fait qu'une autre application a utilisé ":: bind" sans aucun port spécifié.
Ou parfois mes propres applications volent le port lorsque j'appelle ":: connect" avec un socket non lié. Comme vu sur la page de manuel:
Si le socket n'a pas déjà été lié à une adresse locale, connect () le liera à une adresse qui, à moins que la famille d'adresses du socket ne soit AF_UNIX, est une adresse locale non utilisée.
Ma question est donc la suivante: puis-je réserver les ports dont j'ai besoin pour que le système d'exploitation ne les utilise pas? Cela peut-il être accompli avec / etc / services? Ou existe-t-il une manière différente?
SELinux
en mode Enforcing peut répondre à vos besoins, j'apprends toujours dessus. Alors , juste une supposition, peut - être vous pouvez définir votre propre politique SELinux
de réserve ports vôtre, comme my_server_port_t tcp 1111, 2222, 3333, 4444-4600
. Si votre application s'exécute partout (pas une application serveur), je crains que vous ne puissiez pas contrôler si elle SELinux
est activée ou désactivée.