Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Перенаправление потока данных с одного ip-адреса на другой  (Прочитано 927 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн osandr

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Заранее извиняюсь, если буду задавать глупые вопросы. Можете порекомендовать литературу для прочтения.
Картина такая. Имеется компьютер в локальной сети (raspberry pi 3, ос на базе ubuntu). Компьютер через роутер подключен к Интернет.
Получил у провайдера статический IP. Настроил на машине сервер Apache, купил доменное имя, прописал в настройках dns связку доменное_имя - ip, пробросил 80 порт в настройках роутера на локальный адрес raspberry. Все прекрасно. Теперь появилась такая идея пробросить поток данных IPTV через мой сервер, чтобы можно было смотреть телеканалы из любой точки без привязки к провайдеру. Например, чтобы мои родители, проживающие в другом городе, могли пользоваться услугой IPTV, предоставляемой моим провайдером. Посмотрел содержимое плейлиста *m3u8 и понял, что соединение идет на сервер провайдера. Просмотрел в Wireshark, что идет соединение по TCP-протоколу на 80 порт. По HTTP протоколу передается адрес канала и далее, после ответа от сервера идет непрерывный поток TCP-пакетов. Я так понимаю это и есть поток видеоданных. Так как я мало разбираюсь в сетях, то у меня возникло такое решение: написать небольшую программу, которая будет одновременно клиентом и сервером, т.е. как сервер она должно устанавливать соединения с удаленными клиентами на какой-либо порт (пусть будет 8088), как клиент она должна открывать соединение на IP-адрес провайдера на порт 80. В файле плейлиста изменить адрес провайдер на свой с добавление порта. К примеру было http://telecom.com/?..., будет http//mysite:8088/?.... Простите за меня за мое невежество) Наверное такая программа называется прокси-сервером и уже наверняка есть готовые решения? Или же это NAT-сервер? Просто пробросить порты здесь не получится, т.к. должно передаваться имя хоста, по которому сервер провайдера понимает что я именно хочу получить доступ к IPTV, а не какому-либо другому ресурсу. Подскажите как реализовать задуманное.

Оффлайн jack_solovey

  • Активист
  • *
  • Сообщений: 905
  • Mate, и никаких Unity
    • Просмотр профиля
Я одно время прямо на роутере Zyxel Keenetic Viva заворачивал IPTV поток из одной квартиры родственников в другую (с другим провайдером).
Если у тебя такой роутер то можно сделать все на нем.
https://help.keenetic.com/hc/ru/articles/360000952079-UDP-%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8
если же нет, то все равно статья поможет прояснить как это работает на уровне использования.

Хотя в статье описано для локальной сети, но для использования из другой сети нет проблем.
Пробрасываешь порт 4022 (в статье этот порт используется) в настройках роутера на внутренний адрес роутера (в статье 192.168.1.1)
и родители смогут смотреть IPTV с внешнего адреса твоего роутера например 88.159.157.234:4022
« Последнее редактирование: 18 Марта 2020, 06:06:51 от jack_solovey »

 

Страница сгенерирована за 0.043 секунд. Запросов: 25.