注意:我已经开启和关闭防火墙测试了这个。 这是所有远程服务器到服务器代码(没有浏览器)。 我在centos7上使用ws。
我在我的好网站上使用https.server
的websocket(good.com,其IP是77.77.777.7).listen(8000,'good.com')
并且成功地允许了good.com' s客户和bad.com的客户与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要求打开websocket到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')
然后good.com超时而bad.com的websocket连接但是,在我的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 localhost而不是66.66.666.6'。
或某种node.js设置文件(?)更喜欢在localhost而不是ip下运行应用程序。
我不认为这个问题与Why is Node.js app accessible only from 127.0.0.1/localhost?
有关但我认为这与Cannot run my Node.Js app with my machine's IP address, but can with localhost
有关答案 0 :(得分:0)
两个网站的正确代码均为listen(8000,'0.0.0.0')
!问题是在良好的站点上禁用了POODLE攻击,因此坏站点无法连接
在/etc/httpd/conf.d/ssl.conf
中我评论了SSLProtocol all -SSLv2 -SSLv3