Автор Тема: Как правильно настроить просмотр IPTV в Linux через VLC?  (Прочитано 32130 раз)

Оффлайн elpm

  • Зашел спросить
  • *
  • Сообщений: 7
  • Карма: +0/-0
Перестало работать IPTV

Debian 6 Squeeze
************************************************
Настройки в sysctl.conf:
net.ipv4.ip_forward=1
net.ipv4.conf.all.force_igmp_version=2
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.eth0.rp_filter=0
**************************************************

Настройка сети - /etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0

# The primary network interface - CITYCOM
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
up route add -net 224.0.0.0/4 dev eth0

# The secondary network interface - LAN
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

# Настройка для pppoe
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider
******************************************

Таблица маршрутизации:
root@lin:/etc/network# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.32.0.1       *               255.255.255.255 UH    0      0        0 ppp0
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0
172.16.135.0    *               255.255.255.0   U     0      0        0 vmnet8
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
192.168.8.0     *               255.255.255.0   U     0      0        0 vmnet1
172.31.172.0    *               255.255.252.0   U     0      0        0 eth0
10.0.0.0        *               255.0.0.0       U     0      0        0 nrtap
224.0.0.0       *               240.0.0.0       U     0      0        0 eth0
default         *               0.0.0.0         U     0      0        0 ppp0

********************************************************************************************
В настройках  VLC  - плейлист - поток по умолчанию - http://tv.citycomm.ru/files/iptvplayer/citycomm_utf8.m3u
*****************************************************************************************

Первоначально с этими настройками IPTV работало без проблем.

Теперь плейлист виден, а экран тёмный. Нет изображения и звука.

Добавлял вторую сетевую карту - Eth1
И устанавливал arno-ipitables-firewall.
Не знаю может эти действия повлияли. Не проверя IPTV перед установкой. Так как пользовался изредка.

Порты на файрволе открывать пробовал всё (tcp, udp - 1:65365). Пробовал останавливать файрвол. Не помогает.

Проверил из windows.
В Windows тоже VLC не показывал. Но проблема решилась указанием интерфейса вывода ip4 multicast (ip адрес который смотрит в сеть Ситиком). Теперь из windows работает нормально.

В linux аналогичные действия не помогли (пробовал указать ip или eth0).

В Интернете смотрел настройки других провайдеров. Многие дают инструкции по настройке VLC в linux.
Может быть у вас тоже есть рекомендации по настройке?

Оффлайн NoSFeRaTU

  • Администратор
  • Пользователь
  • *
  • Сообщений: 183
  • Карма: +6/-0
    • nosferatu@jabber.ganjanetwork.ru
Таблица маршрутизации:
root@lin:/etc/network# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.32.0.1       *               255.255.255.255 UH    0      0        0 ppp0
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0
172.16.135.0    *               255.255.255.0   U     0      0        0 vmnet8
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
192.168.8.0     *               255.255.255.0   U     0      0        0 vmnet1
172.31.172.0    *               255.255.252.0   U     0      0        0 eth0
10.0.0.0        *               255.0.0.0       U     0      0        0 nrtap
224.0.0.0       *               240.0.0.0       U     0      0        0 eth0
default         *               0.0.0.0         U     0      0        0 ppp0
Попробуйте route add -net 172.20.0.128/29 dev eth0, а лучше вообще route add -net 172.16.0.0/12 gw 172.31.175.254
Также неплохо было бы увидеть вывод tcpdump -s 1500 -vvv -lni eth0 igmp or port 5510 в момент попытки подписки.

Оффлайн elpm

  • Зашел спросить
  • *
  • Сообщений: 7
  • Карма: +0/-0
Таблица маршрутизации
elpm@lin:~$ sudo route
[sudo] password for elpm:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.32.0.1       *               255.255.255.255 UH    0      0        0 ppp0
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0
172.16.135.0    *               255.255.255.0   U     0      0        0 vmnet8
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
192.168.8.0     *               255.255.255.0   U     0      0        0 vmnet1
172.31.172.0    *               255.255.252.0   U     0      0        0 eth0
10.0.0.0        *               255.0.0.0       U     0      0        0 nrtap
224.0.0.0       *               240.0.0.0       U     0      0        0 eth0
default         *               0.0.0.0         U     0      0        0 ppp0

Результат tcpdump
 172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:39:05.280400 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:39:05.282160 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:39:05.283942 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:39:05.285724 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:39:05.287403 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:39:05.289311 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:39:05.290886 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:39:05.292749 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)

