IGMPproxy
互联网协议电视(IPTV)是一种系统,通过该系统,互联网电视服务通过互联网协议套件的架构和网络方法,在分组交换网络基础设施(例如,互联网和宽带互联网接入网络)上传输,而不是通过传统的射频广播、卫星信号和有线电视(CATV)格式传输。
安装工具
安装 igmpproxy
apk add igmpproxy
安装 iptables (可选,请参阅故障排除)
apk add iptables
设置 igmpproxy
在您喜欢的编辑器中打开 /etc/igmpproxy.conf
nano /etc/igmpproxy.conf
将上游接口设置为您的 WAN 接口。在我的情况下是 eth0
phyint eth0 upstream ratelimit 0 threshold 1
如果您知道您的 ISP 的组播源,您应该在此处添加它们。如果不知道,请不用担心,我们稍后会回到这里。
altnet 88.222.0.0/16 altnet 10.0.0.0/8
将下游接口设置为您的 LAN 接口。在我的情况下是 eth1
phyint eth1 downstream ratelimit 0 threshold 1
禁用其他未使用的接口
phyint lo disabled
如果您尚未添加组播源,则您的 igmpproxy.conf 应如下所示
quickleave phyint eth0 upstream ratelimit 0 threshold 1 phyint eth1 downstream ratelimit 0 threshold 1 phyint lo disabled
以调试模式启动 igmpproxy
igmpproxy -d -v /etc/igmpproxy.conf
您应该看到类似于这样的输出
RECV Membership query from 10.253.88.1 to 224.0.0.1 RECV Membership query from 10.254.88.1 to 224.0.0.1 RECV V2 member report from 88.222.27.35 to 239.255.255.250
现在我们知道 ISP 的组播源是 10.x.x.x (10.0.0.0/8) 和 88.222.x.x(88.222.0.0/16)。我们需要在 /etc/igmpproxy.conf 中,紧跟上游接口声明之后指定它们,如下所示
phyint eth0 upstream ratelimit 0 threshold 1 altnet 88.222.0.0/16 altnet 10.0.0.0/8
您的完整 igmpproxy.conf 应如下所示
quickleave phyint eth0 upstream ratelimit 0 threshold 1 altnet 88.222.0.0/16 altnet 10.0.0.0/8 phyint eth1 downstream ratelimit 0 threshold 1 phyint lo disabled
启动 igmpproxy 并享受 IPTV 吧 :)
igmpproxy /etc/igmpproxy.conf
故障排除
- 确保您的本地子网与您的 ISP 的组播源不相同。192.168.0.0/24 可能是安全的选择。
- 您可能需要在 iptables 中添加转发规则
iptables -I FORWARD -s 88.222.0.0/16 -d 224.0.0.0/4 -j ACCEPT iptables -I FORWARD -s 10.0.0.0/8 -d 224.0.0.0/4 -j ACCEPT iptables -I INPUT -d 224.0.0.0/4 -j ACCEPT
- 如果您正在使用 shorewall,请修改 /etc/shorewall/shorewall.conf
MULTICAST=Yes
将以下规则添加到 /etc/shorewall/rules
ACCEPT all fw:224.0.0.0/4 ACCEPT all net:224.0.0.0/4 ACCEPT all loc:224.0.0.0/4