Хотел написать про домашний сервер, но подумал и решил, что сервер без сети не интересен, поэтому будет «Домашняя сеть». В моём распоряжении 2 компа с выходом в инет. После появления ноутбука комп стал выполнять чуток другую роль:
- Шлюз в инет
- Файлопомойка
- Резервное копирование
- Генератор шума в комнате
- Загрузчик файлов из инета
В принципе я этим и раньше занимался, но сейчас мне удобнее повелевать сервером с дивана.
Параллельно с разбором сети буду делиться первыми впечатлениями о системе ALT Linux 5.0 beta, которая установлена на серваке.
Итак, моя домашняя сеть представляет из себя два компьютера:
- Сервер: 192.168.0.1 + внешний IP с выходом и инет
- Ноутбук: 192.168.0.2
Шлюз в инет
Переводя сервер на ALT я надеялся, что смогу всё настроить через его графический настройщик (в том числе и файрвол)
Но уже с самого начала использования альта пришлось превращать его в слаку, устанавливая скрипт настройки файрвола (/etc/init.d/rc.nat) из слаки:
#!/bin/bash iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD iptables -t nat -F POSTROUTING iptables -t nat -F PREROUTING iptables -A INPUT -j ACCEPT iptables -A OUTPUT -j ACCEPT iptables -A FORWARD -j ACCEPT # EXTERNAL -> external network interface # INTERNAL -> internal network interface EXTERNAL=eth0 INTERNAL=eth1 echo 1 > /proc/sys/net/ipv4/ip_forward echo "Setting up NAT (Network Address Translation)..." # by default, nothing is forwarded. iptables -P FORWARD DROP # Allow all connections OUT and only related ones IN iptables -A FORWARD -i $EXTERNAL -o $INTERNAL -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i $INTERNAL -o $EXTERNAL -j ACCEPT # enable MASQUERADING iptables -t nat -A POSTROUTING -o $EXTERNAL -j MASQUERADE |
И не забыл прописать rc.nat в конец /etc/init.d/local
Файлопомойка
Через SSH надоело перебрасываться файлами с сервером. Эти постоянные вводы команд и паролей. Решил воспользоваться классическим решением — NFS (ну просто раньше как-то не приходилось). По идее здесь всё просто. На сервере в /etc/exports что-то типа этого:
/home/pavel 192.168.0.2(rw,async) |
На клиенте:
# mount -t nfs 192.168.0.1:/home/pavel /mnt/homeserver/pavel |
или тоже самое прямо в /etc/fstab. ALT здесь приподнёс интересный сюрприз. Ну не получается на клиенте примонтировать NFS! Решение нашлось на форуме ALT Linux, а именно в совете правки файла /etc/sysconfig/portmap:
|
убираем «-l» и получаем: |
|
Перезапускаю на сервере portmap, nfs, nfslock и радуюсь нормальному доступу к файлам.
Резервное копирование
На сервере под это дело был выделен отдельный раздел размером 80Гб, чтобы при желании полностью умещать содержимое жёсткого диска ноутбука. На ноуте к этому разделу можно получить доступ через NFS после его монтирования в /mnt/homeserver/backup/
А вот скрипт, который будет выполнять копирование информации на сервер:
#!/bin/bash if mount /mnt/homeserver/backup/ then rsync -rctlpEXog --delete /home /mnt/homeserver/backup/ rsync -rctlpEXog --delete --exclude='/var/cache*' /var /mnt/homeserver/backup/ rsync -rctlpEXog --delete /etc /mnt/homeserver/backup/ rsync -rctlpEXog --delete /root /mnt/homeserver/backup/ umount /mnt/homeserver/backup/ else exit 1 fi exit 0 |
Этот скрипт у меня лежит в домашнем каталоге на /home/pavel/makebackup.sh. Осталось прописать его в anacron, добавив такую строчку в конец конфига /etc/anacrontab:
2 60 backup nice /home/pavel/makebackup.sh |
Скрипт будет выполняться автоматически через каждые 2 дня спустя 60 минут после включения ноутбука.
Генератор шума в комнате
Кто-то использует Music Player Daemon и Sonata, как составляющую красивых скриншотов с модными GTK’шными темами от дизайнеров DeviantArt (мне, честно говоря, тоже нравятся всякие GTK темки)
(источник)
А я буду использовать MPD по назначению! Установить его и Sonata можно с помощью пакетного менеджера любого дистра. MPD — на сервер, а Sonata на диван на ноутбук. По дефолту MPD привязывается к адресу 127.0.0.1, поэтому в конфиг вношу поправку привязки к внутреннему адресу сервера и создаю симлинк из каталога с музыкой в каталог, из которого MPD формирует базу.
Теперь на удивление гостям могу включать музыку, не поднимаясь с дивана.
В ALT Linux MPD иногда падает. Причина не выяснена, но и пока не сильно раздражает меня.
Загрузчик файлов из инета
Хорошо, что сейчас безлимитный интернет ещё и быстрый. Вместо внутрисетевых файлообменников можно качать свежие образы Ubuntu или Debian, например, с The Pirate Bay. Дефолтным клиентом к torrent-сетям для многих дистрибутивов сейчас является Transmission. Когда-то к нему отдельно можно было прикрутить web-интерфейс Clutch. Начиная с версии 1.3 или 1.4 web-фейс идёт уже вместе с Transmission.
С ноутбука подключаюсь к Transmission по адресу http://192.168.0.1:9091/. А чтобы казалось, что работаю с полноценным приложением, делаю это из Prism.
Внимание, вопрос!!! Что бы вы переложили на ваш домашний сервер?
Оо спасибо. Давно была идея организовать, что-то подобное, на досуге буду реализовывать+))
Спасибо за Transmission — не знал, что там есть Web интерфейс.
Ещё одно интересное применение домашнего сервера — использование вирутализации. Часто нужно воспользоваться операционными системами, отличными от основной. Для этого очень полезно использование виртуальных машин. Ноутбук для этого жалко (ресурсы тут весьма ограниченны), так что это тоже хорошая задача для домашнего сервера. Многие средства виртуализации (например VirtualBox) позволяют использовать VNC для доступа к виртуальной машине, так что пользоваться вирутализацией также можно с ноутбука, если соответствующим образом настроить VirtualBox.
Если у тебя статический IP-адрес, использование MASQUERADING не рационально. Лучше для этого использовать SNAT.
Интересные выкладки. Сам использую домашний сервер как файлохранилище, но шаринг организован посредством cifs и samba, поскольку дома также наличествует медиацентр под вендой. Все медиа хранится только на сервере и всей домашней локалкой стримается непосредственно с него, что, как ни странно, довольно слабо нагружает дисковую подсистему. Кроме того — самопальный хостинг (соответственно LAMP и все его причендалы, плюс кэширующий неавторитативный dns под названием unbound, плюс exim настроенный только на рассылку) и качалка/шарилка файлов в виде связки из linuxdcpp и rtorrent с веб-мордой посредством xmlrpc и апачевского mod_scgi. Плюс там же крутится три dc++ хаба. В качестве шлюза выступает отдельный роутерный девайс.
Также +1 к виртуализации, rdesktop на клиенте + VRDP виртуалбокса здесь прямо-таки заруливает, даже несмотря на то что приходится также иметь запущенным Xvnc (впрочем он все равно нужен для linuxdcpp ибо я до сих пор не наблюдаю приемлемого консольного dc-клиента). Особенно приятно иметь дополнительную ось на сервере с тех пор как virtualbox обзавелся автоматизацией создания хост-интерфейсов.
Также весьма удобно организовывать игровые сервера, хотя лично у меня они долго не держались х)
Что бы я еще переложил на сервер — функции принт-сервера, тем более что через самбу все это делается на раз-два. Иногда возникает необходимость печати с ноутбука, приходится копировать на флешку и нести к компу с принтером. Но пока что по ряду причин это проделать нельзя.