Добавляю маршрут
elpm@lin:~$ sudo route add -net 172.20.0.128/29 dev eth0
elpm@lin:~$ sudo route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.32.0.1       *               255.255.255.255 UH    0      0        0 ppp0
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0
172.20.0.128    *               255.255.255.248 U     0      0        0 eth0
172.16.135.0    *               255.255.255.0   U     0      0        0 vmnet8
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
192.168.8.0     *               255.255.255.0   U     0      0        0 vmnet1
172.31.172.0    *               255.255.252.0   U     0      0        0 eth0
10.0.0.0        *               255.0.0.0       U     0      0        0 nrtap
224.0.0.0       *               240.0.0.0       U     0      0        0 eth0
default         *               0.0.0.0         U     0      0        0 ppp0

Результат tcpdump
172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:47:09.809552 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:47:09.811274 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:47:09.813035 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:47:09.814817 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:47:09.816496 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316

VLC не работает

Добавляю маршрут (этот маршрут мне непонятен - сеть 172.16.0.0 ???)
elpm@lin:~$ sudo route add -net 172.16.0.0/12 gw 172.31.175.254
elpm@lin:~$ sudo route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.32.0.1       *               255.255.255.255 UH    0      0        0 ppp0
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0
172.20.0.128    *               255.255.255.248 U     0      0        0 eth0
172.16.135.0    *               255.255.255.0   U     0      0        0 vmnet8
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
192.168.8.0     *               255.255.255.0   U     0      0        0 vmnet1
172.31.172.0    *               255.255.252.0   U     0      0        0 eth0
172.16.0.0      172.31.175.254  255.240.0.0     UG    0      0        0 eth0
10.0.0.0        *               255.0.0.0       U     0      0        0 nrtap
224.0.0.0       *               240.0.0.0       U     0      0        0 eth0
default         *               0.0.0.0         U     0      0        0 ppp0

Результат tcpdump
172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:49:54.640498 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:49:54.642261 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:49:54.644103 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:49:54.645721 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
14:49:54.647503 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316

VLC не работает

