Server A无法接收Server B 5060端口UDP/SIP流量的问题排查求助
Server A无法接收Server B 5060端口UDP/SIP流量的问题排查求助
大家好,我遇到了一个UDP/SIP流量双向传输的问题,折腾了好一阵没搞定,想请各位大佬帮忙分析下:
我需要让Server A和Server B之间的5060端口(UDP/SIP)实现双向流量通行,目前用netcat做了几轮测试,情况如下:
1. UDP连通性扫描测试(双向均成功)
- Server A 到 Server B 的扫描:
[yy-user@yy-yy-01q scenarios]$ nc -v -u -z -w 3 96.113.48.9 5060 Ncat: Version 7.92 ( https://nmap.org/ncat ) Ncat: Connected to 96.113.48.9:5060. Ncat: UDP packet sent successfully Ncat: 1 bytes sent, 0 bytes received in 2.01 seconds.
- Server B 到 Server A 的扫描:
root@xx-xxg-as-002:/home/admin# nc -v -u -z -w 3 76.96.x.x 5060 Connection to 76.96.x.x 5060 port [udp/sip] succeeded!
2. 实际数据传输测试(单向失败)
当我尝试从Server B往Server A发送数据时,A端完全接收不到任何内容:
- 在Server A上执行监听命令:
nc -ul 5060 - 在Server B上执行发送命令:
nc -u 76.96.x.x 5060,然后输入Hello
补充信息
我已经检查过Server A的防火墙规则,Ingress方向是允许5060端口的UDP流量的。
有没有大佬能帮忙指出可能的问题点?我自己初步梳理了几个排查方向,但还没来得及逐一验证:
- UDP会话跟踪限制:有些防火墙或网络设备对UDP会话的跟踪有时间窗口,扫描的短连接会话过期后,B主动发的包因为没有预先生成的会话条目被丢弃?
- netcat监听绑定问题:会不会Server A的nc监听默认绑定到了本地回环或特定网卡,导致无法接收来自外部的流量?可以试试指定A的公网IP监听:
nc -ul 76.96.x.x 5060 - NAT映射异常:如果Server A在NAT环境下,扫描的成功只是临时NAT条目生效,但实际发送数据时NAT表没有对应条目,导致包被拦截?
- 系统安全模块拦截:比如A上的SELinux、AppArmor这类安全模块有没有静默拦截UDP 5060的流量?可以用
tcpdump在A上抓包确认:tcpdump -i any udp port 5060,如果能抓到B发的包但nc没收到,那问题就在系统或nc本身。
备注:内容来源于stack exchange,提问作者phoenix
相关产品推荐
相关产品推荐

