You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7下WebRTC视频会议APP仅防火墙关闭时可用,排查受阻内容

排查CentOS 7 Firewalld阻挡WebRTC/TURN服务的步骤

我来帮你一步步拆解这个问题——这种“按指南开了端口但防火墙一启用就失效”的情况,大概率是漏掉了UDP端口范围、规则没正确生效,或者没通过日志定位到具体被挡的流量。下面是针对你的场景的具体排查方法:


1. 先确认Firewalld的规则是否真的生效

首先得核实你配置的端口/服务有没有被正确加入firewalld的规则里,尤其是永久规则(临时规则重启firewalld就会消失):

  • 查看当前生效的所有规则:
    firewall-cmd --list-all
    
    重点看ports和services字段,确认包含以下内容:
    • WebRTC/Openvidu需要的基础端口(比如80、443 TCP)
    • Coturn的默认端口(3478 TCP/UDP)
    • Coturn配置里指定的UDP端口范围(比如默认的49152-65535,如果你改了配置要对应调整)
  • 对比永久规则(避免临时规则误导):
    firewall-cmd --list-all --permanent
    
    如果永久规则里缺少需要的端口,补加后记得重载firewalld:
    firewall-cmd --reload
    

2. 开启Firewalld拒绝日志,精准定位被挡流量

这是最有效的排查手段——直接看firewalld到底拒绝了哪些流量:

  • 临时开启拒绝日志(重启firewalld后失效,适合临时排查):
    firewall-cmd --set-log-denied=all
    
    如果要永久生效,加--permanent再重载:
    firewall-cmd --set-log-denied=all --permanent
    firewall-cmd --reload
    
  • 实时监控日志:
    journalctl -u firewalld -f
    
    或者查看系统日志里的拒绝记录:
    grep "REJECT" /var/log/messages
    
    当你尝试发起视频会议时,日志里会显示类似REJECT的条目,里面包含源IP、目的IP、端口、协议(UDP/TCP),这就是被防火墙阻挡的具体内容。

3. 检查Firewalld的Zone配置

Firewalld的规则是按Zone划分的,如果你把端口加错了Zone,或者网卡不在目标Zone里,流量还是会被挡:

  • 查看当前活跃的Zone和对应的网卡:
    firewall-cmd --get-active-zones
    
    确保你的公网网卡(比如eth0或ens33)在你配置规则的Zone里(通常是public)。
  • 如果网卡不在正确的Zone,调整它:
    firewall-cmd --zone=public --add-interface=eth0 --permanent
    firewall-cmd --reload
    

4. 测试端口的连通性

从外部机器(比如你的本地电脑)测试关键端口的连通性,确认是防火墙的问题:

  • TCP端口测试(比如3478、443):
    telnet your-server-public-ip 3478
    
  • UDP端口测试(WebRTC和TURN主要依赖UDP):
    服务器端先监听端口:
    nc -ul 3478
    
    外部机器发送测试数据:
    nc -u your-server-public-ip 3478
    
    输入任意内容,看服务器端能不能收到——如果收不到,说明UDP流量被防火墙挡了。

5. 排查是否有其他防火墙规则干扰

Firewalld底层基于iptables,有时候可能存在手动添加的iptables规则或者其他安全工具干扰:

  • 查看当前iptables的所有规则:
    iptables -L -n -v
    
    看有没有DROP或REJECT规则在Firewalld的规则之前,导致流量被提前拦截。如果有,清理掉手动添加的规则(注意不要误删Firewalld的规则)。

6. 验证Coturn的配置是否匹配

虽然你说关防火墙就正常,但还是可以快速排除Coturn的配置问题:

  • 检查Coturn配置文件(通常是/etc/turnserver.conf)里的external-ip是否设置为服务器的公网IP,listening-ip是否为0.0.0.0或对应网卡的IP。如果Coturn返回内部IP给客户端,即使端口开了也会无法连接。

内容的提问来源于stack exchange,提问作者wrufesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:02:44