我无法使用网络套接字来运行我的应用程序。
我有一个网站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 :(得分: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
很难说这些小信息。不要在服务器日志中出现任何错误吗?