Come posso prenotare un elenco di porte per le mie applicazioni personalizzate?
Per essere precisi, il prodotto che sto creando ha molti processi e molta intercomunicazione tra di loro.
Il problema che sto riscontrando è che - ogni tanto - il sistema operativo ruba le mie porte. È raro, ma succede.
Ciò potrebbe essere dovuto al fatto che un'applicazione diversa ha utilizzato ":: bind" senza alcuna porta specificata.
O a volte le mie applicazioni rubano la porta quando chiamo ":: connect" con un socket non associato. Visto dalla pagina man:
Se il socket non è già stato associato a un indirizzo locale, connect () lo assocerà a un indirizzo che, a meno che la famiglia di indirizzi del socket non sia AF_UNIX, sia un indirizzo locale inutilizzato.
Quindi la mia domanda è: posso prenotare le porte di cui ho bisogno in modo che il sistema operativo non le usi? Questo può essere realizzato con / etc / services? O c'è un modo diverso?
SELinux
in modalità Enforcing possa soddisfare le tue esigenze, sto ancora imparando su di esso. Quindi, solo una supposizione, forse si può definire la propria politica per SELinux
di riserva Distinti porti, come ad esempio my_server_port_t tcp 1111, 2222, 3333, 4444-4600
. Se la tua applicazione verrà eseguita ovunque (non un'applicazione server), temo che non puoi controllare se SELinux
è ON o OFF.