Журнал LinuxFormat - перейти на главную

LXF77:К вашим услугам

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

К В@шим услуг@м

Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.

Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.

Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.

«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»


Публикуем файлы в BitTorrent

BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?

Не путайте с нелегальным распространением файлов: на самом деле BitTorrent – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».

BitTorrent эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.

Чтобы скачать поток, пользователь сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей, которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.

Строим трекер

Наиболее популярный трекер называется XBNBT, первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код XBNBT или взять его с нашего диска. распакуйте файл и перейдите в каталог bnbt/src. мы будем собирать простейший трекер, так что просто наберите make xbnbt. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.

Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо отредактировать замысловатый конфигурационный файл. Откройте bnbt.cfg и измените следующие строки (torrents указывает на каталог, который мы только что создали):

allowed_dir = torrents
bnbt_allw_torrent_downloads = 1
bnbt_file_dir = torrents
bnbt_parse_on_upload = 1

Теперь можно запускать сервер. Выполните команду ./xbnbt в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL /users.html, и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.

Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, Azureus. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс /announce (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. Azureus продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.

Поделитесь потоком

Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.

Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В Azureus откройте поток, только что переданный на сервер, и когда Azureus спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. Azureus сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.

Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.

Собственная радиостанция

Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с Icecast.

Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан- ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?

Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.

Shoutcast– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.

Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.

Cтань ди-джеем

Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.

Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – Icecast. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.

Шаг 1. Скачайте и установите Icecast

Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите ./configure, а затем make install, как показано в следующем примере:

tar xvzf ~/Desktop/icecast.tar.gz
cd icecast
./configure –prefix=/usr
make install (с правами root)

Шаг 2. Настройка

В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в /usr/share/icecast, за исключением файла icecast.xml, который находится в /etc/icecast.xml.

Откройте icecast.xml в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие /var/log/icecast. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог /var/log/icecast существует и ваш пользователь Icecast имеет права на доступ к нему.

Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:

mkdir /var/log/icecast
chown graham:users .	# в случае SUSE
chown graham:graham .	# в случае Mandriva

Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле icecast.xml (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду icecast -c /etc/icecast.xml от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.

Шаг 3. Что-НибудЬ послушаем

(thumbnail)
Icecast имеет собственную администраторскую веб-страницу.

Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.

А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл test.ogg в каталоге /usr/share/icecast. Вы можете убедиться в этом, открыв файл error.log (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в /usr/share/icecast/test.ogg и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.

Шаг 4. Меняя песни – ices2

Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для Icecast. Он отвечает за формирование потока данных, который Icecast использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – Ices2.

Ices2 устанавливается аналогично Icecast. Скачайте исходный код, запустите ./configure и затем make install в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге conf. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием ices-playlist.xml.

После того как вы откроете файл ices-playlist.xml в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами <password> и </password>.

Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации Icecast, по той простой причине, что Ices2 будет добавлять новую точку доступа для сервера Icecast. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.

Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом <nominal-bitrate>. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.

Шаг 5. Play-лист ices2

(thumbnail)
Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.

Ключи к предоставлению списка аудио-файлов – в файле ices-playlist.xml. Ices2 использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется playlist.txt, и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:

/home/graham/ogg/broadcast1.ogg
/home/graham/ogg/broadcast2.ogg
/home/graham/ogg/broadcast3.ogg

Наконец, вам нужно запустить Ices2 с единственным аргументом, указывающим на изменённый конфигурационный файл:

ices ices-playlist.xml

Ices2 создаст точку доступа на сервере Icecast и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа example1.ogg определяется конфигурацией Ices2. Теперь вы должны услышать аудиопоток через ваш сервер Icecast, аккуратно сформированный с помощью Ices2. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле.

Если вы откроете страницу администрирования сервера Icecast, появится точка доступа Ices2, вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.

Персональные инструменты
купить
подписаться
Яндекс.Метрика