GNU/Linux >> Linux Esercitazione >  >> Linux

Binding non riuscito:indirizzo già in uso

Tutti hanno ragione. Tuttavia, se sei anche impegnato a testare il tuo codice da solo l'applicazione potrebbe ancora "possedere" il socket se si avvia e si arresta in tempi relativamente brevi. Prova SO_REUSEADDR come opzione socket:

Cosa fa esattamente SO_REUSEADDR?

Questa opzione socket dice al kernel che anche se questa porta è occupata (nello stato TIME_WAIT), vai avanti e riutilizzala comunque. Se è occupato, ma con un altro stato, otterrai comunque un indirizzo già in errore utente. È utile se il tuo server è stato spento e poi riavviato subito mentre i socket sono ancora attivi sulla sua porta. Dovresti essere consapevole che se arrivano dati imprevisti, potrebbero confondere il tuo server, ma sebbene ciò sia possibile, non è probabile.

È stato sottolineato che "Un socket è una 5 tupla (proto, localaddr, local port, remote addr, remote port). SO_REUSEADDR dice semplicemente che puoi riutilizzare gli indirizzi locali. La 5 tupla deve comunque essere unica!" di Michael Hunter ([email protected]). Questo è vero, ed è per questo che è molto improbabile che dati imprevisti vengano mai visti dal tuo server. Il pericolo è che una tale tupla di 5 stia ancora fluttuando sulla rete, e mentre rimbalza, una nuova connessione dallo stesso client, sullo stesso sistema, capita di ottenere la stessa porta remota. Questo è spiegato da Richard Stevens in ``2.7 Per favore, spiega lo stato TIME_WAIT.''.


Hai un processo che sta già utilizzando quella porta. netstat -tulpn consentirà di trovare l'ID del processo che sta utilizzando una particolare porta.


Linux
  1. Come trovare quale porta seriale è in uso?

  2. Apache 2 non è stato in grado di eseguire il binding, indirizzo già in uso?

  3. Errore:indirizzo già in uso durante l'associazione del socket con l'indirizzo ma il numero di porta è mostrato libero da `netstat`

  4. come utilizzare netstat su una porta specifica in Linux

  5. Posso usare ufw per configurare un port forward?

Come utilizzare il port forwarding SSH

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

Come utilizzare i comandi Netcat con gli esempi

Come utilizzare Netcat per scansionare le porte aperte in Linux

Debian 9 – Indirizzo Io già in uso? Impossibile avviare?

Come e perché usare Linux per installare Telnet