Домашний сервер. WiFi роутер
Пункт номер раз, добавлен только ради того, чтобы обозначить, что у Вас есть выбор, но поскольку ориентация моего блога направлена на ОС Linux, то в статье, всё будет рассматриваться на основе этой операционной системе. Возможно, если это будет иметь смысл и это будет нужно людям, будет вариант описания создания домашнего сервера на ОС Windows.
Пункт номер два. Стоит сразу оговориться, что вариант домашнего сервера на ОС Windows требует больше мощности от комплектующих, нежели на ОС Linux. В моем случае, мой личный домашний сервер основывается на Pentium 4, 1000MHz, 1Gb RAM.
Пункт номер три. Стоит сразу оговориться, что статья рассчитана на «не_совсем_новичок», а на пользователей имевших общение с ОС Linux и вообще с компьютером.
В данной статье мы будем рассматривать домашний сервер на примере ОС OpenSUSE.
Что мы будем делать:
- DHCP Server — для того чтобы раздавать компьютерам в сети ип адреса, таким образом мы получим домашнюю сеть.
- WiFi AP — чтобы была точка доступа WiFi, то есть можно будет убрать в шкаф домашний WiFi роутер.
- FTP Server — для доступа к файловому хранилищу из интернета.
- Samba — для доступа к файловому хранилищу внутри сети.
- TorrentClient — полу-автоматизированный торрент-качалка на Вашем домашнем сервере.
Начнем с установки системы. Процесс тривиален и прост. Практически как Windows установить.
Рисунок 1. Установка OpenSUSE 11.4.
Щелкаем «Далее», выбираем нужные пункты, язык, раскладка клавиатуры и так далее. Отдельно задерживаться не будем, этот этап простой.
Рисунок 2. Процесс установки системы.
После установки системы Вы получите практически голую систему(хотя, на самом деле в ней куча хлама и мусора, не нужных программ, библиотек). Как только система загрузилась в первый раз — перезагрузитесь, если есть ошибки, она сразу вылезут. Принимаемся за работу.
Для начала смотрим сетевые настройки, набираем в консоле:
и смотрим вывод команды. Там будут указаны Ваши сетевые интерфейсы и информация о них:
Рисунок 3. Вывод команды ifconfig
eth0(internet) и eth1(lan) — интерфейсы обычных сетевых карт, в eth0 воткнут шнур с интернетом, а из eth1 шнур идет в свитч, wlan0 — интерфейс WiFi карты, lo — обратная петля, mon.wlan0 — об этом интерфейсе Вы узнаете позже, в другой статье или в этой же, но ниже. Сейчас сразу необходимо воткнуть шнур из которого течет интернет в ту сетевую карту(в данной статье это eth0), в какую он будет всегда воткнут и не путать их. Теперь, открываем консоль и пишем:
nano /etc/sysconfig/network/ifcfg-eth1
Откроется файл конфигурации интерфейса eth1(тот, что для локальной сети), и прописываем туда следующее:
BOOTPROTO='static' IFPLUGD_PRIORITY='0' IPADDR='192.168.1.1/24' STARTMODE='ifplugd' USERCONTROL='no'
Сохраняем (комбинация клавиш Ctrl+O) и открываем следующий файл /etc/sysconfig/network/ifcfg-wlan0 — конфиг беспроводного интерфейса, прописываем туда следующее:
BOOTPROTO='static' IFPLUGD_PRIORITY='0' IPADDR='192.168.2.1/24'
На этом завершена подготовка сетевых карт. О данных функциях Вы можете прочитать в файле ifcfg-template. Эти же настройки можно произвести и из интерфейса, достаточно открыть Пуск-YAST-Сетевые настройки и там изменить IP адреса и другие опции, для всех доступных интерфейсов.
Всё сделали, хорошо. Приступаем к дальнейшей настройке.
DHCP Server. Служба называется dhcpd, при стандартной установке системы, она уже включена в репозитарий системы, ее надо только включить:
Основной конфигурационный файл DHCP сервера находится по адресу /etc/dhcpd.conf. Его и необходимо редактировать. Полную информацию по командам, Вы можете получить написав в консоле следующее:
Для редактирование конфигурационных [далее, конфиг] файлов я использую текстовый редактор nano, также можно использовать vim.
Предлагаю взглянуть на рабочий конфиг файл DHCP сервера, для наглядности:
# Здесь указываем DNS сервера выдаваемые Вашим провайдером, смотрите в договоре с провайдером. option domain-name-servers 77.37.251.33, 77.37.255.30; # Отключаем динамические обновления DNS. ddns-update-style none; ddns-updates off; log-facility local7; # Наша подсеть, для проводных интерфейсов. subnet 192.168.1.0 netmask 255.255.255.0 < # Указываем интерейфейс, через который будет выдавать компьютерам IP адреса из подсети, укзанной выше. В данном случае, применяется схема Server ->switch -> #Computer №1,2,3. если компьютер всего один, то Server -> Computer №1. INTERFACES="eth1"; # Диапазон выдаваемых IP адресов из той подсети, что мы указали выше. range 192.168.1.2 192.168.1.10; # Тут мы вписываем IP адрес нашего сервера, этот адрес надо будет указать в Сетевых настройках но том интерфейсе, который мы указали выше, то есть eth1, далее об этом будет подробнее. option routers 192.168.1.1; # Время обновления адресов(12 часов). Время, через которое DHCP сервер выдаст адреса заново. Возможно, в рамках домашнего сервера это функция бесполезна. default-lease-time 172800; max-lease-time 345600; > # Наша подсеть, для беспроводных интерфейсов. subnet 192.168.2.0 netmask 255.255.255.0
Конфиг файл, предварительно был снабжен разъясняющими комментариями. Это пример простейшего, но вполне рабочего DHCP сервера. Также, необходимо отредактировать файл /etc/sysconfig/dhcpd, а именно одну строчку — DHCPD_INTERFACE=» «, здесь вписываем интерфейсы для беспроводной подсети и проводной подсети, то есть, те самые интерфейсы, которые мы указывали в конфиг файле DHCP сервера — /etc/dhcpd.conf в строчках INTERFACES=»». После этого всего надобно перезагрузить систему.
На этом редактирование конфиг файлов DHCP сервера завершено, если Вы вставите интернет кабель в сервер(eth0), а другой провод вставите в switch и из свитча в свой компьютер, то DHCP сервер Вам выдаст адрес из выбранного диапазона.
HostAP — начинаем настраивать раздачу WiFi.
Первым делом необходимо какой фирмы wifi-сетевая карточка, в данной статье всё будет описываться с условием, что сетевая карта фирмы Realtek, поскольку она самая распространенная. Необходимо скачать и установить утилиту hostapd, изначально при установке из репозитария она собрана без поддержки драйвера nl80211, поэтому необходимо собрать ее из исходников, с включенной поддержкой нужного драйвера (на сетевых карточках от фирмы atheros — hostapd должна работать скачанная из репозитария) об этом поговорим позже. Также необходимо скачать пакет утилит binutils, это можно сделать, выполнив в терминале следующую команду:
После установки утилит, необходимо настроить службу hostapd, весь процесс настройки состоит из редактирования конфигурационного файла /etc/hostapd.conf, место расположение этого файла может быть изменено в файле /etc/default/hostapd.
# Выбор беспроводного интерфейса с которого будет раздаваться WiFi interface=wlan0 # Определение драйвера для вашей сетевой карты driver=nl80211 # Включение функции отвечающей за ведение логов с опциями logger_syslog=-1 logger_syslog_level=4 logger_stdout=-1 logger_stdout_level=2 # Название Вашей сети ssid=myssid # Код страны country_code=RU # Выбор режима раздачи (еще бывают b и n) hw_mode=g # Канал, по которому идти сигнал channel=3 # Пароль для доступа к WiFi wpa_passphrase=pass1234 # Выбор системы шифрования wpa=3 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
Чуть выше находится пример рабочего конфига. Более подробно о процессе настройки и дополнительных опциях читайте в man’e.
Дальнейший шаг это запуск службы hostapd в режиме раздачи WiFi. Для этого пишем команду в терминале:
Вуаля, получаем вывод консоле о том, что запущена раздача WiFi с такого-то MAC адреса и с таким-то SSID:
Configuration file: /etc/hostapd.conf Using interface wlan0 with hwaddr 00:17:31:ed:cb:52 and ssid 'myssid'
Выше Вы видите вывод команды запуска раздачи интернета по WiFi, то есть, успешный запуск службы hostapd в режиме «демона», то есть, фоновая работа службы не зависит от открытого окна терминала, в котором Вы выполнили запуск службы.
На данный момент, Вы будете иметь полноценный WiFi роутер, который может раздать интернет по проводу и по воздуху. Дальше мы будем организовывать файловое хранилище доступное внутри сети, снаружи(из интернета), полу-автоматизированную торрент-качалку, также поговорим о настройке ежедневных/недельных бекапов информации при помощи планировщика и еще многое, для улучшения функционала домашнего сервера, увеличение автоматизации многих процессов, но уже в других статьях и заметках. Спасибо за внимание!
Какой роутер выбрать для домашнего сервера?
Доброго времени суток, есть задача запустить сайт на 200 пользователей. У меня опыта конкретно в развертывании серверов нет, поэтому могу допускать неточности в своих утверждениях, прошу исправлять.
Как я понимаю, для запуска приложения (базируется на django), нужно собрать сервер (мат.плата, процессор, 1-2 слота оперативной памяти, несколько HDD-дисков), поставить на него ОС и настроить все нужные django вещи (nginx, gunicorn, бд—postgresql), с помощью подключения ноутбука в качестве монитора. Также установить на сервер удаленный доступ (насколько опять же понимаю, по ssh, чтобы постоянно монитор не прикручивать для доступа к нему).
Однако, чтобы не растягивать объем тем, задам в этом посту вопрос только по подключению сетевого оборудования:
Посмотрел, какие тарифы доступны для подключения в моем доме, скорость на максимальном тарифе—800 мбит/с. Соответственно, сюда же нужно добавить при покупке роутера белый ip (планируется брать в качестве провайдера skynet).
Какой лучше роутер выбрать для таких задач? (очевидно, что роутер со скоростью большей 800мбит/с брать смысла не имеет из-за узкого горла)
Нужно ли предусматривать какие-либо фаэрволы или другую защиту?
Планируемая нагрузка—одновременное подключение 100 пользователей, которые имеют возможность обмениваться файлами, а также пользоваться чатом, запущенным на сайте, в том числе производить видеозвонки (используется webrtc)
Стоит иметь ввиду, что указанная в тарифе скорость не гарантирована. Во-первых, трафик для физиков несимметричный. Во-вторых, физики обычно делят канал. Ну и SLA с физиками нет.
То есть например если пропускная способность 800мбит/с, то при одновременном использование 100 пользователями на каждого будет приходится только 1МБ/с?
Andrei1penguin1, чуть сложнее, но если грубо, то да. Часто обещанный гигабит вечером стремительно деградирует в 10 мегабит, так как все пришли с работы, смотрят фильмы, что-нибудь качают, во что-нибудь играют и т.п.
Сергей Горностаев, а как Вы считаете, для моих задач (100-200 одновременных подключений) хватит заявленной пропускной способности в 800мбит/с (даже с учётом меньшей реальной скорости) ?
Andrei1penguin1, количество подключений — недостаточная метрика для оценки. Важно, какой поток данных будет через них течь и какая нужна латентность для стабильности соединения. Но обычно домашнего интерната на что-либо серьёзное не хватает.