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 -j ACCEPT
iptables -A INPUT -s -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

# input interface
phyint eth0 upstream  ratelimit 0  threshold 1

# multicast default addresses

# PANs just to be sure

# ISP-specific addresses

# 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.