GNU/Linux >> Tutoriales Linux >  >> Linux

Enlace fallido:la dirección ya está en uso

Todo el mundo tiene razón. Sin embargo, si también está ocupado probando su código propio la aplicación aún podría "poseer" el socket si se inicia y se detiene con relativa rapidez. Prueba SO_REUSEADDR como opción de socket:

¿Qué hace exactamente SO_REUSEADDR?

Esta opción de socket le dice al kernel que incluso si este puerto está ocupado (en el estado TIME_WAIT), continúe y reutilícelo de todos modos. Si está ocupado, pero con otro estado, seguirá recibiendo un error de dirección que ya está en uso. Es útil si su servidor se apagó y luego se reinició de inmediato mientras los sockets aún estaban activos en su puerto. Debe tener en cuenta que si ingresa algún dato inesperado, puede confundir a su servidor, pero si bien esto es posible, no es probable.

Se ha señalado que "Un socket es una tupla de 5 (proto, dirección local, puerto local, dirección remota, puerto remoto). SO_REUSEADDR simplemente dice que puede reutilizar direcciones locales. ¡La tupla de 5 debe ser única!" por Michael Hunter ([email protected]). Esto es cierto, y por eso es muy poco probable que su servidor vea datos inesperados. El peligro es que una tupla de 5 todavía está flotando en la red, y mientras rebota, una nueva conexión del mismo cliente, en el mismo sistema, obtiene el mismo puerto remoto. Esto lo explica Richard Stevens en ``2.7 Explique el estado TIME_WAIT''.


Tiene un proceso que ya está usando ese puerto. netstat -tulpn permitirá encontrar el ID de proceso que está utilizando un puerto en particular.


Linux
  1. Cómo usar el bloqueador de IP en cPanel

  2. Falló el enlace al puerto 22 en 0.0.0.0:la dirección ya está en uso:error al iniciar el servicio sshd CentOS/RHEL

  3. Error:la dirección ya está en uso al vincular el socket con la dirección, pero `netstat` muestra el número de puerto libre

  4. Android Studio:la sincronización de Gradle falló:ya se eliminó

  5. ¿Es posible hacer ping a una dirección:puerto?

Cómo utilizar el reenvío de puertos SSH

Cómo comprobar los puertos de escucha en Linux (Puertos en uso)

Cómo usar los comandos de Netcat con ejemplos

Cómo usar Netcat para escanear puertos abiertos en Linux

Debian 9:¿la dirección de Io ya está en uso? ¿No puede arrancar?

Cómo y por qué usar Linux para instalar Telnet