node.js - 测试客户端是否可以使用端口 80、443、843 连接到 WebSockets

标签 node.js websocket firewall

我正在 Node 服务器上运行 WebSockets 应用程序。一切正常,除了我的应用程序在学校使用,他们的一些防火墙显然阻止了端口 80 上的 WebSockets。我读到一些端口,如 843 通常是畅通的,但我想在进行任何切换之前测试一下。

如何测试打开的 WebSockets 端口?例如从客户端尝试端口 80、443 和 843 并报告​​哪些有效?任何教程或代码片段都会很棒...

最佳答案

我一直在使用 http://websocketstest.com/查看阻止我的 socket.io websockets。我刚刚也遇到了一个场景,其中客户端有一个防火墙阻止端口 80 上的流量。与其坚持让他们跳过箍,我现在在 443 上监听,没有必要为此目的在该端口上使用 SSL。

在 nginx 中,我首先将所有流量重定向到 socket.test.com 端口 80 到端口 443,因此:

server {
    listen              80;
    server_name             socket.test.com;
    rewrite             ^ http://test.com:443$request_uri?;
 }

然后

server {
    listen 443;
    server_name  socket.test.com

    location / {
        proxy_pass http://127.0.0.1:3004;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}

在端口 3004 上,socket.io 服务器正在接受连接。有效!

2018 年更新:感谢 letsencrypt.com,现在添加 https 证书变得微不足道,因此所有这些都可以通过 443 上的加密来完成

关于node.js - 测试客户端是否可以使用端口 80、443、843 连接到 WebSockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22745020/

相关文章:

java - 如何在 Spring 5.3 及更高版本中使用 Stomp 和 SockJS 处理 CORS 起源?

node.js - 根据实际的 node_modules 检查包 json 中的版本

javascript - 如何将lite-server用于nodejs应用程序?

javascript - Mojolicious:我应该使用一个还是多个 websocket?

Javascript Websocket 监听端口 80

ip - 如何将连续的 B ip 类缩小到较大的 ip 类中

c# - NET Framework 是否与 Comodo 服务器通信?

azure - 如何使用虚拟网络保护从应用服务到Azure Sql数据库的访问?

javascript - 错误 "Your cache folder contains root-owned files, due to a bug in previous versions of npm"而 "npx create-react-app example_app"

javascript - 在javascript中的for循环中维护http请求的顺序