Erreur websocket Node.js “Erreur: écouter EADDRNOTAVAIL Erreur: écouter EADDRNOTAVAIL”

L’application fonctionne correctement sur localhost.
Je connecte le serveur via le port 22

C’est l’erreur

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 

De l’aide !!!

-mettre à jour-

je lance netstat -tulpn | grep 22 netstat -tulpn | grep 22

Résultat:

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

mais je lance netstat -tulpn | grep 80 netstat -tulpn | grep 80

Rien afficher.

Any Help.is cette faute de serveur?

en cours d’exécution 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 

Exécution de 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 

    Vous utilisez un port utilisé. Vous devez changer un port ou vous devez arrêter un processus qui écoute sur un port. Ouvrez le terminal et écrivez (exemple): lsof -i :22 ou lsof -i :80 ou lsof -i :8000 et kill PID du processus.


    Comment changer le PORT d’ écoute dans total.js?

    1. dans / app / config ou / app / config-release ou / app / config-debug :
     default-ip : 127.0.0.1 default-port : 8000 

    ou

     // For eg Heroku default-ip : auto default-port : auto 
    1. s’il existe des fichiers: release.js ou 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 seulement index.js
     // for development: require('total.js').http('debug', { port: 8000 }); // or for production: require('total.js').http('release', { port: 8000 }); 

    Merci et documentation: http://docs.totaljs.com

    Je pense que vous utilisez un système d’exploitation basé sur Unix. Si tel est le cas, vous ne pouvez utiliser aucun port en dessous de 1024 sans access sudo.

    Également avant de creuser trop profondément, vérifiez que le port d’écoute n’est utilisé par aucun autre processus.

    Une solution rapide (pour le développement uniquement):

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

    Pour la production (ne jamais exécuter de noeud sur la production avec un access root.)

    vous devez mapper le port d’écoute (ex: 3000) à 80 à l’aide de tables ip

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

    Le port 22 est réservé à ssh et sur la liste des ports bien connus, veuillez consulter http://en.wikipedia.org/wiki/Port_(computer_networking)#Common_port_numbers

    Je vous recommanderais d’exécuter des applications de nœud pour le développement sur les ports 8000 à 9000, mais vous pouvez utiliser n’importe lequel des ports enregistrés.

    Je viens de voir cela aujourd’hui. L’utilisateur avait commenté 127.0.0.1 localhost dans son fichier /etc/hosts et un autre service réseau résolvait localhost en une adresse IP différente, non associée à la machine de l’utilisateur.

    La solution consistait à append cette ligne à /etc/hosts

     127.0.0.1 localhost