2016-11-29 52 views
0

我無法讓我的應用程序利用網絡套接字工作。帶代理的Websockets

我有一個網站www.example.com,它使用反DDoS服務,因此它解析爲IP X.X.X.X.服務器的真實地址是Y.Y.Y.Y.反DDoS服務不會代理網絡套接字流量,所以我想直接將它流式傳輸到真實地址(實際上很難找到它來進行攻擊,所以這會起作用),所以我所做的不是將它指向ws:/ /www.example.com:100/,我指出它是ws:// YYYY:100 /。

現在,如果我的真實IP(http://Y.Y.Y.Y)訪問我的應用程序,它連接到WS:// YYYY:100 /得很好,但如果我使用http://www.example.com鏈接(其解析爲XXXX),WS:// YYYY: 100 /不會連接說「WebSocket連接到'ws:// YYYY:100 /'失敗:連接建立時出錯:net :: ERR_CONNECTION_REFUSED」。

我想這與安全有關,但我不知道究竟是什麼。請幫忙。

回答

0

也許WebSocket的服務器發現的域OriginHost HTTP報頭域不同的HTTP報頭,它是拒絕,因爲該連接。 Origin標題通常用於確定連接是否來自允許的網站,因爲websockets不在同一來源策略下。

的作品看起來像這樣的請求:

GET/HTTP/1.1 
Host: YYYY 
Upgrade: websocket 
Connection: Upgrade 
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== 
Sec-WebSocket-Version: 13 
Origin: http://YYYY 

被拒絕看起來像這樣的請求:

GET/HTTP/1.1 
Host: YYYY 
Upgrade: websocket 
Connection: Upgrade 
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== 
Sec-WebSocket-Version: 13 
Origin: http://www.example.com 

這是很難說與這個小信息。你沒有在服務器日誌中發現任何錯誤嗎?

+0

下面是我抓使用招交通:CONNECT YYYY:100 HTTP/1.1 主持人:YYYY:100 代理連接:保持活動 的User-Agent:Mozilla的/ 5.0(Windows NT的6.3; Win64平臺; 64)爲AppleWebKit /537.36(KHTML,如Gecko)Chrome/54.0.2840.99 Safari/537.36 – user1826208

+0

響應:HTTP/1.1 502 Fiddler - 連接失敗 日期:2016年11月29日16:02:10 GMT Content-Type:text/html;字符集= UTF-8 連接:關閉 緩存控制:無緩存,必須-重新驗證 時間戳:19:02:10.161 [提琴手]爲 'Y.Y.Y.Y' 的連接失敗。
錯誤:ConnectionRefused(0x274d)。
System.Net.Sockets.SocketException由於目標機器主動拒絕它,因此無法建立連接Y.Y.Y.Y:100 – user1826208

+0

服務器日誌中沒有任何內容,這些類型的問題可能會被我使用的框架(Fleck)所抑制。 – user1826208