Содержание

Просмотр IPTV через домашний сервер

У моего провайдера есть бесплатное IP-телевидение передаваемое по технологии IP multicast. Для просмотра IPTV на компьютере подключенном к провайдеру напрямую достаточно установить VLC и скачать плейлист. Сложности начинаются, когда дома установлен сервер и смотреть IPTV хочется на нескольких компьютерах домашней сети…

Если в роли домашнего шлюза установлен сервер с Linux на борту и доступ в Интернет с домашних компьютеров осуществляется через него по технологии NAT, то установкой VLC на компьютеры дело не решится. В этом случае для просмотра IPTV необходимо на сервер установить программу для проксирования IGMP 1) и маршрутизации UDP multicast 2). Также есть второй способ - использовать UDP proxy 3) на шлюзе. Для просмотра с помощью второго способа есть приложение под Android, позволяющее смотреть IP ТВ на планшете.

Multicast routing

Для начала разрешим на брандмауэре (у меня Shorewall) UDP multicast:

/etc/shorewall/rules
...
ACCEPT	net	fw:224.0.0.0/4
ACCEPT	net	loc:224.0.0.0/4
ACCEPT	fw	loc:224.0.0.0/4

Далее устанавливаем IGMPproxy:

/etc/igmpproxy.conf
phyint eth1 upstream  ratelimit 0  threshold 1
	altnet 172.31.242.0/24
phyint eth0 downstream  ratelimit 0  threshold 1
phyint wlan0 disabled
/etc/rc.local
/usr/local/sbin/igmpproxy /etc/igmpproxy.conf
exit 0

UDP proxy

В репозиториях Debian и Ubuntu программы udpxy ещё нет (разработчики занимаются этим вопросом), поэтому её нужно собрать из исходных кодов. Для этого: