[英]Node.js websocket server seems confused about it's ip
注意: 我已经在启用和禁用防火墙的情况下对此进行了测试。 这是所有远程服务器到服务器的代码(没有浏览器)。 我在centos7上使用ws 。
我在我的优质网站(good.com,其IP为77.77.777.7)上使用https.server
websocket执行.listen(8000,'good.com')
并成功允许good.com的客户和bad.com的客户与new ws(wss://good.com:8000)
连接new ws(wss://good.com:8000)
在我的good.com服务器代码中,我得到了ips
77.77.777.7 connected
66.66.666.6 connected
在good.com的终端中输入
netstat ltn
tcp 0 0 77.77.777.7:8001 0.0.0.0:* LISTEN
预计会发生!
但是,然后我的行为异常的网站(bad.com的IP为66.66.666.6)具有相同的代码。 bad.com会执行.listen(8000,'bad.com')
而任何客户端都会执行new ws(wss://bad.com:8000)
在我的bad.com服务器代码中,我得到了ips
127.0.0.1 connected
...当good.com要求打开bad.com的网络套接字的请求超时时! 所以我在bad.com的终端中输入
netstat ltn
tcp 0 0 127.0.0.1:8001 0.0.0.0:* LISTEN
如果我强制bad.com的监听为.listen(8000,'66.66.666.6')
然后good.com超时,而bad.com出现Error: connect ECONNREFUSED 127.0.0.1:8000
或者,如果我强制bad.com的监听为.listen(8000,'0.0.0.0')
然后,当bad.com的websocket连接时,good.com超时,但是,在我的bad.com服务器代码中,我得到了ips
127.0.0.1 connected
和坏的.coms netstat ltn
显示
tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN
最后,如果我收听时没有任何ip .listen(8000)
那么good.com的客户端会超时,但是bad.com的客户端会以ip连接
::ffff:127.0.0.1 connected
和坏的.coms netstat ltn
显示
tcp6 0 0 :::8001 :::* LISTEN
我认为可能正在发生
在Apache中可能未正确配置的某件事告诉bad.com“您的名称是127.0.0.1本地主机,而不是66.66.666.6”。
或某种node.js设置文件(?)更喜欢在localhost而不是ip下运行应用程序。
我认为此问题与以下问题无关: 为什么只能从127.0.0.1/localhost访问Node.js应用程序?
两个站点的正确代码是listen(8000,'0.0.0.0')
! 问题是在好站点上禁用了POODLE攻击,因此坏站点无法连接
在/etc/httpd/conf.d/ssl.conf中
我SSLProtocol all -SSLv2 -SSLv3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.