![Node.js websocket 错误“错误:监听 EADDRNOTAVAIL 错误:监听 EADDRNOTAVAIL”](https://linux22.com/image/863271/Node.js%20websocket%20%E9%94%99%E8%AF%AF%E2%80%9C%E9%94%99%E8%AF%AF%EF%BC%9A%E7%9B%91%E5%90%AC%20EADDRNOTAVAIL%20%E9%94%99%E8%AF%AF%EF%BC%9A%E7%9B%91%E5%90%AC%20EADDRNOTAVAIL%E2%80%9D.png)
应用程序在本地主机上运行良好,但当它连接到服务器时,会出现下一个错误。
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
我通过端口 22 连接服务器,但我的应用程序通过端口 80 连接服务器。
我运行了一下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
什么也不会显示。
是这个服务器的故障吗?这是源头。
答案1
我认为您没有在端口 80 上操作的权限。请尝试以下操作:
- 将值
default-port
从更改8000
为3000
使用 iptables 将端口 80 中的流量重定向到 3000
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000