我在公共Internet IP上托管WebSocket-Sharp时遇到问题。在本地它工作正常。 在Windows和Linux上会发生此问题。 我没有收到超时或HTTP状态代码,该页面立即被阻止。 我有99%的把握确定端口转发设置正确;我已经尝试过使用Android调制解调器,VPN和常规的NAT路由器设置。
我尝试了以下组合:
192.168.1.2:80 8080 5000 39393
0.0.0.0:....
公共IP:....
答案 0 :(得分:0)
问题出在WebsScketSharp随附的HttpServer中。纯websocket变体(WebSocketServer.cs),而不是具有Get功能的HttpServer选项,具有将AllowForwardedRequest设置为true的选项,因此可以从非本地主机地址访问。 HttpServer类不支持此功能。 当我放弃常规的GET功能时,这部分是一种解决方案,但是我觉得很好。
答案 1 :(得分:-1)
好吧,假设您具有公开IP地址的服务器是Linux:
netstat -tulpn
sudo ufw status
sudo tcpdump
您可以过滤源IP的端口(如果使用的代理将是不同的IP)。
sudo tcpdump | grep "80\|123.45.67.89"
这是查看数据包是否进入服务器的唯一方法。
如果您认为使用Docker有点不同,请告诉我。
ssh -L 80:123.45.67.89:80 ubuntu@yourserver.com
欢呼