Linux系統,無法收到組播消息的問題


解決辦法:

做以下3個修改

1. /etc/sysctl.conf 文件中的 net.ipv4.conf.all.rp_filter 設置成0

2. sysctl -w net.ipv4.conf.all.rp_filter=0

3. echo "0">/proc/sys/net/ipv4/conf/all/rp_filter

 

原理:

為了安全考慮,linux系統會根據rp_filter的值來對數據包進行檢查。

當rp_filter為1時,會對數據包的目的地址進行檢查,如果目的ip不是本機ip,則直接丟棄數據包。

因為組播數據包的目的地址是組播IP,肯定和本機ip不匹配,所以數據包會被丟棄。

當把rp_filter改為0時,不進行檢查,所有數據包都會收到,所以應用程序就可以收到組播消息了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM