Here’s a tutorial on how to get your IPTV up and running via igmpproxy.

Outdated! Nowadays I use udpxy, which is much more efficient for in-home usage.

Here’s my network interfaces:

  • eth0 - WAN
  • eth1 - LAN

Iptables default policy is DROP, so we need to allow IGMP traffic:

iptables -A FORWARD -p igmp -i eth0 -o eth1 -j ACCEPT

iptables -A FORWARD -s 224.0.0.0/4 -j ACCEPT
iptables -A INPUT -s 224.0.0.0/4 -j ACCEPT

Then we need to build igmpproxy, взять его можно здесь:

cd /usr/src
# wget the source file
cd igmpproxy-*
checkinstall -D -y --pkgname=igmpproxy
dpkg -i igmpproxy_0.1-beta2-1_amd64.deb

Customize config in /etc/igmpproxy.conf, you could get default one from /usr/local/etc/igmpproxy.conf, but there’s also my own example:

# keep turned off while more than 1 client
#quickleave

# input interface
phyint eth0 upstream  ratelimit 0  threshold 1

# multicast default addresses
altnet 224.0.0.0/4

# PANs just to be sure
altnet 192.168.0.0/16
altnet 172.16.0.0/12
altnet 10.0.0.0/8

# ISP-specific addresses
altnet 93.100.0.0/16

# output interface
phyint eth1 downstream  ratelimit 0  threshold 1

# wireless is ignored
phyint mon.wlan0 disabled
phyint wlan0 disabled

Now we are ready to go:

igmpproxy -d /etc/igmpproxy.conf \
  > /var/log/igmpproxy.log 2>&1

In this particular situation I just placed it somewhere like /etc/rc.local, but to keep things organized you would like to create systemd service.