Понимаю что проблема в маршрутизации. Как настроить не понимаю :-(

Оффлайн elpm

  • Зашел спросить
  • *
  • Сообщений: 7
  • Карма: +0/-0
Обнаружил что при включенном Интернете (запущенном ppp0) VLC не показывает.

Добавил маршруты
# The primary network interface - CITYCOM
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
up route add -net 224.0.0.0/4 dev eth0
up route add -net 172.16.0.0/12 gw 172.31.175.254
up route add -net 172.31.0.0/16 gw 172.31.175.254


Таблица маршрутизации.
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0
92.241.127.254  *               255.255.255.255 UH    0      0        0 ppp0
172.16.135.0    *               255.255.255.0   U     0      0        0 vmnet8
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
192.168.8.0     *               255.255.255.0   U     0      0        0 vmnet1
172.31.172.0    *               255.255.252.0   U     0      0        0 eth0
172.31.0.0      172.31.175.254  255.255.0.0     UG    0      0        0 eth0
172.16.0.0      172.31.175.254  255.240.0.0     UG    0      0        0 eth0
10.0.0.0        *               255.0.0.0       U     0      0        0 nrtap
224.0.0.0       *               240.0.0.0       U     0      0        0 eth0
default         *               0.0.0.0         U     0      0        0 ppp0

Теперь VLС cпоказывает. Интернет работает.

Появилась другая проблема. Периодически приостанавливается трансляция. Перехожу на другую программу, потом обратно и всё восстанавливается.
Надо теперь эту проблему убрать. Буду пробовать.

Оффлайн NoSFeRaTU

  • Администратор
  • Пользователь
  • *
  • Сообщений: 183
  • Карма: +6/-0
    • nosferatu@jabber.ganjanetwork.ru
Добавил маршруты
up route add -net 172.16.0.0/12 gw 172.31.175.254
up route add -net 172.31.0.0/16 gw 172.31.175.254

Маршрут на подсеть 172.31.0.0/16 необязателен, так как маршрут на 172.16.0.0/12 уже включает в себя эту подсеть.

Теперь VLС cпоказывает. Интернет работает.

Появилась другая проблема. Периодически приостанавливается трансляция. Перехожу на другую программу, потом обратно и всё восстанавливается.
Надо теперь эту проблему убрать. Буду пробовать.
Смотрите tcpdump`ом на предмет igmp, возможно фаервол или ещё что-нибудь блокирует у вас igmp report`ы, которые должны посылаться вашей системой в ответ на периодические запросы igmp query.

P. S. Используйте тег code, чтобы отделять вывод комманд от вашего текста, ибо плохо читается.

Оффлайн elpm

  • Зашел спросить
  • *
  • Сообщений: 7
  • Карма: +0/-0
Да, вы правы -  query.

  172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
20:51:49.913987 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
20:51:49.915737 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
20:51:49.917445 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
20:51:49.919233 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
20:51:49.920869 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
20:51:49.922655 IP (tos 0xa0, ttl 3, id 10, offset 0, flags [DF], proto UDP (17), length 1344)
    172.20.0.133.5510 > 233.67.0.2.5510: [no cksum] UDP, length 1316
20:52:04.932980 IP (tos 0xc0, ttl 1, id 28633, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    172.31.175.254 > 224.0.0.1: igmp query v2
20:53:04.935867 IP (tos 0xc0, ttl 1, id 29006, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    172.31.175.254 > 224.0.0.1: igmp query v2
20:54:00.325752 IP (tos 0xc0, ttl 1, id 9771, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    10.67.152.1 > 224.0.0.1: igmp query v2
20:56:05.313196 IP (tos 0xc0, ttl 1, id 9772, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    10.67.152.1 > 224.0.0.1: igmp query v2



Оффлайн elpm

  • Зашел спросить
  • *
  • Сообщений: 7
  • Карма: +0/-0
Остановил arno-iptables-firewall. VLC стал работать без зависаний.
Добавил правила в custom-rules.

# Put any custom (iptables) rules here down below:
##################################################
iptables -A FORWARD -p igmp -i eth0 -o eth1 -j ACCEPT
iptables -I INPUT -d 224.0.0.0/4 -j ACCEPT
iptables -I FORWARD -d 224.0.0.0/4 -j ACCEPT

Теперь кажется всё работает без проблем! Файрвол включен. VLC не зависает.

Спасибо NoSFeRaTU за помощь!

Оффлайн elpm

  • Зашел спросить
  • *
  • Сообщений: 7
  • Карма: +0/-0
Попробую подвести итоги. Может быть кому пригодится. Думаю что не один я Linux использую.
Вот что у меня получилось:

Настройка IPTV в Debian 6 Squeeze (или Ubuntu).

    /etc/sysctl.conf:
net.ipv4.ip_forward=1
net.ipv4.conf.all.force_igmp_version=2
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.eth0.rp_filter=0

    /etc/network/interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0

# The primary network interface - CITYCOM
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
up route add -net 224.0.0.0/4 dev eth0
up route add -net 172.16.0.0/12 gw 172.31.175.254
#up route add -net 172.31.0.0/16 gw 172.31.175.254

# The secondary network interface - LAN
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

# Настройка для pppoe
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider

        Настройки arno-iptables-firewall.

    /etc/arno-iptables-firewall/debconf.cfg:
#######################################################################
# Feel free to edit this file.  However, be aware that debconf writes #
# to (and reads from) this file too.  In case of doubt, only use      #
# 'dpkg-reconfigure -plow arno-iptables-firewall' to edit this file.  #
# If you really don't want to use debconf, or if you have specific    #
# needs, you're likely better off using                               #
# /etc/arno-iptables-firewall/custom-rules.  Also see README.Debian.  #
#######################################################################
DC_EXT_IF="ppp0 eth0"
DC_EXT_IF_DHCP_IP=1
DC_OPEN_TCP="21 22 80 443"
DC_OPEN_UDP="5510"
DC_INT_IF="eth1"
DC_NAT=1
DC_INTERNAL_NET="192.168.1.0/24"
DC_NAT_INTERNAL_NET="192.168.1.0/24"
DC_OPEN_ICMP=1

    /etc/arno-iptables-firewall/custom-rules:
# Put any custom (iptables) rules here down below:
##################################################
iptables -A FORWARD -p igmp -i eth0 -o eth1 -j ACCEPT
iptables -I INPUT -d 224.0.0.0/4 -j ACCEPT
iptables -I FORWARD -d 224.0.0.0/4 -j ACCEPT

Настройка  VLC:
  - плейлист
   - поток по умолчанию
    - http://tv.citycomm.ru/files/iptvplayer/citycomm_utf8.m3u

Таблица мршрутизации:   
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0
92.241.127.254  *               255.255.255.255 UH    0      0        0 ppp0
172.16.135.0    *               255.255.255.0   U     0      0        0 vmnet8
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
192.168.8.0     *               255.255.255.0   U     0      0        0 vmnet1
172.31.172.0    *               255.255.252.0   U     0      0        0 eth0
172.31.0.0      172.31.175.254  255.255.0.0     UG    0      0        0 eth0
172.16.0.0      172.31.175.254  255.240.0.0     UG    0      0        0 eth0
10.0.0.0        *               255.0.0.0       U     0      0        0 nrtap
224.0.0.0       *               240.0.0.0       U     0      0        0 eth0
default         *               0.0.0.0         U     0      0        0 ppp0

Интернет и просмотр IPTV через VLC работают одновременно. VLC работает стабильно, зависаний нет.

Ещё раз спасибо NoSFeRaTU за помощь.