Soluzione 1:
(2^16)-1 o 0-65.535 (il -1 è dovuto al fatto che la porta 0 è riservata e non disponibile). (modificato perché o_O Tync mi ha ricordato che non possiamo usare la porta 0, e Steve Folly mi ha ricordato che hai chiesto la porta più alta, non il numero di porte)
Ma probabilmente stai affrontando la cosa nel modo sbagliato. Ci sono persone che discutono a favore e contro i porti non standard. Dico che sono irrilevanti tranne che per lo scanner più occasionale, e lo scanner più casuale può essere tenuto a bada utilizzando software aggiornati e tecniche di firewall adeguate, insieme a password complesse. In altre parole, le migliori pratiche di sicurezza.
Soluzione 2:
1-65535 sono disponibili e le porte nell'intervallo 1-1023 sono le privilegiate quelli:un'applicazione deve essere eseguita come root per ascoltare queste porte.
Soluzione 3:
Sebbene 1-65535 siano porte TCP legittime ed è vero che 1-1023 sono per servizi portuali ben noti. Potresti incorrere in problemi casuali con i tuoi servizi se vengono avviati dopo che è stata stabilita una porta temporanea. Per coloro che potrebbero non saperlo, le porte effimere sono quelle che sono connesse localmente per endpoint remoti (o qualcosa del genere). Quindi, se scrivi un servizio TCP che ascolta sulla porta 20001. Potresti essere bravo oggi... e domani. Ma un giorno il tuo servizio potrebbe avviarsi e tentare di collegarsi a 20001 e fallirà perché è stato preso come porta effimera. C'è una soluzione. Devi chiedere al tuo amministratore o a te stesso di modificare la politica dell'intervallo di porte effimere del sistema sul tuo server. Sui sistemi Linux è fatto in due passi:
- Dinamicamente
- Permanentemente
Entrambi i passaggi devono essere eseguiti, a meno che non si preveda di riavviare (nel qual caso il passaggio Dinamico non è necessario). Per impostare il tuo intervallo fino a 40000 fino a 65535, procedi come segue:
Dinamico
echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range
o
sysctl -w net.ipv4.ip_local_port_range="40000 65535"
Permanente
Aggiungi quanto segue a /etc/sysctl.conf:
net.ipv4.ip_local_port_range = 40000 65535
Per leggere l'impostazione corrente o per confermare la modifica:
/sbin/sysctl net.ipv4.ip_local_port_range
L'output sarà simile a questo:
net.ipv4.ip_local_port_range = 9000 65500
Assicurati di aver compreso lo scopo del tuo server. Ridurre troppo l'intervallo può portare ad altri problemi.
Buona programmazione! (o qualunque cosa tu faccia)