javascript node.js websocket ubuntu-server total.js

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



ubuntu-server total.js (4)

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



Estás usando un puerto usado. Debe cambiar un puerto o debe matar un proceso que esté escuchando en un puerto. Abra el terminal y escriba (ejemplo): lsof -i :22 o lsof -i :80 o lsof -i :8000 y kill PID del proceso.

¿Cómo cambiar el puerto de escucha en total.js?

  1. en / app / config o / app / config-release o / app / config-debug :

default-ip : 127.0.0.1 default-port : 8000

o

// For e.g. Heroku default-ip : auto default-port : auto

  1. si existen archivos: release.js o debug.js :

var fs = require("fs"); var options = {}; // options.ip = "127.0.0.1"; // options.port = parseInt(process.argv[2]); options.port = 8000;

  1. si existe solo index.js

// for development: require(''total.js'').http(''debug'', { port: 8000 }); // or for production: require(''total.js'').http(''release'', { port: 8000 });

Gracias y documentación: http://docs.totaljs.com


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