javascript - Node.js websocket error "Error: escucha EADDRNOTAVAIL Error: escucha EADDRNOTAVAIL"




ubuntu-server total.js (3)

La aplicación funciona bien en localhost. Pero cuando se conecta al servidor obtiene un error.
Conecto el servidor a través del puerto 22

Este es el error

Error: listen EADDRNOTAVAIL Error: listen EADDRNOTAVAIL
at errnoException (net.js:904:11)
at Server._listen2 (net.js:1023:19)
at listen (net.js:1064:10)
at net.js:1146:9
at dns.js:72:18
at process._tickCallback (node.js:419:13)
at Function.Module.runMain (module.js:499:11)
at startup (node.js:119:16)
at node.js:906:3

Alguna ayuda !!!

-actualizar-

ejecuto netstat -tulpn | grep 22 netstat -tulpn | grep 22

Resultado:

 tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      683/sshd
 tcp6       0      0 :::22                   :::*                    LISTEN      683/sshd

pero ejecuto netstat -tulpn | grep 80 netstat -tulpn | grep 80

Nada de pantalla.

Cualquier Ayuda. ¿Es culpa de este servidor?

ejecutando netstat -nlt

     Active Internet connections (only servers)
     Proto Recv-Q Send-Q Local Address           Foreign Address         State
     tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN
     tcp        0      0 127.0.0.1:5901          0.0.0.0:*               LISTEN
     tcp        0      0 127.0.0.1:5902          0.0.0.0:*               LISTEN
     tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN
     tcp        0      0 0.0.0.0:6002            0.0.0.0:*               LISTEN
     tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
     tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
     tcp6       0      0 :::22                   :::*                    LISTEN
     tcp6       0      0 ::1:631                 :::*                    LISTEN

Ejecutando netstat -anp | grep :80 netstat -anp | grep :80

     tcp        1      0 162.243.145.226:60728   91.189.94.25:80         CLOSE_WAIT  1726/ubuntu-geoip-p
     tcp        1      0 162.243.145.226:47842   74.125.239.148:80       CLOSE_WAIT  8104/epiphany-brows
     tcp        1      0 162.243.145.226:60727   91.189.94.25:80         CLOSE_WAIT  1417/ubuntu-geoip-p
     tcp        1      0 162.243.145.226:58818   198.41.30.199:80        CLOSE_WAIT  8104/epiphany-brows

Creo que está utilizando un sistema operativo basado en Unix, si ese es el caso, entonces no puede usar ningún puerto por debajo de 1024 sin acceso sudo.

Además, antes de excavar demasiado, compruebe que el puerto de escucha no esté siendo utilizado por ningún otro proceso.

Una solución rápida (solo para desarrollo):

  • sudo node file.js o
  • server.listen(3000); // any number > 1024

Para producción (nunca ejecute el nodo en producción con acceso raíz).

debe mapear el puerto de escucha (por ejemplo: 3000) a 80 usando tablas ip

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000


Acabo de ver esto hoy. El usuario había comentado 127.0.0.1 localhost en su /etc/hosts , y otro servicio de red estaba resolviendo localhost en una dirección IP diferente no asociada con la máquina del usuario.

La solución fue agregar esta línea a /etc/hosts

127.0.0.1 localhost




total.js