WebSocket-Sharp不响应公共IP地址

问题描述

我在公共Internet IP上托管WebSocket-Sharp时遇到问题。在本地它工作正常。 在Windows和Linux上会发生此问题。 我没有收到超时或HTTP状态代码,该页面立即被阻止。 我有99%的把握确定端口转发设置正确;我已经尝试过使用Android调制解调器,VPN和常规的NAT路由器设置。

我尝试了以下组合:

192.168.1.2:80 8080 5000 39393

0.0.0.0:....

公共IP:....

解决方法

问题出在WebsScketSharp随附的HttpServer中。纯websocket变体(WebSocketServer.cs),而不是具有Get功能的HttpServer选项,具有将AllowForwardedRequest设置为true的选项,因此可以从非本地主机地址访问。 HttpServer类不支持此功能。 当我放弃常规的GET功能时,这部分是一种解决方案,但是我觉得很好。

,

好吧,假设您具有公开IP地址的服务器是Linux:

  1. 检查正在监听的端口和正在监听的程序
netstat -tulpn
  1. 在提供商和服务器中检查防火墙规则
sudo ufw status
  1. 查看是否已连接到服务器
sudo tcpdump

您可以过滤源IP的端口(如果使用的代理将是不同的IP)。

sudo tcpdump | grep "80\|123.45.67.89"

这是查看数据包是否进入服务器的唯一方法。

如果您认为使用Docker有点不同,请告诉我。

  1. 您可以创建一个隧道,然后尝试使用本地隧道
ssh -L 80:123.45.67.89:80 ubuntu@yourserver.com

欢呼

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...