Linux и веб-разработка

Записи веб-программиста при разработке сайта о Linux-е.

UPnP для браузера и его серверных претензий

, , , ,

Включаем в Linux Fedora доступ на компьютер через произвольные пользовательские порты.

Во-первых что такое UPnP. Это набор сетевых протоколов, архитектура, разрабатываемая для того, чтобы локальные ПК и различные умные гаджеты и приборы соединялись в общую локальную сеть.

Во-вторых, в блоге Оперы упомяналось, что они намеренны в будущих продуктах в полный рост использовать UPnP.

На данный момент, вследствие того, что Опера решила отбросить свою "устаревшую" разработку Opera Unite, мне пришлось поискать как продолжать пользоваться этой технологией без поддержки её авторов-создателей.

Получиться должно вот что: после некоторых манипуляций с браузером и интернет-службами, мы получаем браузер Opera (версий от 10.10 до 11.62), в котором Unite работает самостоятельно - без аккаунта Оперы и без её DNS-серверов, и к которому доступ имеем либо путём указания IP и порта, либо путём указания некоторого заданного домена (напишу об этом в другой раз).

Здесь рассматриваю что нужно доустановить в Linux Fedora 16 и как донастроить. К счастью нашлись ссылки по настройке Дебиана (1, 2, 3) и они помогли сориентироваться.

Ставим пакет:
yum install -y linux-igd
он притянет по зависимости пакет libupnp.

В файл /etc/rc.d/rc.local прописываем старт демона:
service upnpd start
Вбиваем от рута строки:
iptables -N UPNP
iptables -A FORWARD -j UPNP
На просторах Интернета говорится о различных дополнительных настройках, но как показала практика, если на этот момент не будет работать - думайте на iptables.

Чтобы проверить, что Unite доступен извне, запускаем Оперу от другого пользователя и включаем "Турбо". Если удаётся зайти на адрес http://ваш.IP.ад.рес:8840/ - значит всё настроено верно.

Я думал, что могут быть ограничения провайдера или как всегда помешает SELinux, но большинство обсуждений в Сети (а порыскать пришлось немало) кивали на iptables.

Мне долгое время показывалось сообщение "Connection refused". Причём если поставить порт 53 - то сообщение о недостижимости страницы, а если неправильный IP, то просто устраивало бесконечную затяжную попытку подключиться. Кратковременное отключение файрвола командой
iptables -F
показало, что проблема именно в нём - сервер сразу открылся в другой Опере через указание внешнего IP и порта. Дальше нужно было лишь найти в таблице что мешало.

Далее можно, добившись, чтобы система сразу запускалась с нужными сервисами и настройками (и запущенный браузер Opera с Unite был достижим извне по IP:порт), зарегистрировать себе домен службы динамических DNS, сообщить там свои параметры (IP, порт), и запустить у себя OU-приложение DNS Updater, которое будет периодически обращаться к серверу DDNS и сообщать текущий внешний IP браузера. При успешных настройках на ваш браузер можно будет входить по не-оперному адресу. (см. мою предыдущую статью с переводами нужных инструкций: Как отвязать свой узел на Opera Unite от сервера Оперы)

Дополняю: выяснилось, что "DNS Updater" тоже не хочет работать, а сервис NO-IP хотя и предоставляет нужные функции, приходится выставлять порт вместе с доменом: некий.домен:8840 - это не удобно. И забавно, что если не указать порт, то отзывается мой Apache. (что не планировалось)

Дополняю: Я считаю, что отказ от DNS Оперы (те самые адресочки вида компьютер.учётнаязапись.operaunite.com) вызывает массу такого рода хлопот, которыми не станет себя обременять ни один "простой пользователь" (на которых и была рассчитана технология Unite), даже если вдруг захочет запустить Unite альтернативным путём. Так что выключив Unite Опера фактически убивает хорошую идею на корню. Вывод один: требуется альтернативная программа в виде "Расширения" (аддона) к браузеру, которая, будучи установленной, будет обеспечивать привычный функционал. Если такого API (программного интерфейса) не найдётся в новых версиях Оперы - придётся писать альтернативу под Firefox (вроде как были успешные попытки, значит API позволял).

Как отвязать свой узел на Opera Unite от сервера ОперыПризыв к участию в голосовании за сохранение Opera Unite в браузере Opera

Comments

Joggerr Saturday, April 28, 2012 6:20:11 AM

Что-то мне сильно кажется, что вы много лишнего сделали. Похоже, что вам надо было проверить доступность http://ваш.IP,ад.рес:8840/ из вне, если нет доступа - отредактировать iptables. Установка linux-igd в вашем случае не нужна (ну, либо я не понимаю ваших целей).

И забавно, что если не указать порт, то отзывается мой Apache. (что не планировалось)


Это не забавно, это логично и ожидаемо)

Xobrtdoclinux Saturday, April 28, 2012 2:02:18 PM

Originally posted by Joggerr:

доступность http://ваш.IP.ад.рес:8840/ из вне

Не работало.

Originally posted by Joggerr:

если нет доступа - отредактировать iptables

Интересная мысль! Но о том, что виноват iptables я узнал уже после установки linux-igd, а о в необходимости UPnP не сомневался.
Будет повод попробовать в ближайшие дни на другой машине, потом напишу здесь дополнение - как прошло.

Joggerr Saturday, April 28, 2012 2:07:47 PM

Originally posted by doclinux:

Будет повод попробовать в ближайшие дни на другой машине, потом напишу здесь дополнение - как прошло.


Да, попробуйте, будьте добры. Просто linux-igd - это как бы серверная часть UPnP, насколько я понимаю... Этот пакет нужен если вы собираетесь сделать свой компьютер маршрутизатором например. Мне очень кажется, что для ваших целей он не нужен.

Xobrtdoclinux Monday, October 15, 2012 8:29:07 AM

Originally posted by Joggerr:

Да, попробуйте, будьте добры.

Вы правы, Opera.Unite работает в Linux Fedora без установки дополнительных пакетов, достаточно открыть в iptables нужный порт.

How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

If you can't read the words, press the small reload icon.


Smilies