带代理的Websockets

时间:2016-11-29 15:49:46

标签: proxy websocket

我无法使用网络套接字来运行我的应用程序。

我有一个网站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"。

我想这与安全性有关,但我不知道到底是什么。请帮忙。

1 个答案:

答案 0 :(得分:0)

也许websocket服务器看到Origin HTTP标头中的域与Host 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

很难说这些小信息。不要在服务器日志中出现任何错误吗?