Windows Server 2019防火墙如何正确配置才能允许WebSocket连接?

兄弟姐妹们在线分析下,Windows Server 2019防火墙如何正确配置才能允许WebSocket连接?
最新回答
女爷

2022-03-18 10:55:07

在Windows Server 2019上正确配置防火墙以允许WebSocket连接,需重点关注端口放行、规则优先级及网络配置文件匹配,具体操作如下:

  • 确认WebSocket服务端口明确WebSocket服务使用的端口号(如示例中的7076),确保该端口在服务端和客户端配置中一致。

  • 放行目标端口通过Windows防火墙高级安全设置添加入站规则:

    打开“控制面板” → “系统和安全” → “Windows Defender 防火墙” → “高级设置”。

    右键“入站规则” → “新建规则”,选择“端口”,指定WebSocket服务端口(如7076)。

    选择“允许连接”,勾选“域”“专用”“公开”三个网络配置文件(或根据实际环境选择)。

    为规则命名(如“Allow WebSocket 7076”),完成创建。

  • 检查规则优先级

    在防火墙高级设置中,点击“入站规则”,按“优先级”排序。

    确保允许WebSocket端口的规则优先级高于其他可能阻止该端口的规则(如默认的“阻止所有入站连接”规则)。

    若存在冲突规则,可调整优先级或删除冲突规则。

  • 匹配网络配置文件

    确认服务器当前使用的网络配置文件(域/专用/公开):

    通过“设置” → “网络和Internet” → “状态” → 查看当前网络类型。

    确保防火墙规则中允许WebSocket端口的配置文件与当前网络类型一致。例如,若服务器在专用网络中,规则需勾选“专用”配置文件。

  • 验证规则生效

    使用netstat -ano | findstr 7076命令检查端口是否处于监听状态。

    通过客户端尝试连接WebSocket服务(如ws://服务器IP:7076/路径),观察是否成功建立连接。

    若仍失败,检查系统日志(“事件查看器” → “Windows日志” → “系统”)或防火墙日志(在防火墙高级设置中启用日志记录)排查具体原因。

  • 其他注意事项

    多网卡环境:若服务器有多个网络适配器,需确保规则适用于所有相关网卡。

    第三方防火墙:检查是否安装了其他防火墙软件(如企业级安全工具),可能覆盖Windows防火墙规则。

    动态端口:若WebSocket服务使用动态端口,需配置范围端口规则或通过应用层网关(ALG)支持。

常见问题处理

  • 放行端口后仍无法连接

    检查规则是否同时应用于“入站”和“出站”(通常WebSocket仅需入站规则,但某些场景需双向)。

    确认服务进程(如Java)是否以管理员权限运行,避免权限不足导致防火墙拦截。

  • 规则配置正确但间歇性断连

    检查网络设备(如路由器、交换机)是否限制了WebSocket长连接或特定端口流量。

    调整防火墙“超时设置”(默认TCP连接超时可能影响长连接),通过组策略修改HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicyStandardProfile下的DefaultInboundAction和DefaultOutboundAction值(需谨慎操作)。

通过以上步骤,可系统化解决Windows Server 2019防火墙对WebSocket连接的拦截问题,确保服务稳定运行。