Javascript Node.js websocket错误“;错误:侦听EADDRNOTAVAIL错误:侦听EADDRNOTAVAIL";
应用程序在本地主机上工作正常。但当它连接到服务器时,会出现错误。Javascript Node.js websocket错误“;错误:侦听EADDRNOTAVAIL错误:侦听EADDRNOTAVAIL";,javascript,node.js,websocket,ubuntu-server,total.js,Javascript,Node.js,Websocket,Ubuntu Server,Total.js,应用程序在本地主机上工作正常。但当它连接到服务器时,会出现错误。 我通过端口22连接服务器 这就是错误所在 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
我通过端口22连接服务器 这就是错误所在
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 | grep22
结果:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 683/sshd
tcp6 0 0 :::22 :::* LISTEN 683/sshd
但是我运行的是netstat-tulpn | grep80
没有显示任何内容
有什么帮助吗?这是服务器故障吗
正在运行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
端口22是为ssh保留的,在已知端口列表中,请检查
我建议您在端口8000-9000上运行节点应用程序进行开发,但您可以使用注册端口范围内的任何端口。我认为您使用的是基于Unix的操作系统,如果是这种情况,则在没有sudo访问的情况下,您不能使用1024以下的任何端口 此外,在挖掘太深之前,请检查侦听端口是否未被任何其他进程使用 快速修复(仅用于开发):
或sudo节点文件.js
server.listen(3000);//任何大于1024的数字
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
您正在使用已使用的端口。您必须更改端口,或者必须终止正在侦听端口的进程。打开终端并写入(示例):
lsof-i:22
或lsof-i:80
或lsof-i:8000
和kill PID
如何更改total.js中的侦听端口
默认ip:127.0.0.1
默认端口:8000
或
//例如Heroku
默认ip:自动
默认端口:自动
谢谢和文档:今天刚看到这个。用户在其
/etc/hosts
文件中注释掉了127.0.0.1 localhost
,另一个网络服务正在将localhost
解析为与用户机器无关的其他IP地址
解决方案是将此行添加到/etc/hosts
127.0.0.1 localhost
如果只是在多次请求后才出现此错误,则可能需要检查端口范围设置并进行调整。还有TCP超时设置,例如FIN_WAIT,它可以使连接保持比预期更长的打开时间
sysctl-a | grep net
应显示所有网络连接设置
sysctl-a | grep端口
用于端口范围设置
sysctl-a | grep keep
用于tcp等待设置
和(mac)了解有关设置的更多详细信息/建议
如果要修改设置,我建议您首先将/etc/sysctl.conf
复制到类似/etc/sysctl.conf.bak
的文件中,然后修改该文件中的设置。它们可以通过命令行进行调整,但这是临时的,重置它们可能会造成混乱
你可能不想在生产中这样做
其他文件:
如何更改端口?putty不允许我将端口80连接到端口22上的putty,因为它是ssh端口,但您的节点应用程序应该使用其他端口。是的。我的节点应用程序使用端口80。但是它不断地得到这个错误“netstat-tulpn | grep:80”的输出是什么将这个输入到ssh控制台请在您的问题中提供一些源代码,如果没有它,我无法进一步帮助您。您到底想做什么?@ravi-我尝试将应用程序连接到服务器。应用程序在本地主机上运行良好。但连接服务器时,它会出现这些错误<代码>https://github.com/totaljs/examples/tree/master/angularjs-websocket这就是项目。如果您只向我们显示您的服务器文件代码,会更容易。如果您使用的是
https://github.com/totaljs/examples/tree/master/angularjs-websocket
不进行任何修改,直接使用默认端口8000。尝试连接到服务器的公共IP,例如,http://:8000
。对于端口使用测试,lsof-i:8000
谢谢你的回答。但是我只使用windows操作系统。我的服务器只有ubuntu。windows的任何帮助:)我在服务器上运行了您的ip tableing命令,但没有发生任何事情。。我的服务器有问题吗?@mahmoud mahfouz-然后您可以提供解决方案。pleaseEADDRNOTAVAIL(地址不可用)是Linux错误。这意味着TCP连接无法完成。当端口正在使用或不可访问时(例如:端口<1024)会发生这种情况。要检查端口是否正在使用,请使用netstat-pn | grep:port_NUMBER
,要使用<1024的端口,请使用sudo或port forward,使用iptables@Sameera我想你是在问如何将文件上传到服务器。如果是这样的话:您可以使用FTP(),或者您可以将代码添加到git并在服务器上拉取它。
// for development:
require('total.js').http('debug', { port: 8000 });
// or for production:
require('total.js').http('release', { port: 8000 });
127.0.0.1 localhost