WebSocket-Sharp 不响应公共 IP 地址

Posted

技术标签:

【中文标题】WebSocket-Sharp 不响应公共 IP 地址【英文标题】:WebSocket-Sharp doesn't respond to public IP address 【发布时间】:2020-10-14 19:12:32 【问题描述】:

我在公共互联网 IP 上托管 WebSocket-Sharp 时遇到问题。在本地它工作正常。 此问题发生在 Windows 和 Linux 上。 我没有收到超时或 HTTP 状态代码,页面立即阻塞。 我 99% 确定我正确设置了端口转发;我已经尝试过使用 android 调制解调器、*** 和常规 NAT 路由器设置。

我尝试了以下组合:

192.168.1.2:80 8080 5000 39393

0.0.0.0: ....

公共IP:....

【问题讨论】:

明天有资格获得赏金,但我今天要为你付款 问题是不安分 这个information 可能有用 请确保端口 10000% 开放!使用在线端口检查器查看它们是否打开! @RobotRock:F12 调试器在浏览器中的输出是什么?您是在本地计算机上还是在服务器上进行测试?你有防火墙激活吗?通过监听例如仔细检查端口可访问性网猫。 【参考方案1】:

问题在于 WebsScketSharp 提供的 HttpServer。纯 websocket 变体 (WebSocketServer.cs),而不是具有 Get 功能的 HttpServer 选项,具有将 AllowForwardedRequest 设置为 true 的选项,因此可以从非 localhost 地址访问。 HttpServer 类不支持这一点。 这是部分解决方案,因为我放弃了常规的 GET 功能,但我没问题。

【讨论】:

【参考方案2】:

好的,假设您的公共 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

干杯

【讨论】:

以上是关于WebSocket-Sharp 不响应公共 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章

如何通过公共 IP 地址访问我的 node.js 服务器?

使用websocket-sharp

如何查找 Service Fabric Mesh 服务的公共 IP 地址

websocket-sharp 如何使用 socketio 服务器并发送“emit”请求

AWS EC2 Windows实例无法通过公共IP访问

使用 WebSocket-Sharp 和 IBM Watson TTS 时出现“接收二进制数据之前需要 JSON 标头消息”错误