GNU/Linux >> Linux Esercitazione >  >> Linux

Come selezionare un numero di porta statico per un'app personalizzata?

Se non puoi prevedere il tipo esatto di ambiente che verrà eseguito dalla tua applicazione, non preoccuparti di questo. Scegli qualsiasi numero superiore a 1024 e rendilo configurabile in modo che l'utente possa modificarlo in caso di conflitto con un altro servizio/applicazione.

Ovviamente puoi ancora evitare porte molto comuni come 8080 (HTTP alternativo) o 3128 (proxy come squid), 1666 (per forza), ecc. Puoi controllare un elenco completo di porte conosciute qui o dare un'occhiata a /etc/services .


Se non ti interessa il numero di porta e non ti importa che cambi ogni volta che il tuo programma viene eseguito, semplicemente non associare la porta prima di ascoltarla (o associare con la porta 0, se vuoi associare un indirizzo IP specifico). In entrambi i casi, stai dicendo al sistema operativo di scegliere una porta libera per te.

Dopo aver iniziato ad ascoltare, usa getsockname per scoprire quale porto è stato scelto. Puoi scriverlo su un file, visualizzarlo sullo schermo, farlo ereditare da un bambino tramite fork , ecc.


Per un'applicazione statica, valuta la possibilità di selezionare /etc/services per trovare una porta che non entri in collisione con nient'altro che stai usando e che non sia di uso comune altrove.

$ tail /etc/services
nimspooler      48001/udp                       # Nimbus Spooler
nimhub          48002/tcp                       # Nimbus Hub
nimhub          48002/udp                       # Nimbus Hub
nimgtw          48003/tcp                       # Nimbus Gateway
nimgtw          48003/udp                       # Nimbus Gateway
com-bardac-dw   48556/tcp                       # com-bardac-dw
com-bardac-dw   48556/udp                       # com-bardac-dw
iqobject        48619/tcp                       # iqobject
iqobject        48619/udp                       # iqobject

Linux
  1. Come installare pandom:un vero generatore di numeri casuali per Linux

  2. Come creare un ciclo for con un numero variabile di iterazioni?

  3. Come specificare un completamento automatico personalizzato per comandi specifici?

  4. Pkexec:come impostare un timeout personalizzato per Auth_admin_keep durante la scrittura di una politica Pkexec?

  5. Come configurare il desktop per un indirizzo IP statico?

Bash For Loop

Come controllare le porte di ascolto in Linux (porte in uso)

Come trovare il numero di porta di un servizio in Linux

Come eseguire il ping di un numero di porta in Linux

Come eseguire il ping di un numero di porta specifico

Procedura:porta RDP personalizzata in Windows 2012