簡體   English   中英

Node.js Websocket服務器似乎對其ip感到困惑

[英]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應用程序?

但是我確實認為這與無法使用計算機的IP地址運行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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM