Введение
В первой части нашего материала мы закончили работу с аппаратной частью проекта. Вторая часть посвящена установке программного обеспечения с открытым исходным кодом, средствами которого и будет создан файл-сервер SAMBA. Кроме того, мы установим web-сервер LAMP для клиента TorrentFlux, который можно будет использовать для работы в файлообменной сети BitTorrent.
Уже сейчас, выполнив всё описанное в первой части, вы можете спрятать доработанную Xbox в укромное место. С этого места мы будем работать удалённо через SSH. Если вы не знакомы с тем, как происходит работа с дисками в Linux (разбиение на разделы, форматирование и подключение), мы рекомендуем ознакомиться с этим материалом (на английском языке). Вкратце: для того чтобы отформатировать и смонтировать новый диск, нужно войти в систему под учётной записью root и выполнить следующее.
fdisk /dev/hdb n (новый раздел) p (основной раздел) 1 (раздел 1) enter (для выбора по умолчанию первым цилиндром номер 1) enter (для создания раздела на всём диске) w (для вступления изменений в силу) q (выход) |
Теперь можно отформатировать раздел.
mkfs -t ext2 -j -m 1 /dev/hdb1 |
Когда диск отформатирован, переходим к созданию каталога, к которому мы будем монтировать диск.
mkdir /samba_share (можете выбрать и другое имя каталога) |
Затем разрешаем всем доступ к каталогу для чтения и записи.
chmod 777 /samba_share |
Теперь нужно настроить систему, чтобы она автоматически монтировала диск при загрузке Xbox. Отредактируйте файл /etc/fstab, используя редактор vim: добавьте следующую строку в конце файла.
/dev/hdb1 /samba_share ext3 defaults 2 1 |
Выходим из vim и монтируем диск.
mount /mnt/hdb1 |
Установка и удаление программ
На этом этапе, после того, как вы загрузили Linux и зашли на Xbox по SSH, должен появиться общий каталог samba_share. Все файлы, размещённые здесь, будут доступны из сети.
Перейдём к установке программного обеспечения. В Debian есть удобная команда для установки программного обеспечения, проверяющая все зависимости. Для реализации общего доступа к файлам нам нужно установить Samba и графический интерфейс настройки Samba – SWAT.
Поскольку мы собираемся установить ещё и клиента BitTorrent TorrentFlux, установим также web-сервер Apache, сервер баз данных MySQL и поддержку PHP4. Кроме того, мы установим phpmyadmin – графический интерфейс администрирования MySQL, но это вовсе не обязательно.
apt-get update upgrade apt-get install samba apt-get install swat apt-get install apache apt-get install mysql-server apt-get install php4 apt-get install phpmyadmin (опционально) |
Поскольку необходимости в мониторе нет, то можно удалить модули X-Windows, освободив память. Для этого нужно выполнить следующие команды.
dpkg –purge xfs dpkg –purge x-window-system dpkg –purge xdm apt-get remove lpr (если не планируете использовать систему в качестве сервера печати) |
Если всё прошло гладко, то вы должны получить готовый вполне работоспособный web-сервер LAMP. Запустите на вашем ПК браузер и наберите адрес http://ip_address/ (естественно, нужно указать IP-адрес Xbox). В результате запроса вы должны увидеть сообщение, что страница находится в стадии разработки.
Samba и SWAT
Начнём с установки сервера Samba, так как именно он нужен для предоставления общего доступа к файлам в сети Windows. SWAT (Samba Web Admin Tool) позволяет настраивать Samba, используя для этого удобный web-интерфейс (вместо конфигурационного файла samb.conf, в котором задаются настройки Samba). Немного подробнее узнать о SWAT можно здесь.
Для активации SWAT нужно отредактировать файл /etc/inetd.conf, поэтому выполните следующую команду.
vi /etc/inetd.conf |
В конце файла должна быть следующая строка.
swat stream tcp nowait.400 root/usr/sbin/tcpd /usr/sbin/swat |
Возможно, она уже есть и закомментирована символом ‘#’. Так или иначе, но строка должна быть без комментария. Нужно также проверить строки, ссылающиеся на smbd и nmbd, которые тоже могут оказаться закомментированы. Таким образом, прежде чем закрывать файл, убедитесь, что в нём присутствуют и активны следующие строки.
netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd |
После этого можно с чистой совестью перезагрузить Xbox следующей командой.
/etc/init.d/inetd restart |
Теперь наша система поддерживает Samba и NetBIOS по IP. Когда система запустится, вы можете обращаться к приставке по имени DNS, которое вы задали во время установки системы, например “xbox”, или по IP-адресу.
Теперь с вашего ПК переходим в браузере по адресу http://ipaddress:901/ (указываем IP-адрес Xbox), и если проблем не возникло, то на экране должна отобразиться страница интерфейса администрирования. Если нажать на кнопку “Status” в верхней части экрана, то можно увидеть, что демоны/сервисы smbd и nmbd запущены. Если нет, вероятно, вы допустили ошибку где-то ранее, так что рекомендуем вернуться и проверить файл /etc/inetd.conf.
Нажмите на кнопку “Share”s, задайте имя (например, “samba_share”) затем нажмите на кнопку “Create Share” (“Создать общий ресурс”). Отобразится список опций создаваемого ресурса. Здесь нужно изменить “path” на имя каталога, к которому мы раньше смонтировали жёсткий диск. В нашем примере “/samba_share”. Выключаем режим “только чтение”, включаем гостевой доступ (guest ok) и нажимаем “Commit Changes” (“Принять изменения”). В результате этих действий будет создан сетевой ресурс, доступный всем для чтения и записи. Если вы пожелаете задать особые права доступа для пользователей, то это можно сделать на этой же странице.
Если теперь открыть сетевое окружение на компьютере с Windows и отобразить компьютеры рабочей группы, вы увидите в списке “Xbox”. Щёлкаем по значку, после чего вы должны увидеть общий сетевой каталог и ряд других “излишества” вроде принтеров. Для удобства вы всегда можете подключить общий ресурс в качестве сетевого диска.
Итак, второй этап проекта завершён!
BitTorrent и TorrentFlux
Ниже мы рассмотрим установку TorrentFlux – клиента для файлообменной сети BitTorrent. Подробнее ознакомиться с TorrentFlux можно на сайте, там же можно найти и последнюю версию программы. TorrentFlux это не Azureus, однако он гораздо менее требователен к ресурсам и идеально подходит для нашего случая. Здесь мы рассматриваем работу с версией 2.0 beta 1. Итак, переходим в домашний каталог на Xbox и набираем следующую команду (одной строкой).
wget http://prdownloads.sourceforge.net/torrentflux/torrentflux-2.0beta1.tar.gz?download |
После этого архив gzip будет скачан в домашний каталог. Распаковываем архив в каталог с именем torrentflux-2.0beta1.
tar -zxvf torrentflux-20.beta1.tar.gz |
Перейдите в новый каталог и прочитайте документ INSTALL.
Копируем каталог html в папку с другими web-страницами.
mkdir /var/www/torrentflux cp -r html /var/www/torrentflux |
Теперь нам нужно создать базу данных mysql для TorrentFlux.
mysqladmin create torrentflux |
После этого, создаём все необходимые таблицы, используя для этого имеющийся скрипт torrentflux.sql.
mysql torrentflux < torrentflux.sql |
Добавляем пользователя mysql: в командной строке выполняем команду.
mysql |
Подключаемся к только что созданной базе данных.
connect torrentflux |
Добавляем пользователя.
grant CREATE,INSERT,DELETE,UPDATE,SELECT on torrentflux.* to tf@localhost; |
Задаём пароль.
set password for tf = password(‘MyPassword’); |
Выходим из mysql, набрав “exit”.
Копируем два файла bittorrent python и делаем их исполняемыми.
cp TF_BitTornado/ /usr/local/ chmod +x /usr/local/TF_BitTornado/btphptornado.py chmod +x /usr/local/TF_BitTornado/btshowmetainfo.py |
Изменяем файл config.php.
vi /var/www/torrentflux/config.php |
В верхней части видны различные настройки. Они должны выглядеть примерно следующим образом.
$cfg[“db_type”] = “mysql”; $cfg[“db_host”] = “localhost”; $cfg[“db_name”] = “torrentflux”; $cfg[“db_user”] = “tf”; $cfg[“db_pass”] = “MyPassword”; $cfg[“path”] = “/samba_share/downloads/”; $cfg[“btshowmetainfo”] = “/usr/local/TF_BitTornado/btshowmetainfo.py”; |
В файле есть и другие настройки, например, номера портов, которые вы можете изменить. Все они вполне очевидны. Сохраните файл и попробуйте перейти по адресу http://ipaddress/torrentflux с одного из ваших ПК. Надеемся, вы увидите экран входа с предложением ввести логин/пароль. Отметим, что указанные имя и пароль будут сохранены как данные администратора.
Если вы пользовались BitTorrent, то воспользоваться клиентом TorrentFlux не составит труда. Если потребуется помощь, разрешить все вопросы можно на форуме TorrentFlux Forum.
На этом вторая часть заканчивается. В следующей части мы покажем, как можно разделять полосу канала между BitTorrent и другими приложениями Интернета, а также протестируем производительность получившегося решения.