IPTV и 1001 порт
_lexx_ 5 апреля, 2012 - 14:16
Доброго дня!
Столкнулся с проблемой - провайдер ведёт вещание ip-tv частично по 1001 порту, работа с которым запрещена всем пользователям, кроме root'а.
Правило
iptables -A PREROUTING -i eth2 -p udp -m udp --dport 1001 -j DNAT --to-destination 127.0.0.1:1233
толку особого не дало, хотя по идее всё, что идёт на 1001, перенаправляется на 1233 на этом же хосте, но VLC и иже с ним работать всё равно не хотят.
Подскажите, что можно сделать в данной ситуации? Как разрешить работу с 1001 сокетом простым пользователям или как настроить iptables?
»
- Для комментирования войдите или зарегистрируйтесь
Пользователям нельзя
Пользователям нельзя создавать сокеты на порты 1-1024, про то, что подключаться к ним нельзя - ни слова. Ничего сверхъестественного делать не надо, все должно работать сразу как есть.
Не грусти, товарищ! Всё хорошо, beautiful good!
winterheart
Вот Вы странный - если бы всё нормально работало и не надо было бы делать ничего сверхестественного, я бы ничего и не делал и не спрашивал:)
Однако от рута всё запускается нормально, а от пользователя, который находится в
мы получаем следующее:
...ну и далее по плей-листу, пока не найдёт чего-то с портом выше 1024, который и начинает успешно показывать.
233.34.28.4 - твой IP? Что за
233.34.28.4 - твой IP? Что за программа?
Не грусти, товарищ! Всё хорошо, beautiful good!
Это логи от VLC 1.1.13,
Это логи от VLC 1.1.13, запущеного через vlc-wrapper, собранного со след флагами:
[ebuild R ] media-video/vlc-1.1.13 USE="X a52 aac alsa cdda cddb dbus dirac dts dvd ffmpeg flac fontconfig gcrypt gnutls id3tag kde libnotify libv4l libv4l2 live matroska mmx mp3 mpeg mtp ncurses nsplugin ogg opengl png qt4 rtsp samba schroedinger sdl shine sse stream svg truetype twolame udev v4l vorbis wma-fixed x264 xcb xml xv -aalib (-altivec) -atmo -avahi -bidi -dc1394 -debug -directfb -dvb -fbcon -fluidsynth -ggi -gme -gnome -httpd -ieee1394 -jack -kate -libass -libcaca -libproxy -libtiger -lirc -lua -modplug -musepack -optimisememory -oss -projectm -pulseaudio -pvr -remoteosd -run-as-root -sdl-image -shout -skins -speex -sqlite (-svga) -taglib -theora -upnp -vaapi -vcdx -vlm (-win32codecs) -xosd -zvbi"
mplayer ведёт себя аналогично.
233.34.28.* - адреса вещателей, те которые не с 1001 портом из этой же подсети кажутся нормально.
Как запускаешь приложение?
Как запускаешь приложение?
Не грусти, товарищ! Всё хорошо, beautiful good!
lexx@Odin ~ $ vlc или из
lexx@Odin ~ $ vlc
или из К-меню кедов - результат аналогичный._lexx_ написал(а): ...Однако
Возможно при запуске используются разные конфиги, root использует одни, пользователи другие.
Или я чего-то не догнал, и вы пытаетесь от имени пользователя "Васи" запустить процесс и повесить его на 1001 порт?
Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...
Нет, я запускаю проигрыватели
Нет, я запускаю проигрыватели из сеанса простого пользователя, чтобы посмотреть ip-tv, но каналы, которые передаются через 1001 порт простым пользователем не показываются, а выдают ошибку доступа к сокету.
Конфиги - даже одинаково-дефолтные у рута и пользователя дают тот же эффект: у рута кажет, пользователю - фиг.
Хорошо, я правильно все понял
Хорошо, я правильно все понял :-)
В данном случае проигрыватели, которые вы запускаете от простого usera хотят слушать 1001 порт, то есть фактически реализуют функцию сервера. Система их естественно отфутболивает, с выдачей соответствующих матов в лог. Ваша попытка воспользоваться iptables выглядит весьма разумно, но неясно почему не сработала. Можно взглянуть на:
И еще, почему используется PREROUTING а не INPUT?
Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...
Так, то ли лыжи не едут, то
Так, то ли лыжи не едут, то ли одно из двух.
А если попробовать сделать
А если попробовать сделать так:
:-)
Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...
аналогично, лыжи снова не
аналогично, лыжи снова не едут:), хотя
наличествует.
Теперь скажите, а iptables
Теперь скажите, а iptables вообще-то у вас работает? Может в ядре чего не хватает?
Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...
Прадонте, туплю. Odin ~ #
Прадонте, туплю.
Маскарад висит для запущеного тут же pptpd, мешать по идее не должен.
В правилах iptables я не
В правилах iptables я не знаток, но вот нашел у себя в "библиотеке", может что прояснит:
Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...
Не стал ждать пока Вы у себя
Не стал ждать пока Вы у себя проверите, собрал у себя маленький тестовый стенд из двух ноутов. С одного посылаю тестовые данные другому на порт 1001:
На втором ноуте iptables настроен так:
То есть должен быть редирект с порта 1001 всех udp данных, на порт 10001.
Начинаю слушать порт 10001:
Все замечательно, редирект сработал, посылка на 10001 порту поймана :-)
Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...
Делаю аналогично, даже порт
Делаю аналогично, даже порт на 10001 для достоверности:
Правлю порт источников, но плеер на все эти каналы отвечает
т.е. просто ничего не получает с истоника.
Смотрим tcpdump'ом
Т.е. с движуха по 1001 порту есть, но если сделать по 10001 порту - тишина
В чём ещё может быть засада, что при аналогичных исходных данных - разный результат?
Дальше я могу только
Дальше я могу только предложить, для достоверности, убрать маскарадинг из правил и посмотреть что получится. Потом можно взглянуть конфиги ядра, и убедится, что все необходимое включено, например как указанно здесь. Да, может это важное, когда я ставил эксперимент мне пришлось добавить вот такое правило:
Иначе редирект не работал.
Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...
Что слушает VLC?
Извините, может я и не прав, но после переброса портов плееру (vlc) нужно указать порт куда вы перебросили поток. Не заметил в обсуждении повторного запуска vlc с изменёнными параметрами.
Palmer написал(а): Извините,
Ну это само собой разумеется - толку перебрасывать порты и слушать старые?:)
Идея мультикаста в том что
Идея мультикаста в том что пакет просто летит в сеть на определённый адрес и порт в строго определённой подсети (224.0.0.0/4). И здесь "клиент" чтобы принимать поток должен создать у себя listen-сокет, а сервер будет лить на него траф. Подробнее читайте на википедии и/или в соответствующей литературе.
У топик-стартера проблема в том что он должен создавать listen-сокет на порту 1001/udp, что может делать только привилегированный пользователь (root).
Вариант тут каике:
1. Пускать плеер от рута (например через sudo или op)
2. Разобраться с перекидыванием пакета на непривилегированный порт. И вот у меня к сожалению нет возможности поставить эксперимент, но ИМХО редиректить надо не на 127.0.0.1 а на адрес из 224.0.0.0/4 и уже на нём создавать listen-сокет. И тогда КМК всё должно получиться.
т.е. что-то в духе iptables
т.е. что-то в духе
да?
да:)
да:)
Специально для всех
Специально для всех участников хочу задать 1 вопрос и дать 1 разяснение
Вопрос к автору топика: по какому протоколу происходит управление потоком ?
udp таком не яеляется по определению
Пояснения - в апстолах нет трекинга rtmp, rtsp, etc ...
P.S в апстримных дистрах я бы на раз решил это рестримом на стрим сервере или проксиком. В генте ничего подобного не обнаружил - только какие то ошметки в виде live555, openRTSP и rtmpdump
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)