问题描述

服务器运行正常,维保需要,重启服务器后应用程序无法收到组播的媒体数据。百思不得其解。

原因分析

最终的定位原因是 linux系统的自我保护机制导致的。

rp_filter(反向路径过滤)是Linux内核的一个安全特性,用于防止IP欺骗。如果rp_filter设置为1,系统会丢弃那些源地址和到达接口不匹配的数据包。这可能导致你的程序无法接收到组播数据包。

解决方法:

修改文件/etc/sysctl.conf

net.ipv4.conf.all.rp_filter=0

net.ipv4.conf.default.rp_filter=0

net.ipv4.conf.eth2.rp_filter=0

执行 sysctl -p 生效

这样执行以后就可以正常收到组播的媒体数据了。在此记录一下

本项目使用的网卡是eth2,此处需要根据实际情况修改为实际使用的网卡名

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