Node.js websocket“错误:监听 EADDRNOTAVAIL”

Node.js websocket“错误:监听 EADDRNOTAVAIL”

应用程序在本地主机上运行良好。但当它连接到服务器时出现错误。我通过端口 22 连接服务器

但是我的应用程序连接服务器端口80。

这是错误

 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

我跑netstat -tulpn | grep 22

结果:

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

但我跑了netstat -tulpn | grep 80

无任何显示。

有任何帮助吗?这是服务器故障吗?

跑步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

跑步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

这是来源

源链接

答案1

您是否以 root 身份运行该程序?

如果您不是以 root 身份运行,则您无法将任何程序绑定到 1024 以下的端口。它们被视为特权端口,只有 root 可以使用它们。

如果您想以 root 身份运行,请不要这样做。如果有人利用您的程序并获得 shell,并发现它是 root shell,则以 root 身份运行可能会产生问题。

以非特权用户身份运行,并将端口从 80 更改为 1024 以上的端口。

答案2

man 7 ip

ERRORS
       ...

       EADDRNOTAVAIL
              A  nonexistent  interface  was  requested  or  the  requested source
              address was not local.

您可能在配置中错误输入了要绑定的监听 IP 地址。

相关内容