Так получилось, что я люблю программирование и компьютеры.
Поэтому у каждого члена моей семьи был по одному ПК.
У меня настольный компьютер (Ubuntu), у моей мамы (Windows XP), а у жены ноутбук (Windows Vista).
Была задача — организовать интернет для всего этого оборудования.
Провайдер мне его дает по PPTP. Недолго думая (и ленясь), я купил обычные сетевые карты Ethernet, вставил их в настольные компьютеры и соединил все компьютеры проводами (честно говоря, я тоже купил для своего компьютера модуль WiFi, но тупо не смог настроить это для убунту).
Шло время, мои потребности росли (особенно потребность в мобильности рабочего места), и я стал обладателем ноутбука MacBook Pro. Что делать со старым компьютером? Выбрасывать? Жалко было.
Ведь я собирал его почти вручную два года.
И тогда я решил - буду сервером! Я очистил свой компьютер и переустановил Ubuntu Linux.
Цель
Я хотел, чтобы мой старый компьютер был веб-(HTTP) и файловым (FTP, SSH, SMB) сервером.В фоновом режиме скачивал всякие большие файлы (в том числе и из P2P-сетей).
Это был звуковой сервер (для подключения к нему колонок и передачи звука по WiFi).
Интернет
Сначала я решил наконец разобраться с Интернетом.После пары дней на форумах было решено купить WiFi роутер D-Link DIR-300. Поскольку мне нужно было скачивать из P2P-сетей, я подписался на услугу внешнего статического IP у своего интернет-провайдера.
А поскольку этим IP может владеть компьютер, подключенный напрямую по PPTP, я решил, что ПК будет подключаться к Интернету (есть, конечно, такие вещи, как проброс портов, но мне просто не хотелось заморачиваться).
Настройка роутера оказалась не такой простой, как я думал.
В комплект поставки входил диск, который официально работал в Windows XP и Windows Vista. Я подключил роутер к ноутбуку жены и возился около часа, после чего понял, что Vista там точно не поддерживается.
В XP я настроил быстро, только настройка заключалась в выборе уникального имени WiFi сети и включении скрытого режима.
Далее нам предстояло придумать, как дать интернет на роутер.
Я вспомнил про DHCP(+DNS) и NAT. DNS просто устанавливался командой:
sudo aptitude установить привязку 9DHCP-сервер был установлен с помощью следующей команды:
sudo aptitude установить dhcp3-серверНастроить его было несложно — я добавил в /etc/dhcp3/dhcpd.conf следующие строки:
подсеть 192.168.3.0 маска сети 255.255.255.0 { диапазон 192.168.3.100 192.168.3.150; опция роутеров 192.168.3.1; вариант широковещательного адреса 192.168.3.255; время аренды по умолчанию 600; максимальное время аренды 7200; }Мой роутер находится на интерфейсе eth0, поэтому DHCP-сервер запускается командой dhcpd3 eth0, тогда я понял, что нужно все команды, которые будут выполняться часто, вынести в отдельные скрипты и в итоге у меня получилась следующая файловая структура: /бегать /run/net - здесь работа с сетью /run/приложение — вот запуск дополнительных услуг /запустить/связать - вот привязка файловой системы (расскажу позже) Таким образом я получил файлы: /run/net/dhcp.sh — запуск DHCP-сервера /run/net/vpn-on.sh — подключение по PPTP к Интернету /run/net/vpn-off.sh - отключиться от интернета /run/net/vpn-ensure.sh — Интернет-соединение в случае обрыва записывалось в cron (система периодического выполнения команд) следующим образом:
судо кронтаб -еОткрывается редактор, в котором добавляем строку:
* * * * * /run/net/vpn-ensure.shОстаётся только реализовать маршрутизацию.
После недолгих поисков в сети я написал еще один скрипт ( /run/net/routes.sh ) следующего содержания:
#!/бин/ш iptables -A FORWARD -i ppp0 -o eth0 -s 192.168.3.0/24 -m state --state NEW -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A POSTROUTING -t nat -j МАСКАРАДИ не забудьте выполнить в консоли:
судо -с эхо 1 > /proc/sys/net/ipv4/ip_forwardУра! Интернет есть!
Серверы
Веб- и файловые серверы были установлены одной командой:sudo aptitude установить apache2 samba openssh-server proftpdЕще я установил для них графический интерфейс (поскольку я далеко не профессионал в настройке этих серверов):
sudo aptitude установить gproftpd gsambadИ VNC-сервер, чтобы удаленный рабочий стол сервера был виден с ноутбуков:
sudo aptitude установить x11vncПомимо серверов нужно было продумать файловую структуру.
Я придумал это: /делиться – корневой общий ресурс FTP/SMB /поделиться/скачать — все менеджеры закачек должны размещать сюда файлы /поделиться/музыка /Поделиться видео /поделиться/торенты — отсюда торрент-клиенты должны подобрать торрент-файлы и начать скачивание /доля/секунда - мой второй жесткий диск /доля/третий - мой третий жесткий диск /поделиться/www — корень http-сервера.
Монтируется здесь с помощью скрипта /run/bind/www.sh (mount --bind /var/www/ /share/www/)
Менеджеры загрузок
Это оказалось сложнее.Мне нужны были менеджеры загрузок с веб-интерфейсом, но их было не так много.
Но некоторые были найдены: Потоп У меня просто не хватает слов, чтобы описать этот замечательный торрент-клиент. В нем есть все, включая веб-интерфейс (если бы он иногда не глючил, было бы очень хорошо).
Устанавливается командой:
sudo aptitude установить потокПотом после запуска настроил через графический интерфейс.
млосел мощный, но странный мультипротокольный проект. Единственное, что мне в нем не понравилось, это очень запутанный интерфейс.
Что случилось
Отличный сервер для личных нужд, доступный снаружи (иногда музыку оттуда беру с работы :-) ).Удобная загрузка с торрент-сетей (просто кладу торрент-файл в папку на сервере и он скачивается автоматически).
TimeMachine (система резервного копирования данных, входящая в состав Mac OS X Leopard) работает через Wi-Fi и выполняет резервное копирование данных на сервер (на него выделено 80 ГБ).
Но это было адски сложно (даже я немного разочаровался в Apple) - я это сделал Эта статья .
Нерешенные проблемы
Остаются нерешёнными проблемы:- Аудиосервер (и аудиоклиент для MacBook)
- Менеджер загрузок из сетей ed2k с веб-интерфейсом
- Менеджер загрузок из сетей dc++ с веб-интерфейсом
- Менеджер загрузок HTTP/FTP с веб-интерфейсом
Что дальше
Сейчас занят поиском менеджера закачек для HTTP/FTP, но впервые набросал веб-интерфейс для wget (добавление загрузок, индикатор выполнения, если интересно, могу выложить в sourceforge - будем работать вместе ).P.S. У меня дома это оказывается «дружба народов» :-) Представлены Windows, Linux и Mac OS =) Теги: #домашний сервер #Старое оборудование #Настольные компьютеры
-
Лекция «Женщины И Космос»
19 Oct, 24 -
Порочная Стихия #Вконтакте
19 Oct, 24 -
«Родной» Аккумулятор Бтр
19 Oct, 24