Обновить

Как сделать подключенный к Стриму домашний комп веб-сервером

Лайфхаки для гиков
Pre-Scriptum: насколько я знаю, некоторые из моих статей постились кем-то в Хабр, я же здесь всего второй день. Поэтому извиняюсь, если этот пост покажется вам «бояном». Чтобы меня не обвиняли в плагиате, приведу ссылку на оригинал моей статьи. Вообще же я собираюсь писать в своем хабра-блоге в основном на тему носимых компьютеров. Над одним из подобных устройств я работаю второй год. Собственно, приведенные ниже действия были направлены на создание «внешних мозгов» моему НК (носимому компу), чтобы тот мог передавать какие-то задачи на домашний комп или брать с него данные.

Итак, начнем…

Иногда у человека появляются странные желания — находясь вдали от дома, приглядывать за жилищем через глазок веб-камеры, работать в метро на тихо урчащем далеко-далеко домашнем компьютере или просто сэкономить на хостинге. Эти и другие ненормальные идеи легко претворить в жизнь, сделав домашний компьютер настоящим веб-сервером, к которому можно подключиться через интернет.

Сразу оговорюсь — я не стану затрагивать вопросов установки программ вроде Apache или вопросы безопасности (сделав компьютер доступным извне, мы увеличиваем число грозящих ему опасностей).

Мои исходные данные: компьютер под управлением Fedora 9, подключенный к нему через Ethernet ADSL-модем/роутер ASUS AAM 6020 BI и подключение к интернету через Стрим. Но, думаю, приведенная ниже информация может быть полезной и пользователям других операционных систем, модемов и провайдеров.

1. ВЫВОД КОМПЬЮТЕРА ЧЕРЕЗ ФАЙРВОЛ В «ОТКРЫТЫЙ ИНЕТ»

Зайдем в настройки роутера: Advanced -> LAN Clients и добавим домашний компьютер, введя его локальный IP, произвольное Hostname и MAC-адрес его сетевой карточки.

2. ПЕРЕАДРЕСАЦИЯ ПОРТОВ

Перейдем во вкладку Advanced -> Port Forwarding. Если бы я была подключена через какого-либо другого провайдера, то для вывода компьютера «в большой интернет» я могла бы выбрать категорию Servers и добавить (Add >) из списка готовых правил правило Web Server. Но в Стриме порт 80, использующийся протоколом HTTP, закрыт. Поэтому придется организовать обращение к серверу через другой, не перекрытый порт — например, 8880. Проверить, какие порты у вас открыты, а какие закрыты, можно на www.dyndns.com/support/tools/openport.html (этот сайт нам еще пригодится). Выберем категорию User и создадим новое правило: New. Назовем его, к примеру, HTTP8880 и пропишем следующие значения:
Protocol: TCP
Port Start: 8880
Port End: 8880
Port Map: 80

То есть обращения к портам, находящимся в диапазоне Port Start — Port End (в нашем случае это единственный порт 8880) будут перенаправляться на 80-й порт.

Порт 22, использующийся в для SSH-доступа в Стриме не перекрыт. К сожалению, готового правила для SSH-доступа на роутере не оказалось, поэтому если необходим SSH-доступ, создадим еще одно правило. Назовем его SSH и пропишем во всех трех окошках порт 22.

Для FTP-доступа также придется создать правило. Как и в случае с HTTP, 21-й порт перекрыт, поэтому создадим еще одно правило: FTP8881
Protocol: TCP
Port Start: 8881
Port End: 8881
Port Map: 21


Создав новые правила, добавим их: Add -> и сохраним изменения: Tools -> System Commands -> Save All.

3. ИМЯ ДЛЯ СЕРВЕРА

Теперь, после перенастройки портов, из интернета можно получить доступ к веб- и фтп-серверам, крутящимся на домашнем компе. Правда, придется указывать порт и внешний IP домашнего компа. Чтобы вместо IP указывать «человеческое» доменное имя (например, vasya.dyndns.org), воспользуемся бесплатным сервисом www.dyndns.com. Кстати, выяснить свой внешний IP можно опять же с помощью этого сайта: на checkip.dyndns.com. Зайдем на www.dyndns.com и заведем новый эккаунт. Теперь надо настроить эккаунт, перейдя на этом сайте по My Services -> Host Services и прописав в IP Address Ваш внешний IP. Узнать его можно как с помощью указанной выше ссылки checkip.dyndns.com, так и зайдя в меню роутера Status -> Connection Status.

Отныне к HTTP-серверу компьютера можно обращаться по vasya.dyndns.org:8880, а к FTP-серверу — по vasya.dyndns.org:8881. Вроде бы все хорошо, но есть еще одна проблема.

4. БОРЬБА С КОВАРНЫМ СТРИМОМ, ПОСТОЯННО МЕНЯЮЩИМ IP

Как правило, раз в сутки динамические IP клиентов Стрима принудительно меняются. DynDns позволяет привязать вечно меняющийся IP домашнего компа к доменному имени. Некоторые роутеры умеют работать с сервисом DynDns, и в них можно настроить автоматическое обновление dyndns-эккаунта при изменении вашего внешнего IP. Мой роутер таким трюкам оказался не обучен. Если роутер не может — пусть это делает компьютер. Скачаем с www.dyndns.com/support/clients одну из утилит. Для Линукса я выбрала inadyn. Будучи запущенной, эта утилита при смене внешнего IP будет обновлять его в Вашем dyndns-эккаунте. Есть там аналогичные утилиты и для других операционных систем. Но вернемся к inadyn. Скачав и распаковав архив с дистрибутивом утилиты, я открыла распаковавшийся файл readme.html и настроила утилиту в соответствии с приведенными в нем инструкциями:
— создала файл /etc/inadyn.conf, в который прописала 6 строк:
log_file /var/log/inadyn.log
username мой_логин_в_dyndns.com
password мой_пароль_в_dyndns.com
background
update_period 60000
alias vasya.dyndns.org

Далее скопируем утилиту inadyn в каталог /opt и под root'ом запустим:
# /opt/inadyn
И все! Проверить, что inadyb «сидит» в памяти можно командой
# ps -efH | grep inadyn

Чтобы не запускать все это великолепие каждый раз вручную, допишем в конец файла /etc/rc.local строку:
/opt/inadyn

5. URL БЕЗ ":8880"

Если веб-сервер нужен для персонального использования, описанных выше телодвижений вполне хватит. Но для публичного веб-сервера необходимость обращаться к vasya.dyndns.org:8880 вместо vasya.dyndns.org — не самый удобный вариант. Можно, например, где-нибудь захоститься по бесплатному или самому дешевому тарифу и разместить на хостинге страничку, которая будет переводить посетителя на vasya.dyndns.org:8880. Но можно воспользоваться еще одной услугой DynDns: My Services — > Add New Hostname. Создадим еще одно доменное имя, например, vasya.homelinux.org, но в качестве Service Type: вместо Host with IP address укажем WebHop Redirect и в появившемся поле Redirect URL пропишем vasya.dyndns.org:8880/. Сохраним изменения кнопкой Save Changes. Теперь при заходе на vasya.homelinux.org браузер будет автоматически переадресовываться на vasya.dyndns.org:8880/.</lj-cut>
Теги:fedoraстримвеб-сервер
Хабы: Лайфхаки для гиков
Рейтинг +11
Количество просмотров 1,1k Добавить в закладки 32
Комментарии
Комментарии 9

Похожие публикации

Лучшие публикации за сутки