Assegnazione delle porte TCP / IP per l’utilizzo dell’applicazione in-house

Ho scritto un servizio WCF ospitato da un servizio Windows e deve essere ascoltato su una porta TCP / IP conosciuta. Da quale intervallo posso allocare in modo sicuro una porta per l’uso all’interno della mia organizzazione? Tale porta verrà incorporata nei file di configurazione per il servizio e per i client che stanno consumando il servizio.

Scegli un numero di porta da 49152 a 65535.

IANA pubblica un elenco di porte attualmente assegnate.

http://www.iana.org/assignments/port-numbers

Le porte dinamiche e / o private sono quelle da 49152 a 65535. Questo è l’intervallo da cui DOVREI scegliere una porta per le tue applicazioni interne. Ovviamente è ansible utilizzare qualsiasi porta appartenente a uno degli intervalli non assegnati nell’elenco pubblicato. Ma sappi che selezionando un numero di porta da quelle gamme non assegnate non c’è alcuna garanzia che la porta che scegli non sarà una porta riservata in futuro.

I NUMERI DI PORTA NON ASSEGNATI NON DEVONO ESSERE UTILIZZATI. LA IANA ASSEGNA IL NUMERO PER LA PORTA DOPO CHE LA TUA DOMANDA È STATA APPROVATA.

E assicurati che il numero di porta che scegli sia configurabile come hai dichiarato:

Tale porta verrà incorporata nei file di configurazione per il servizio e per i client che stanno consumando il servizio.

Questo eviterà mal di testa nel caso in cui alcuni altri software di terze parti che non puoi toccare utilizzino il tuo numero di porta. Se ciò accade, vai avanti e modificalo sul file di configurazione e funziona.

Le porte 0-1023 sono le porte ben note e vengono assegnate da IANA. Questi dovrebbero essere usati solo per i protocolli assegnati su reti pubbliche.

Le porte 1024-65535 si chiamavano numeri di porta registrati (vedere rfc1700 ) ma ora sono divise in due aree (vedi rfc6335 ).

Le porte 1024-49151 sono le porte utente e sono quelle da utilizzare per i propri protocolli.

Le porte 49152-65535 sono le porte dinamiche e non dovrebbero essere prescritte a un protocollo.

Le Porte Utente possono essere utilizzate per qualsiasi protocollo, ma esiste un numero finito, quindi il tuo uso si scontrerà con qualcun altro su qualche rete. IANA conserva una registrazione dei numeri di porta registrati (0-49151). Se il tuo protocollo verrà utilizzato su reti pubbliche, dovrai verificare la registrazione con IANA. Se la si utilizza solo all’interno della propria rete, selezionare una porta in quest’area (1024-49151) e controllare tale porta con il registro IANA per assicurarsi che non venga utilizzata da un protocollo che potrebbe essere utilizzato sulla rete. Per uso privato è probabilmente meglio scegliere un numero che viene assegnato a un protocollo che si sa non verrà utilizzato piuttosto che sceglierne uno non assegnato e quindi assegnarlo in futuro.

Non utilizzare un numero di porta all’interno della gamma dynamic. Queste porte sono assegnate dal sistema operativo, in modo dinamico e in qualche modo casuale. Se apri una connessione client (usando bind () con port = 0) ti verrà assegnata una porta non utilizzata dall’intervallo dinamico. Non c’è modo di garantire che una porta in questo intervallo sia sempre libera per il tuo protocollo.

Oltre agli altri suggerimenti su come scegliere una porta di applicazione comune, ti suggerisco di rendere la porta configurabile all’interno della tua applicazione. I numeri di porta hard codificati sono una ctriggers idea, in particolare se in seguito trovi un conflitto di porte con un’altra applicazione e devi modificare il tuo.

Risposta breve: Evitare qualsiasi cosa fino a 1023 compreso, o oltre il 49152, e testare la porta scelta rispetto ai servizi sulla rete.

Se hai preso le precauzioni ragionevoli che sembra che tu abbia (inserendo il numero di porta in un file di configurazione), non dovrebbe esserci un’interruzione enorme se in seguito scoprirai un conflitto.

Ma (in modo che io possa aggiungere qualcosa agli altri suggerimenti che sono spuntati mentre sto scrivendo) assicurati di rendere più facile il cambiamento! Se è nei file di configurazione, rendilo evidente. Documentalo e indicalo nella risoluzione dei problemi. È il tipo di cosa che potrebbe andare storta, quindi semplificare il debug se è necessario cambiarlo.

Ecco una buona lista di porte di applicazioni comuni . Fai la tua scelta in uno spazio vuoto. Forse dovresti anche scansionare la tua rete per qualsiasi applicazione speciale interna.

Sono disponibili porte con numeri elevati e le suggerirei ma potrebbero essere bloccate dai firewall.

Come nota, ricordarsi di controllare tali porte con netstat / a / n per vedere se è utilizzata da un’altra applicazione o meno. Ho scoperto che Vista utilizzava il 49152 …. per qualche motivo a livello di applicazione. Fondamentalmente, poiché la maggior parte dei listener di sistema non implementa la condivisione delle porte è molto più sicuro usare quelle porte che non sono affatto usate.

buona giornata di programmazione AMIR