Как создать сервер с нуля: полное руководство
Создание сервера кажется сложной задачей, но вы можете попробовать создать сервер для личных целей или коммерческих. В статье мы описали компоненты собственного сервера и подробные шаги его создания с нуля.
Команда is*hosting 30 мая 2023 6 мин
- Несколько вопросов перед началом создания собственного сервера
- Что необходимо для создания своего сервера?
- Сколько стоит создать собственный сервер?
- Для чего нужен собственный сервер?
Сервер — необходимая часть любой системы, основанной на использовании информационных технологий. Мы пользуемся серверами каждый день — например, почтовые ящики любых провайдеров (Google, Yandex, Mail, Yahoo и др.) связаны с облачными серверами, хранящими весь объем получаемой и отправляемой корреспонденции.
Существует несколько видов серверов, отличающихся по стоимости и функциям, поэтому их можно использовать как в коммерческих, так и в личных целях.
Создание сервера не настолько сложная задача, как может показаться в начале. Даже не имея опыта в настройке серверов, написании кода или, в целом, работы с подобными технологиями, сервер может создать практически любой пользователь. В этой статье вы узнаете про основные этапы создания собственного сервера.
Несколько вопросов перед началом создания собственного сервера
Что необходимо, чтобы создать сервера?
Итак, что нужно для сервера:
Физический сервер, виртуальный сервер или обычный компьютер. “Железо” вашего сервера является его главным компонентом. Вы можете использовать другой компьютер в качестве сервера, достаточно убедиться, что он оснащен процессором с частотой 300 МГц и 64 МБ RAM. Альтернатива — приобрести физический сервер или виртуальный сервер. От этого будет зависеть его стоимость.
Сетевой роутер (маршрутизатор). В большинстве случаев подойдет обычный беспроводной домашний роутер, которым мы пользуемся для выхода в Интернет. Маршрутизатор может выполнять функцию фильтра пакетов данных, которые поступают на ваш домашний сервер и выводятся из него.
Кабель Ethernet: Необходим при создании сервера, который будет находится рядом с вами. Эти кабели также известны как CAT5 и используются для подключения компьютеров при установке сервера. С помощью кабеля Ethernet можно увеличить скорость получения данных до 100 МБ/с данных. То есть к серверу можно подключиться как по беспроводной, так и по проводной технологии.
Память. Убедитесь, что выбранный сервер (или компьютер) обладает достаточным объемом оперативной памяти (RAM). В сервере RAM важна для обработки данных, поступающих с жестких дисков (HDD) на центральный процессор (CPU).
Если вы планируете собрать собственный сервер из нескольких компонентов, то вам понадобятся:
- Оперативная память DDR4
- Для более сложных задач процессоры Ryzen или Xeon
- Материнская плата HP, Dell, Asus или ASRock
- Жесткий диск в виде SSD или NVMe
- Система охлаждения
- Сетевая карта, роутер и кабель Ethernet
- Блок питания мощностью от 300-500 Вт
- Корпус для всех компонентов сервера
Сколько стоит создать свой сервер?
Стоимость сервера преимущественно зависит от его физической оболочки. Если вы планируете создать домашний сервер своими руками, можете использовать компьютер в качестве сервера, то это обойдется вам бесплатно. Покупка отдельного сервера или сбор из компонентов может быть более затратной.
Есть альтернативные варианты, которые не только сократят ваши расходы, но и облегчат работу с сервером. К ним относятся облачные хостинги, VPS и выделенные серверы.
Облачный хостинг — распространенная услуга, которую можно приобрести у Amazon, Google, DropBox и т.п. Однако такой сервер, вероятнее всего, будет привязан к конкретному приложению и будет полностью контролироваться провайдером. У вас не будет возможности настраивать его под ваши нужды.
VPS, или виртуальный приватный сервер, представляет собой часть физического сервера, выделенного под ваши потребности с помощью технологии виртуализации. В данном случае вы вольны самостоятельно выбирать ОС, программное обеспечение, варианты использования ресурсов виртуального сервера. Такой сервер можно масштабировать в любой момент. Стоимость VPS от is*hosting стартует от $5.00.
Выделенный сервер — это физически представленная машина, все ресурсы и мощности которой предоставлены только одному арендатору. Это наиболее надежный вариант хостинга, в котором исключен эффект “плохих соседей”, а уровень безопасности вынесен на более высокий уровень. Такие серверы пользуются популярностью у крупных проектов. Стоимость выделенных серверов от is*hosting стартует от $70.00.
Для чего нужен собственный сервер?
- Сервер для проекта. Это может быть сайт, мобильное приложение или площадка для разработки новой программы. В данном случае имеется в виду коммерческое использование сервера, для которого необходима определенная настройка. П очтовый сервер своими руками — это возможность автоматизации email-маркетинга.
- Сервер для торговли на биржах. Многие трейдеры выбирают вариант собственного сервера для более эффективной торговли на популярных биржах. Как выбрать VPS/VDS для Forex и MetaTrader? Для торговли ботами на Binance также подойдет виртуальный сервер — VPS для Binance.
- Сервер для хранения бэкапов. Если вы не хотите доверять свои резервные копии таким компаниям как Google или Apple, то вы всегда можете сохранять бэкапы необходимых устройств на свой собственный сервер.
- Игровой сервер своими руками . Иногда для полного погружения в игру необходим собственный сервер. Например, многие игроки Minecraft и CounterStrike прибегают к созданию своих серверов. Как создать свой сервер Minecraft?
- Домашний медиа сервер. Если вы хотите иметь доступ ко всем локальным медиафайлам на любом устройстве в вашем доме, домашний сервер для хранения данных с удаленным доступом — одно из лучших решений. Чтобы сделать процесс еще проще, вы можете использовать такие сервисы, как Plex или Kodi, для управления медиа файлами.
Определите требования к серверу
Первым шагом при создании сервера является определение ваших требований. Вы должны учесть количество пользователей, которые будут обращаться к серверу, тип приложений, которые вы будете запускать, объем памяти, который вам потребуется, и уровень производительности. При принятии решений следует также учитывать будущий рост и масштабируемость.
Некоторые приложения требуют больше ресурсов, чем другие, поэтому важно выбрать сервер, способный удовлетворить ваши конкретные потребности. Например, вы можете заранее узнать о “весе” нужных программ и отталкиваться от этих значений.
Что касается производительности, то в данном случае стоит обратить внимание на процессор (CPU), объем оперативной памяти и устройства хранения данных. При аренде выделенного сервера или VPS у хостинг-провайдера такие параметры можно выставить во время выбора сервера.
Устройства хранения данных — это хранилища, где вы будете накапливать различные данные, включая резервные копии, базы данных, медиафайлы и т.п.. Это может быть как выделенное на сервере место, либо отдельное устройство (дополнительный сервер или диск).
Для создания собственного сервера необходим сетевой маршрутизатор, поэтому стоит заранее подготовится к обеспечению нужной пропускной способности. Если вы планируете создать веб-сайт с высокой посещаемостью или предоставляете услуги внутри мобильного приложения большому количеству пользователей, вам понадобится сервер с быстрыми сетевыми интерфейсами и высокой пропускной способностью.
Создавая собственный сервер, не забудьте, что объем хранимых данных на нем со временем будет увеличиваться, как и устанавливаемые программы. Будь то личный сервер или коммерческий, ориентируйтесь на возможности масштабирования.
Выберите тип сервера
Итак, у вас есть два пути: собрать сервер своими руками из необходимых компонентов (или старого компьютера) или арендовать сервер с нужным набором технических характеристик у хостинг-провайдера.
Среди физических серверов выделяют башенные (Tower, подходят для личного использования), стоечные (для установки в серверную стойку), гибридные (сочетание выделенного сервера и виртуальных) и блейд-серверы (установка в блейд-шасси). Такое оборудование является дорогостоящим вариантом.
Аппаратное обеспечение стоит дорого, а на настройку системы уйдут часы, даже если вы опытный пользователь. Аренда сервера — это более простой и безопасный вариант, поскольку предлагаются готовые решения, подстраиваемые под ваши потребности.
Рассмотрим наиболее простые и популярные варианты, которые будут стоить вам ежемесячной арендной платы в зависимости от используемых ресурсов:
- Выделенный сервер. Выделенный сервер обеспечивает ту же функциональность, как и сервер в собственности компании или конкретного пользователя, но обслуживается хостинг провайдером и находится в защищенном дата-центре. Существуют администрируемые и не администрируемые выделенные серверы, оба вида отличаются высокой производительностью, высокой скоростью соединения, гибкой настройкой.
- VPS. Это изолированная виртуальная среда на выделенном сервере, с определенными мощностями CPU, RAM и дисковым пространством. За счет того, что на одном выделенном сервере могут независимо находится несколько VPS, стоимость виртуального приватного сервера гораздо ниже. При этом он дает такие же возможности как и выделенный сервер.
Выберите опции
Если вы планируете арендовать сервер у хостинг-провайдера, то вам доступно несколько опций.
Администрируемый сервер предполагает предустановку операционной системы, удобной панели управления, основных сервисов (php, ftp, apache, mySQL и т.д.) помощь при недоступности сервера, настройка автоматических бэкапов, антивирусная проверка, консультации и т.п.
При выборе не администрируемого сервера, хостинг-провайдер предоставит вам его с установленной чистой ОС, либо без ОС (если вы указали данное требование в примечаниях к заказу). Вы получаете доступ к специальному интерфейсу для удаленного управления сервером (IPMI) и можете самостоятельно настраивать сервер под свои нужды.
Многие хостинг-провайдеры имеют международную инфраструктуру, поэтому вы можете выбрать локацию вашего сервера в зависимости от целей его использования.
Сконфигурируйте свой сервер
При создании сервера своими руками его конфигурация зависит от приобретенных компонентов и выбранного ПО. При аренде сервера в специальном конфигураторе вы можете выбрать те параметры, которые вам необходимы, включая некоторые дополнительные сервисы:
- Операционная система (версии Windows или Linux)
- Объем оперативной памяти
- Объем дискового пространства
- Наличие графического процессора
- Количество IP-адресов
- Панель управления
- Вид администрирования
- Регулярность резервного копирования
- Скорость порта и размер пакета трафика
- Тип защиты от DDoS атак
Если вы не определились с выбором конфигурации, то можете обратиться в техническую поддержку за помощью.
Выбор операционной системы вашего сервера зависит от личных предпочтений и необходимой гибкости. В пользу Windows говорят ее практичность, производительность и наличие широких возможностей. За счет своей надежности Windows Server идеально подходит для терминалов и файловых серверов. Семейство Linux отличается несколькими дистрибутивами (Debian, Ubuntu, CentOS), которые имеют свои преимущества и подходят для разных задач. Одним из первых дистрибутивов Linux для серверов является Ubuntu, который до сих пор составляет конкуренцию Windows.
Также для работы с сервером понадобится панель управления. Среди наиболее популярных и понятных вариантов: cPanel, ISPmanager, VestaCP, Plesk. Выбор панели может зависеть начиная от графического интерфейса и заканчивая возможностями управления. Для работы вам также понадобится дополнительное ПО (службы для работы с базами данных и др.).
Что касается устройств хранения, то рассмотрите возможность использования твердотельных накопителей (SSD) для ускорения доступа к данным и скорости чтения/записи. Если вам нужен большой объем памяти, используйте жесткие диски (HDD) или сетевые устройства хранения данных (NAS).
Обеспечьте безопасность вашего сервера
Защита ваших данных и приложений от несанкционированного доступа, кражи или повреждения предполагает несколько мер:
- Настройте брандмауэры для ограничения доступа к вашему серверу и блокирования несанкционированного трафика. Вы можете использовать встроенные брандмауэры операционной системы или брандмауэры сторонних производителей.
- Защитите методы удаленного доступа, такие как SSH (Secure Shell), чтобы гарантировать, что только авторизованные пользователи могут получить удаленный доступ к вашему серверу. Используйте надежные пароли и двухфакторную аутентификацию для дальнейшего повышения безопасности.
- Используйте шифрование для защиты конфиденциальных данных, которые передаются и хранятся на вашем сервере. Это может включать шифрование SSL/TLS для веб-трафика или шифрование диска для хранения данных.
- Регулярно обновляйте операционную систему, программное обеспечение и патчи безопасности. Это гарантирует, что все известные уязвимости устранены и не смогут быть использованы злоумышленниками.
- Отслеживайте и просматривайте журналы логов, чтобы вовремя обнаружить любую подозрительную активность или попытки получить доступ к вашему серверу.
- Обеспечьте физическую защиту сервера, разместив его в запертой серверной комнате, к которой имеют доступ ограниченный круг лиц.
Управление и обслуживание вашего сервера
Отслеживайте производительность и использование ресурсов вашего сервера, чтобы выявить потенциальные уязвимости и устранить их до того, как они приведут к проблемам. Используйте инструменты мониторинга производительности для отслеживания использования процессора, памяти, дисков и сетевого трафика (IDS/IPS).
Немаловажно настроить автоматическое резервное копирование на удаленное хранилище. Существует несколько способов создания бэкапов и разные виды хранилищ — в этой статье мы рассказали, чем они отличаются и как выбрать подходящий.
Никто не защищен от аварийных ситуаций, поэтому следует разработать план по восстановлению данных и периодически его пересматривать на случай новых угроз.
Управление сервером начинается еще на этапе его создания и зависит от выбранных компонентов, конфигурации и даже провайдера. Важно поддерживать безопасность, производительность и доступность вашего сервера на соответствующем вашим потребностям уровне. От этого, в целом, зависит ваш опыт работы с сервером.
Все описанные в статье шаги можно сделать самостоятельно, но стоит учитывать, что это займет время и потребует значительных технических знаний. Если вы хотите, чтобы работа была сделана быстро и без ваших усилий, напишите нам. Специалисты создадут сервер под ваши требования и предоставят все в лучшем виде.
Как создать сервер с нуля: полное руководство
Создание сервера кажется сложной задачей, но вы можете попробовать создать сервер для личных целей или коммерческих. В статье мы описали компоненты собственного сервера и подробные шаги его создания с нуля.
Команда is*hosting 30 мая 2023 6 мин
- Несколько вопросов перед началом создания собственного сервера
- Что необходимо для создания своего сервера?
- Сколько стоит создать собственный сервер?
- Для чего нужен собственный сервер?
Сервер — необходимая часть любой системы, основанной на использовании информационных технологий. Мы пользуемся серверами каждый день — например, почтовые ящики любых провайдеров (Google, Yandex, Mail, Yahoo и др.) связаны с облачными серверами, хранящими весь объем получаемой и отправляемой корреспонденции.
Существует несколько видов серверов, отличающихся по стоимости и функциям, поэтому их можно использовать как в коммерческих, так и в личных целях.
Создание сервера не настолько сложная задача, как может показаться в начале. Даже не имея опыта в настройке серверов, написании кода или, в целом, работы с подобными технологиями, сервер может создать практически любой пользователь. В этой статье вы узнаете про основные этапы создания собственного сервера.
Несколько вопросов перед началом создания собственного сервера
Что необходимо, чтобы создать сервера?
Итак, что нужно для сервера:
Физический сервер, виртуальный сервер или обычный компьютер. “Железо” вашего сервера является его главным компонентом. Вы можете использовать другой компьютер в качестве сервера, достаточно убедиться, что он оснащен процессором с частотой 300 МГц и 64 МБ RAM. Альтернатива — приобрести физический сервер или виртуальный сервер. От этого будет зависеть его стоимость.
Сетевой роутер (маршрутизатор). В большинстве случаев подойдет обычный беспроводной домашний роутер, которым мы пользуемся для выхода в Интернет. Маршрутизатор может выполнять функцию фильтра пакетов данных, которые поступают на ваш домашний сервер и выводятся из него.
Кабель Ethernet: Необходим при создании сервера, который будет находится рядом с вами. Эти кабели также известны как CAT5 и используются для подключения компьютеров при установке сервера. С помощью кабеля Ethernet можно увеличить скорость получения данных до 100 МБ/с данных. То есть к серверу можно подключиться как по беспроводной, так и по проводной технологии.
Память. Убедитесь, что выбранный сервер (или компьютер) обладает достаточным объемом оперативной памяти (RAM). В сервере RAM важна для обработки данных, поступающих с жестких дисков (HDD) на центральный процессор (CPU).
Если вы планируете собрать собственный сервер из нескольких компонентов, то вам понадобятся:
- Оперативная память DDR4
- Для более сложных задач процессоры Ryzen или Xeon
- Материнская плата HP, Dell, Asus или ASRock
- Жесткий диск в виде SSD или NVMe
- Система охлаждения
- Сетевая карта, роутер и кабель Ethernet
- Блок питания мощностью от 300-500 Вт
- Корпус для всех компонентов сервера
Сколько стоит создать свой сервер?
Стоимость сервера преимущественно зависит от его физической оболочки. Если вы планируете создать домашний сервер своими руками, можете использовать компьютер в качестве сервера, то это обойдется вам бесплатно. Покупка отдельного сервера или сбор из компонентов может быть более затратной.
Есть альтернативные варианты, которые не только сократят ваши расходы, но и облегчат работу с сервером. К ним относятся облачные хостинги, VPS и выделенные серверы.
Облачный хостинг — распространенная услуга, которую можно приобрести у Amazon, Google, DropBox и т.п. Однако такой сервер, вероятнее всего, будет привязан к конкретному приложению и будет полностью контролироваться провайдером. У вас не будет возможности настраивать его под ваши нужды.
VPS, или виртуальный приватный сервер, представляет собой часть физического сервера, выделенного под ваши потребности с помощью технологии виртуализации. В данном случае вы вольны самостоятельно выбирать ОС, программное обеспечение, варианты использования ресурсов виртуального сервера. Такой сервер можно масштабировать в любой момент. Стоимость VPS от is*hosting стартует от $5.00.
Выделенный сервер — это физически представленная машина, все ресурсы и мощности которой предоставлены только одному арендатору. Это наиболее надежный вариант хостинга, в котором исключен эффект “плохих соседей”, а уровень безопасности вынесен на более высокий уровень. Такие серверы пользуются популярностью у крупных проектов. Стоимость выделенных серверов от is*hosting стартует от $70.00.
Для чего нужен собственный сервер?
- Сервер для проекта. Это может быть сайт, мобильное приложение или площадка для разработки новой программы. В данном случае имеется в виду коммерческое использование сервера, для которого необходима определенная настройка. П очтовый сервер своими руками — это возможность автоматизации email-маркетинга.
- Сервер для торговли на биржах. Многие трейдеры выбирают вариант собственного сервера для более эффективной торговли на популярных биржах. Как выбрать VPS/VDS для Forex и MetaTrader? Для торговли ботами на Binance также подойдет виртуальный сервер — VPS для Binance.
- Сервер для хранения бэкапов. Если вы не хотите доверять свои резервные копии таким компаниям как Google или Apple, то вы всегда можете сохранять бэкапы необходимых устройств на свой собственный сервер.
- Игровой сервер своими руками . Иногда для полного погружения в игру необходим собственный сервер. Например, многие игроки Minecraft и CounterStrike прибегают к созданию своих серверов. Как создать свой сервер Minecraft?
- Домашний медиа сервер. Если вы хотите иметь доступ ко всем локальным медиафайлам на любом устройстве в вашем доме, домашний сервер для хранения данных с удаленным доступом — одно из лучших решений. Чтобы сделать процесс еще проще, вы можете использовать такие сервисы, как Plex или Kodi, для управления медиа файлами.
Определите требования к серверу
Первым шагом при создании сервера является определение ваших требований. Вы должны учесть количество пользователей, которые будут обращаться к серверу, тип приложений, которые вы будете запускать, объем памяти, который вам потребуется, и уровень производительности. При принятии решений следует также учитывать будущий рост и масштабируемость.
Некоторые приложения требуют больше ресурсов, чем другие, поэтому важно выбрать сервер, способный удовлетворить ваши конкретные потребности. Например, вы можете заранее узнать о “весе” нужных программ и отталкиваться от этих значений.
Что касается производительности, то в данном случае стоит обратить внимание на процессор (CPU), объем оперативной памяти и устройства хранения данных. При аренде выделенного сервера или VPS у хостинг-провайдера такие параметры можно выставить во время выбора сервера.
Устройства хранения данных — это хранилища, где вы будете накапливать различные данные, включая резервные копии, базы данных, медиафайлы и т.п.. Это может быть как выделенное на сервере место, либо отдельное устройство (дополнительный сервер или диск).
Для создания собственного сервера необходим сетевой маршрутизатор, поэтому стоит заранее подготовится к обеспечению нужной пропускной способности. Если вы планируете создать веб-сайт с высокой посещаемостью или предоставляете услуги внутри мобильного приложения большому количеству пользователей, вам понадобится сервер с быстрыми сетевыми интерфейсами и высокой пропускной способностью.
Создавая собственный сервер, не забудьте, что объем хранимых данных на нем со временем будет увеличиваться, как и устанавливаемые программы. Будь то личный сервер или коммерческий, ориентируйтесь на возможности масштабирования.
Выберите тип сервера
Итак, у вас есть два пути: собрать сервер своими руками из необходимых компонентов (или старого компьютера) или арендовать сервер с нужным набором технических характеристик у хостинг-провайдера.
Среди физических серверов выделяют башенные (Tower, подходят для личного использования), стоечные (для установки в серверную стойку), гибридные (сочетание выделенного сервера и виртуальных) и блейд-серверы (установка в блейд-шасси). Такое оборудование является дорогостоящим вариантом.
Аппаратное обеспечение стоит дорого, а на настройку системы уйдут часы, даже если вы опытный пользователь. Аренда сервера — это более простой и безопасный вариант, поскольку предлагаются готовые решения, подстраиваемые под ваши потребности.
Рассмотрим наиболее простые и популярные варианты, которые будут стоить вам ежемесячной арендной платы в зависимости от используемых ресурсов:
- Выделенный сервер. Выделенный сервер обеспечивает ту же функциональность, как и сервер в собственности компании или конкретного пользователя, но обслуживается хостинг провайдером и находится в защищенном дата-центре. Существуют администрируемые и не администрируемые выделенные серверы, оба вида отличаются высокой производительностью, высокой скоростью соединения, гибкой настройкой.
- VPS. Это изолированная виртуальная среда на выделенном сервере, с определенными мощностями CPU, RAM и дисковым пространством. За счет того, что на одном выделенном сервере могут независимо находится несколько VPS, стоимость виртуального приватного сервера гораздо ниже. При этом он дает такие же возможности как и выделенный сервер.
Выберите опции
Если вы планируете арендовать сервер у хостинг-провайдера, то вам доступно несколько опций.
Администрируемый сервер предполагает предустановку операционной системы, удобной панели управления, основных сервисов (php, ftp, apache, mySQL и т.д.) помощь при недоступности сервера, настройка автоматических бэкапов, антивирусная проверка, консультации и т.п.
При выборе не администрируемого сервера, хостинг-провайдер предоставит вам его с установленной чистой ОС, либо без ОС (если вы указали данное требование в примечаниях к заказу). Вы получаете доступ к специальному интерфейсу для удаленного управления сервером (IPMI) и можете самостоятельно настраивать сервер под свои нужды.
Многие хостинг-провайдеры имеют международную инфраструктуру, поэтому вы можете выбрать локацию вашего сервера в зависимости от целей его использования.
Сконфигурируйте свой сервер
При создании сервера своими руками его конфигурация зависит от приобретенных компонентов и выбранного ПО. При аренде сервера в специальном конфигураторе вы можете выбрать те параметры, которые вам необходимы, включая некоторые дополнительные сервисы:
- Операционная система (версии Windows или Linux)
- Объем оперативной памяти
- Объем дискового пространства
- Наличие графического процессора
- Количество IP-адресов
- Панель управления
- Вид администрирования
- Регулярность резервного копирования
- Скорость порта и размер пакета трафика
- Тип защиты от DDoS атак
Если вы не определились с выбором конфигурации, то можете обратиться в техническую поддержку за помощью.
Выбор операционной системы вашего сервера зависит от личных предпочтений и необходимой гибкости. В пользу Windows говорят ее практичность, производительность и наличие широких возможностей. За счет своей надежности Windows Server идеально подходит для терминалов и файловых серверов. Семейство Linux отличается несколькими дистрибутивами (Debian, Ubuntu, CentOS), которые имеют свои преимущества и подходят для разных задач. Одним из первых дистрибутивов Linux для серверов является Ubuntu, который до сих пор составляет конкуренцию Windows.
Также для работы с сервером понадобится панель управления. Среди наиболее популярных и понятных вариантов: cPanel, ISPmanager, VestaCP, Plesk. Выбор панели может зависеть начиная от графического интерфейса и заканчивая возможностями управления. Для работы вам также понадобится дополнительное ПО (службы для работы с базами данных и др.).
Что касается устройств хранения, то рассмотрите возможность использования твердотельных накопителей (SSD) для ускорения доступа к данным и скорости чтения/записи. Если вам нужен большой объем памяти, используйте жесткие диски (HDD) или сетевые устройства хранения данных (NAS).
Обеспечьте безопасность вашего сервера
Защита ваших данных и приложений от несанкционированного доступа, кражи или повреждения предполагает несколько мер:
- Настройте брандмауэры для ограничения доступа к вашему серверу и блокирования несанкционированного трафика. Вы можете использовать встроенные брандмауэры операционной системы или брандмауэры сторонних производителей.
- Защитите методы удаленного доступа, такие как SSH (Secure Shell), чтобы гарантировать, что только авторизованные пользователи могут получить удаленный доступ к вашему серверу. Используйте надежные пароли и двухфакторную аутентификацию для дальнейшего повышения безопасности.
- Используйте шифрование для защиты конфиденциальных данных, которые передаются и хранятся на вашем сервере. Это может включать шифрование SSL/TLS для веб-трафика или шифрование диска для хранения данных.
- Регулярно обновляйте операционную систему, программное обеспечение и патчи безопасности. Это гарантирует, что все известные уязвимости устранены и не смогут быть использованы злоумышленниками.
- Отслеживайте и просматривайте журналы логов, чтобы вовремя обнаружить любую подозрительную активность или попытки получить доступ к вашему серверу.
- Обеспечьте физическую защиту сервера, разместив его в запертой серверной комнате, к которой имеют доступ ограниченный круг лиц.
Управление и обслуживание вашего сервера
Отслеживайте производительность и использование ресурсов вашего сервера, чтобы выявить потенциальные уязвимости и устранить их до того, как они приведут к проблемам. Используйте инструменты мониторинга производительности для отслеживания использования процессора, памяти, дисков и сетевого трафика (IDS/IPS).
Немаловажно настроить автоматическое резервное копирование на удаленное хранилище. Существует несколько способов создания бэкапов и разные виды хранилищ — в этой статье мы рассказали, чем они отличаются и как выбрать подходящий.
Никто не защищен от аварийных ситуаций, поэтому следует разработать план по восстановлению данных и периодически его пересматривать на случай новых угроз.
Управление сервером начинается еще на этапе его создания и зависит от выбранных компонентов, конфигурации и даже провайдера. Важно поддерживать безопасность, производительность и доступность вашего сервера на соответствующем вашим потребностям уровне. От этого, в целом, зависит ваш опыт работы с сервером.
Все описанные в статье шаги можно сделать самостоятельно, но стоит учитывать, что это займет время и потребует значительных технических знаний. Если вы хотите, чтобы работа была сделана быстро и без ваших усилий, напишите нам. Специалисты создадут сервер под ваши требования и предоставят все в лучшем виде.
Мой новый домашний сервер, часть 1: выбор железа
Не то, чтобы это было кому-то интересно, но на такую тему тексты пишутся легко и непринуждённо, потому решил написать. Разбив на несколько частей — про выбор железа, выбор софта, сборку (хотя тут не уверен, это обычно самое скучное) и настройку софта (там уже повеселее).
Домашний сервер у меня дома уже много лет существует. По-моему, первый был на базе к6-2 собран ещё в начале нулевых. С того времени сменилось много разных вариантов, быстрых и медленных, больших и маленьких, виндовых и линуксовых. Последние десять лет сервером у меня работает HP Microserver, сперва был Gen7, а где-то с 2015 — Gen8, который был куплен с целероном и двумя гигабайтами ОЗУ, а затем «прокачан» до Xeon’a и 16GB (максимум).
На фото — момент переезда из gen7 в gen8.
Почему захотелось поменять
Я из него вырос. Достаточно долго мне его хватало, но за последние пару лет у меня выросли как аппетиты по оперативной памяти, так и по количеству жестких дисков. В микросервер, если сильно не колхозить, влезает 4-5 дисков. Какое-то время я вполне обходился четырьмя (плюс ssd под систему), меняя маленькие диски на большие по мере заполнения, но за последнее время диски ощутимо подорожали (не только в деньгах, ещё и более приоритетные траты появились), потому менять их по заполнению уже не получается. При этом у меня скопилось некоторое количество неиспользуемых дисков объёмом от 2 до 8 терабайт, которые вполне можно было бы засунуть в сервер — если бы там было место.
Ну и оперативная память — для микросерверов 7 и 8 предел — 16 гигабайт. Потому с толстыми виртуалками приходилось играть на домашнем десктопе, хотя это должна быть одна из задач домашнего сервера.
А вот процессора при всём этом вполне хватало. Иногда хотелось чуть больше потоков, иногда хотелось видюшку под транскодинг, но обычно производительности на один поток было достаточно. Но процессор — это не главное, так что решил всё же поменять microserver на что-то другое.
На фото — gen7 на фоне чего-то другого. Правда, это тот момент, когда «другое» уходит на покой в силу избыточности (если память не изменяет, там был q8200/8GB), а микросервер занимает его место.
Что хотелось получить
- Возможность поставить 64 гигабайта оперативки (не сразу, со временем). Если можно будет больше 64 — хорошо. Но вот прямощазз уже нужно было 32. При этом терабайты ОЗУ мне не нужны, такие задачи я дома не решаю.
- В меру производительный процессор, в котором мне нужнее потоки, чем производительность на поток. Xeon 1260L 4c/8t на текущий момент меня вполне устраивал, так что гнаться за всякими Core i10 не нужно было. Вполне хватило бы чего-то не сильно быстрого (в определённых пределах), но многоядерного. Хотя и возможность поставить что-то более производительное не помешала бы.
- Возможность менять диски, не доставая сервер с антресолей. В идеале — отсеки с внешним доступом.
- Возможность поставить хотя бы шесть дисков, в идеале восемь, можно и больше.
- Габариты в районе микросерверных. По высоте ограничение около 30 сантиметров.
- Возможность поставить видеокарту для транскодинга видео, сетевушку 10 гигабит и SATA-контроллер. Со временем.
- Более-менее тихое и экономичное решение. Понятно, что комп с 6-8 жесткими дисками бесшумным не будет, но жрать на холостом ходу 500 ватт и выть вентиляторами на весь дом тоже не нужно.
- Иметь свободу апгрейда на будущее — без замены корпуса.
Что рассматривал
Во-первых, у меня давно валяется супермикровский корпус с восьмидисковой корзиной, плюс материнка на АМ3+ с FX-8320.
Туда можно запихнуть 64 гигабайта китайской памяти AMD Only. Процессор по производительности примерно такой же, как у меня в gen8 стоит, потому думал собрать новый сервер на базе этого. Но больно уж он большой и тяжелый, а FX-8320 даже без винтов под нагрузкой может 150-200 ватт сожрать. Потому корпус остался валяться, а FX-8320 пошел на апгрейд моего персонального вебсервера, что живёт на работе в серверной — благо там есть кондиционеры, а электричество никто не считает.
Во-вторых, смотрел на ITX’ные корпуса. Они, конечно, по размерам как микросервер, а иногда и меньше. Но использование ITX-материнок слишком уж ограничивает возможности расширения. Потому решил согласиться на увеличение габаритов и на базе mATX что-то собирать. У китайцев продаются внешне интересные корпуса «под NAS» и mATX-материнку, но у них явно придётся колхозить дополнительное охлаждение, плюс отзывы о качестве материалов не впечатляют.
Что не рассматривал — это готовые NAS’ы и Microserver gen10 и gen10+. Первые по моим запросам будут очень дороги, а вторые стали слишком уж сильно урезанными. Да и тоже недешевые. Прошли времена, когда можно было взять настоящий сервер (пусть и маленький) за 200 евро. Сегодня за gen10+ просят уже 600-700 в базовой комплектации. А если туда добавить ILO, память и поменять процессор с двухъядерного пентиума на что-то многопоточное, то цена запросто за 1000 евро уйдёт. Плюс у gen10+ можно строго четыре диска поставить, даже ssd загрузочный теперь так просто не приколхозить — только в pci-e ставить, забив на другие возможности расширения. В общем, мне последние версии микросервера не нравятся. Хотя внешне выглядят симпатично.
Слева gen10, справа gen10+. gen8 по габаритам примерно такой же, как и gen10.
Что стало
Корпус
Корпус выбрал Fractal Design Node 804. По высоте он вышел больше, чем хотелось, но, в принципе, влезает. Как уже сказал, китайцы не впечатлили по качеству, потому решил взять корпус с хорошей репутацией, пусть и ценой размера и отсутствия внешних отсеков для дисков. Решил поставить корпус на полку боком — отсеком с дисками наружу — и тогда можно будет просто снимать боковую крышку и вынимать салазки с дисками, не двигая сам корпус. Конечно, это касается только 3.5″ дисков в салазках, другие посадочные места потребуют доставания корпуса с полки. Надо это учитывать и постараться туда поставить такие диски, которые редко меняться будут. Плюс размеры корпуса позволяют некоторый колхозинг внутри, у меня уже есть планы.Вышло заметно крупнее, но терпимо:
Материнская плата
Для самосборных серверов класса «дёшево-сердито» сегодня принято использовать китайские платы и бэушные ксеоны. Они очень хороши по соотношению цена-производительность, получается много потоков занедорого, но мне не особо нравится прожорливость получающихся систем, да и всякие мелкие глюки типа спящих режимов, рэндомных чипсетов и т.п. тоже не особо вдохновляют. Поскольку всё же не стояло требования за минимальные деньги сервер собирать (про это будет другая история), я решил смотреть в другую сторону — на АМ4.
Во-первых, это более бюджетное решение, чем актуальные интелы. На али есть много бэушных процессоров, плюс у меня вокруг везде АМ4 — и я вполне могу что-то где-то скрутить нахаляву. Память там позаимствовать, с процессорами поиграть, если вдруг что-то не срастётся.
Во-вторых, хоть сокет уже и на исходе жизни, на горизонте виднеется АМ5, он ещё вполне актуален. Особенно для серверов, которые служат годами. В микросервере gen8 вообще 1155 — и он ещё вполне пользуется спросом, за разумные деньги довольно быстро уходит.Насчёт платы сперва думал про что-то типа ASUS TUF GAMING B450M-PRO II — всё же сервер домашний, можно было бы и ширпотребной материнкой удовлетвориться. По возможностям она меня вполне устраивала.
Но подумал ещё, немного придушил жабу и остановился на ASRock X470D4U: официальная поддержка до 128 гигабайт ECC-памяти (можно использовать и обычную), 8 SATA-портов, две гигабитных сетевушки, встроенная видеокарта (не требуется процессор с видеоядром или дискретное видео), IPMI для любителей этого дела (я не любитель, но и не особо против)…
Из замеченных тонкостей и недостатков:
- Мало портов USB. Два сзади, два на плате. Хорошо хоть все usb3.
- «Большие» PCI-E работают либо 2 по х8, либо 1 на х16, тогда второй слот отрубается.
- m2 — только 3.0 x2 или 2.0 x4 — то есть 2 ГБ/сек. Более скоростные диски придётся втыкать в PCI-E.
- Слоты PCI-E рядом, плата с толстым охлаждением соседний слот заблокирует. Или в дно корпуса упрётся, если в нижний слот ставить.
- Память и крепление для процессорного кулера повёрнуты на 90 градусов. Если кулер-башня подразумевает крепление вентиляторов только вдоль одной оси, то придётся воздушный поток направлять в потолок корпуса. А если кулер низкий, то он может один-два слота памяти заблокировать.
- Если монтировать установочные iso через IPMI, то скорость передачи данных около трёх мегабайт/сек. Винда будет ставиться долго.
- IPMI работает только через свою сетевушку, то есть подавай ему отдельный порт в свитче. ILO в микросервере умело совмещать.
- Это одна из немногих «серверных» материнок под райзены, потому поддержка и исправление ошибок могут хромать относительно аналогичных материнок под интел. У меня была уже пара-тройка неясных зависаний, так что тут ещё есть, куда копать.
- ECC-память надо покупать UDIMM. Она встречается реже, чем регистровые RDIMM.
- Не может рулить трёхпиновыми вентиляторами, надо четырёхпиновые. А все корпусные 120 — трёхпиновые.
В принципе, у асрока есть модель на Х570 — X570D4U, там и PCI-E побыстрее, и m2, и ещё какие-то проблемы поправили… Но она поддерживает только процессоры от третьего поколения, плюс сама плата стоит в полтора раза дороже — что здорово увеличивает бюджет, на что я пойти не готов, да и просто нет смысла.
Процессор
Чтобы было побольше потоков, но при этом недорого, решил взять бэушный Ryzen 7 1700 на aliexpress. Официально, правда, материнка поддерживает только процессоры начиная со второго поколения, но неофициально первое поколение на ней запускали. В итоге выяснилось, что первое поколение работает, но нужен старый биос. А материнка шла с новым — пришлось перепрошивать. Благо IPMI позволяет это сделать даже в том случае, если сама плата не грузится.
Кулер переставил со своего десктопа (тот попутно в новый корпус переезжает, так что кой-какие запчасти освобождаются). GAMMAXX 300. Если он справляется с 3600X и не шумит при этом, то и на 1700 его должно хватить. А не будет хватать — можно что угодно поставить, благо размеры корпуса позволяют.
Память
Конечно, лучше бы было сразу взять ECC-память, но насущной необходимости в ней пока нет, а желание сэкономить есть. Потому я просто взял два модуля по 16 гигабайт 2666 MHz с десктопа (туда возьму парочку 3200). А серверу и 2666 хватит. Плюс память проверенная.Блок питания
На время сборки и настройки поставил лежавший на полке шестисотваттный FSP, но вообще это перебор.
Максимум 100 ватт на проц, под 10 ватт на каждый диск, сотню на материнку и прочую периферию и сотню про запас — так что с запасом должно будет хватать и 400 ватт, даже если вдруг удастся систему на полную раскочегарить. Так что переставлю сюда c десктопа be quiet! Pure Power 11. Надо только найти, куда я от него кабеля задевал.
Заключение
Ну и как бы всё по выбору железа. Про переходники и кулеры рассказывать тут не буду.
Жесткие диски идут со старого сервера и с полки.
TOSHIBA_MG06ACA800E 8 TB
WDC_WD30EFRX 3 TB
WDC_WD30PURZ 3 TB
TOSHIBA_MD04ACA50D 5 TB
ST8000AS0002 8 TB
ST6000DM003 6 TBИтого — 33ТВ. На микросервере стояло 3+5+6+8=22ТВ.
Пока что шесть штук, но можно поставить ещё два в корзины и, если сильно хочется, пару штук прикрутить на дно корпуса.
Пара терабайтных ssd под кэш для массива и виртуалки-контейнеры переставляются с десктопа.
Наличие 8 SATA-портов на материнке позволяет пока что не заморачиваться на тему дополнительного контроллера и восьмипортовый LSI можно будет в другую сборку пристроить.
Хотя я из интереса заказал у китайцев sata-контроллер в m2 — он позволит использовать два свободных места в корзинах. Насущной необходимости в дисках NVME у меня пока что нет, так что лучше вместо одного NVME я получу ещё 4-5 SATA, будет полезней. Плюс не буду занимать PCI-E.
Ещё надо будет всё же подумать про видеокарту для транскодинга, но этот вопрос можно и через месяц-другой решать, а не прямо сейчас.
Пока я буду обживаться, лично мне не до фильмов будет. А по мелочи и проц справится, Xeon же справлялся.
А 10 гигабит — это точно не этого года вопрос. Может следующего, когда ремонт закончится и станет понятно, что где будет стоять.
По деньгам вышло 12К за корпус, 22К за материнку, 9К процессор. Ещё где-то 10К пойдёт на новую память для десктопа и 2-3К на новый кулер туда же (нужен тихий и низкопрофильный). Итого получается примерно 56К — чуть вышел за бюджет, но вполне переживу, думаю.
Тысяч 30 компенсирует продажа микросервера (надеюсь), по остальному договорюсь со знакомым магазином.
В следующей части расскажу, что у меня было на старом сервере с программной точки зрения и почему я не захотел просто перенести старый софт на новый сервер, а захотел чего-то нового.
- Системное администрирование
- Хранение данных
- Компьютерное железо
- DIY или Сделай сам
Домашний веб-сервер для чайников
Привет, Хабр! Относительно недавно после пары лет перерыва в айти, потраченных на изучение японского языка, мне пришлось срочно обновлять свои знания на работе. Ну знаете, искать возможности исполнить все хотелки начальника, как и положено эникею. Меня ждало много увлекательных открытий, но при этом, как водится, и немало боли и борьбы с непонятками. Docker, контейнеры, реверс DNS и реверс прокси, получение TLS сертификатов. В какой-то момент я наконец дошёл до удобного решения, которым я теперь хочу поделиться.
В своё время домашний сервер очень облегчил бы мне понимание Docker’а, да и удобство работы с ним неслабо бы повысил. Поэтому возникла идея написать эту статью, после прочтения которой любой человек даже с поверхностными знаниями в информационных технологиях сможет поставить себе постоянно доступный домашний сервер на базе Docker Swarm с удобной веб-мордой, простым получением TLS-сертификатов и Heroku-подобным функционалом (для чего будем использовать PaaS CapRover).
Статья, в общем-то, рассчитана на новичков, обладающих какими-то техническими знаниями — школьников старших классов, студентов и просто любителей — а потому вряд ли будет интересна серьёзным профессионалам.
Зачем оно нужно?
Ну как минимум потому что это круто, иметь домашний сервер! Да и настраивать всё это дело интересно. При этом он уже за месяца три отобьёт свою стоимость в сравнении с VPS’ом схожей конфигурации. Ну и наконец он просто радует глаз и миленький.
Что же до использования — иметь возможность развернуть в пару кликов дома Docker-контейнеры сразу в формате http://контейнер.мой.домен/ и в ещё один клик подключить к нему SSL неплохо упрощает жизнь. Сейчас всё больше и больше разнообразных приложений и сервисов переезжают в контейнеры и, если вы не любите лишний раз платить большим компаниям, иметь свои аналоги платных сервисов на домашнем сервере это очень удобно.
Ну а удобство для разработчиков и так понятно.
Подготовка
Поскольку мы хотим, чтобы наш домашний сервер был доступен из внешней сети, нужно сделать несколько приготовлений.
Port Forwarding
Проверьте наличие у вашего маршрутизатора (роутера) опции Fort forwarding/Port mapping/Перенаправление портов. Это не самый безопасный, но самый простой способ дать нашему серверу путь во внешний мир. Убедитесь что 80, 443 и 3000 порты у вас ничем не заняты — именно их вы будете прописывать IP адресу вашего сервера. Возможно в будущем, например, если вы захотите поднять почтовый сервер, вам придётся прописать дополнительные порты, но пока нужно только это.
Если проводить аналогию для понимания перенаправления портов, то представьте работу мамы в детстве. По умолчанию охранник туда не пустит, но стоит только сказать волшебную фразу «Я к маме», как строгий охранник уже пускает и говорит куда пройти. Вот и тут так же, с нашим NAT’ом роутера, только вместо «Я к маме» вы говорите порт, на что вас направляют куда надо.
Так же стоит убедиться, что у DHCP вашего роутера есть возможность зарезервировать выданный IP адрес за MAC. Скорее всего ваш сервер будет стоять включённым всё время и не просрочит свой выданный IP адрес, но подстраховаться никогда не бывает лишним. Если нельзя — выпишите машине статичный IP вне зоны выдачи адресов DHCP. Это сложнее и неудобнее, но тоже вариант (Кто-то даже скажет что так даже лучше сделать. Но я сейчас за простоту).
Нету этих опций? Возможно ещё не всё потеряно. Проверьте базу https://dd-wrt.com/support/router-database/ на наличие вашего роутера и есть ли тема по нему на 4pda. Если и там пусто. Ну, либо сворачивайте это руководство, либо пора купить новый роутер.
Домен
Конечно, ничто не мешает нам обращаться к нашему домашнему серверу и напрямую по IP адресу, но делать так не рекомендуется: и не особо безопасно, и запоминать IP адрес не просто, да и если у вас динамический, меняющийся каждый раз как вы заново подключаетесь к интернету, IP адрес, то запоминать его вообще бессмысленно. Ну и наконец, у нас много сервисов планируется, а чтобы к ним доступ был тупо по IP адресу, придётся их на разные порты навешивать. Оно вам надо?
Именно поэтому мы будем использовать домен.
Ну, знаете, ту самую штуку, которую вы вводите в адресной строке. В результате сможем давать сервисам поддомены для удобства и не страдать. Ну, например https://пароли.мой.домен/ для парольного сервиса или https://почта.мой.домен/ для почты. Удобно, в общем, запоминается. Делать это будет Ngnix под капотом нашего PaaS, при желании всегда можете разобраться в конкретике.
Рекомендую я, конечно, домен купить. Цены на домены в популярных зонах достаточно либеральные, платить раз в год, регистраторов куча. В плане выбора регистратора я ничего конкретного советовать не буду. Адекватнее всего ориентироваться по цене и отзывам. Разве что маленькое наблюдение: если регистратор требует миллиарды шекелей за такие вещи, как банальное управление DNS записями, то возможно это не очень хороший регистратор и следует посмотреть в другую сторону.
Впрочем если вы только пощупать пришли, то домен можно получить и бесплатно. Есть такой регистратор — Freenom, там можно бесплатно достать домен в зонах .tk, .ml, .ga, .cf или .gq. Правда как часто бывает с чем-то бесплатным, сайт глючный. Если на проверке доменов у вас всё время пишется, что домен занят, попробуйте поставить сразу полный путь. То есть вводите в проверочное поле не мой_домен, а сразу, скажем, мой_домен.tk.
Очевидно, что если что-то досталось бесплатно, то и потерять его легко — отзывы у Freenom в этом плане далеки от хороших. Так что если планируете что-то серьёзное, то лучше домен себе всё-таки купить у регистратора. Однако для маленького домашнего сервера потенциальная потеря домена не критична.
Cloudflare
Тут мы уже входим в пространство вкусовщины. Вам ничто не мешает использовать и редактор DNS записей вашего регистратора или любой другой сервис управления DNS записями домена. Тут, на хабре, вон вообще CloudFlare раком интернета недавно называли. Но с другой стороны, CloudFlare даже в базовой, бесплатной версии имеет достаточно много приятных фишек, которые ваш регистратор скорее всего не предоставляет. Тут и какая-никакая защита от DDoS, кеширование, расширенные возможности управления доступом и так далее и в том же духе. Плюс в одном из следующих пунктов, когда мы поднимем контейнер для DDNS, будет использоваться именно CloudFlare (впрочем настроить DDNS с другим провайдером вроде DuckDNS — задача достаточно тривиальная).
Правда многие фишки пройдут мимо нас, поскольку проксирование у CloudFlare на wildcard-записи (ну, это записи включающие всё пространство имён *.мой.домен) не работает (ну, за бесплатно). Однако ничего не мешает потом, уже для отдельных сервисов, сделать конкретную запись и пожать все плюшки платформы. Ну или ещё лучше, если у вас статический IP адрес, вообще без DDNS обойтись.
Платформа
Физический путь
Удобство физического пути очевидно — стоит отдельная машинка, не мешает основной работе, радует глаз.
Если спросить, что же использовать как платформу, наверняка многие ответят Малинку (то есть Raspberry Pi). На мой взгляд это не самый лучший выбор для данного случая.
Raspberry Pi отлично подходят для самодельных решений разнообразной направленности, но по соотношению цена/производительность не являются каким-либо лидером. И, хотя сейчас уже множество софта доступно под ARM системы, под x86 программы всё-таки чувствуют себя постабильнее.
Кто-то захочет переоборудовать старую машину или собрать на старых Xeon’ах себе компьютер для веб-сервера. И это тоже вариант, хотя по потреблению электроэнергии не оптимальный.
Я же советовал бы купить для данных целей недорогой (или не очень дешёвый, если вы хотите постоянно запускать «тяжёлые» задачи на вашем сервере) мини-пк (иначе называемый неттоп). Доступные варианты с 8 гигабайтами оперативной памяти, четырёхядерным Celeron и SSD на 128 гигабайт можно найти за 150-200 долларов и этого более чем хватит для домашних задач. При этом он будет компактным, тихим, удобным в размещении, достаточно приятно выглядящим и с низким TDP. Даже в самые дешёвые модели обычно можно доставить как минимум один, а порой и два 2,5 дюймовых диска, так что как файловую помойку его, в общем-то, тоже можно использовать. Хотя лучше превратить его в личное облако, а как файловый сервер использовать отдельное NAS-устройство — для отказоустойчивого хранения большого количества данных форм фактор мини-пк не слишком располагает.
Помимо этого, если вы «наиграетесь» и решите, что оно не ваше, такому компьютеру будет легко найти место. Например поставить обратно Windows и отдать маме/тёте Вале из третьего подъезда. Для офисной работы и использования браузера он подойдёт прекрасно.
А если вы за чуточку большую цену взяли мини-пк с несколькими сетевыми портами, то сможете превратить его в невероятно мощный и функциональный маршрутизатор, поставив сверху OpenWRT, PFsense, ClearOS или ещё какую-нибудь систему для роутеров. Ну и вообще альтернатив много, когда и если наиграетесь с предложенным мной вариантом.
Сразу, правда, надо учесть: шансы, что у такой машинки не будет работать Wi-Fi под линуксом, мягко говоря, не самые маленькие. Так что планируйте проводное соединение.
Заранее погуглите, на какую клавишу вызвать boot menu у вашей машинки. А образ для установки, если вы на Windows, лучше всего на флешку записывать программой Rufus.
Виртуальный путь
Если у вас есть просто живой интерес к тому, что и как настроить, определиться надо ли оно или не надо, то настраиваем виртуальную машину.
Тут стоит провести некоторое разграничение в понимании, поскольку дальше у нас будут ещё и контейнеры Docker. Внешне и по структуре они очень похожи, но вот по использованию неплохо так различаются.
Виртуальная машина — это именно то, как оно звучит — компьютер, которой на самом деле не существует, живущий внутри нашего. Её в какой-то мере можно сравнить с картонной коробкой. Её нужно где-то достать, развернуть, заполнить. Она стоит и занимает место, даже если не до конца заполнена. И залезть внутрь этой коробки иначе как сверху достаточно проблематично.
А контейнер — это как пакетик из магазина. Вроде и служит примерно той же цели, что и коробка, но внутрь что-то положить и достать проще, укладывать по-особому не нужно,места много не занимает, и выкинуть не жалко, и продырявить просто. Говоря же чуть более нормальным языком — контейнер это такая недо-виртуалка, которая ведёт себя скорее как процесс программы.
Конкретный гипервизор (ну, программа, где ваши виртуальные машины создаются и управляются) — на ваше усмотрение. Лучше, конечно, использовать гипервизор первого типа (они, как правило, быстрее, поскольку работают “под” операционной системой, а не “над” ней, как гипервизоры второго типа), но нашему серверу это не очень критично.
Внимание, любители всяких игруль, мобильных и не очень, на Windows — большая часть гипервизоров конфликтуют с эмуляторами Android для игр и с некоторыми античит решениями. Нормально только Bluestacks для Hyper-V работает, так что заранее выберите, что вам важнее.
VirtualBox
Для начала распишу для VirtualBox, который доступен на всех основных платформах, хотя и не отличается высокой скоростью.
Нажмите на кнопку New (Создать) для создания новой машины, и, ориентируясь по своей логике, задайте все настройки — если что, то потом всегда сможете поправить. Правда, меньше чем 2 гигабайта оперативной памяти лучше не ставить.
После создания машины войдите в её настройки. В разделе Storage (Носители) добавьте ваш образ к дисководу (синяя иконка), а в разделе Network (сеть) поменяйте тип подключения на Bridged Adapter (Сетевой мост) и выберите сетевую карту, по которой к вам приходят интернеты, после чего сохраните.
Hyper-V
Поскольку сам я в основном пользуюсь Windows, то предпочитаю использовать Hyper-V — встроенный в Pro версию системы гипервизор первого типа. Если вы пользователь Windows, то вам я тоже его советую — как и положено гипервизору первого типа, он весьма радует своей производительностью.
Чтобы использовать Hyper-V, активируйте его в Turn Windows Features on or off (Включение или отключение компонентов Windows) и перезагрузите компьютер. Вероятно, вам ещё придётся включить аппаратную виртуализацию в BIOS, если вы ещё не делали это. Также необходимо создать в Hyper-V manager (Диспетчер Hyper-V) сетевой интерфейс, ведущий во внешнюю сеть. Кликните справа на Virtual Switch Manager (Диспетчер виртуальных коммутаторов), выберите External (Внешний) и нажмите Create Virtual Switch (Создать виртуальный коммутатор). Далее в настройках External Network (Внешняя сеть) выберите сетевую карту, по которой к вам приходят интернеты, а потом сохраните.
После этого создайте новую машину в Hyper-V manager (но только не создавайте «быструю» машину, там всё не слава богу), а потом пройдите в её свойства и отключите Secure Boot (если машина 2-ого поколения). Остальные параметры по вкусу, но меньше 2 гигабайт оперативной памяти лучше не ставить. Ну и как сетевой интерфейс, очевидно, нужно поставить свежесозданный.
Установка и настройка системы
При выборе дистрибутива для установки у нас есть некоторый выбор (Но свериться с поддерживаемыми платформами на https://docs.docker.com/engine/install/ не помешает). Официально докер рекомендуется ставить на Ubuntu, я обычно предпочитаю Debian, но нам в целом не принципиально. Однако возможные подводные камни я распишу только для этих двух дистрибутивов.
И да, если можете, то лучше напрямую смотрите инструкции. А то информация в интернете имеет привычку устаревать и есть шанс, что к моменту, как вы это читаете, всё уже десять раз поменялось.
В случае с Ubuntu скачайте Ubuntu Server — на сервере графический интерфейс ни к чему, вы даже не будете подключать к нему монитор после изначальной установки. При установке важный момент — НЕ отмечайте Docker в качестве установки по умолчанию. Иначе он поставится как snap пакет, будет глючить, тупить и вообще, зачем вам лишние проблемы, не дружите со snap’ами, это плохая компания.
После установки системы копипастим по одной эти строчки (вы же уже подключились по SSH, правда ведь? Если нет, то чуть подальше будет инструкция) или вбиваем вручную:
sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
При установке Debian не надо отмечать web server, поскольку в качестве него у нас Nginx внутри контейнера Docker’а с нашим PaaS работать будет.
После установки системы копипастим эти строчки:
sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
В общем скачайте что вам нравится, запишите на флешку при физическом пути, подключите к виртуалке при виртуальном и давайте, устанавливайте по инструкциям.
Помимо того, чтобы вводить команды вручную, вы можете использовать Ansible или другие системы для развёртывания, но данное руководство их проигнорирует, поскольку ничего сложного мы не делаем. Просто знайте, что если вам потребуется однотипно настраивать несколько машин, то можно по ssh удобненько это делать через Ansible. Но ssh игнорировать всё же не стоит, ведь как минимум подключившись к своей машине по нему, вы сможете тупо копипастить все команды из руководств, а не вводить вручную.
Ansible это достаточно важный инструмент для Linux-админа и, если вы планируете сдавать или хотя бы просто учиться на сертификации от RedHat, то он вам понадобится. Ну так, на будущее.
Ssh клиентов великое множество, я обычно пользуюсь встроенным в Windows OpenSSH (хотя он встроен, но в старых версиях Windows 10 может быть по-умолчанию отключен. Включается в Turn Windows Features On and Off (Управление дополнительными компонентами)). Просто открываете PowerShell и пишите:
ssh логин_в_linux@IPшник_сервера
А после вводите пароль своего пользователя. Тут стоит отметить, что использовать ssh с паролем это не особо безопасно (но зато проще всего), и, если у вас будет желание с этим разобраться, то лучше настроить ssh ключ.
Систему мы настроили, но не спешите ставить CapRover. Сначала вернёмся к роутеру. Найдите в нём ваш сервер и зарезервируйте его IP адрес в DHCP. Ну или поменяйте его на что-нибудь приятное и зарезервируйте. У вас есть чувство прекрасного, я уверен. После этого пропишите перенаправление с 80, 443 и 3000 портов маршрутизатора на 80, 443 и 3000 порты нашего сервера.
Вот пример того, как оно выглядит в моём роутере TP-Link:
Теперь идём к домену. Войдите в CloudFlare или DNS редактор вашего регистратора и создайте следующую запись:
Тип: A
Хост: *.ваш.домен
Запись: указывает на ваш внешний IP адресЕсли вы не знаете как узнать ваш внешний IP адрес, то посмотрите в настройках интерфейса, роутера, где угодно. Ну или наберите в поисковике что-нибудь вроде «мой IP», если копаться не хочется.
Можете сразу не отходя от кассы создать токен, если планируете динамически обновлять DNS при изменении вашего IP адреса.
Для этого пройдите по ссылке https://dash.cloudflare.com/profile/api-tokens и создайте токен со следующими свойствами:
Zone — Zone Settings — Read
Zone — Zone — Read
Zone — DNS — EditInclude — All zones
Сохраните длинный Cloudflare API токен, но далеко не убирайте.
Всё, теперь заходим на сервер и пишем волшебную команду, которая поднимает нашу систему для управления контейнерами:
docker run -p 80:80 -p 443:443 -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock -v /captain:/captain caprover/caprover
Если вы плохо знакомы с Docker’ом, то тут мы запускаем наш первый контейнер — небольшой PaaS CapRover. Помимо этого мы даём портам в контейнере путь на волю (-p 80:80 -p 443:443 -p 3000:3000), позволяем контейнеру иметь доступ к демону Docker на хост-машине (-v /var/run/docker.sock:/var/run/docker.sock) и делаем так, чтобы папка из контейнера хранила своё содержимое в папке на хосте (-v /captain:/captain). Если так не сделать, то при перезапуске контейнера всё содержимое: настроечные файлы и другие данные нашего контейнера, потеряются навсегда. Так что никогда не забывайте указывать команду -v при работе docker в консоли, чтобы потом не плакать у разбитого корыта. Ну а caprover/caprover — это образ на Docker Hub.
Подождите немного и зайдите либо по айпи адресу, либо по адресу вашего домена:3000 (например http://мой.домен:3000), введите пароль captain42 . После этого тут же введите в нижнее поле ваш домен и нажмите Update Domain. Можете также нажать на Enable HTTPS, но вот на Force HTTPS не надо нажимать — Cloudflare и так трафик у вас (если вы оставили рекомендуемые настройки) с http на https переводит. Конфликтов на этом поводе нам не надо.
Настала пора запустить наш первый контейнер внутри PaaS.
Перейдите в веб панели в раздел Apps, нажмите на One-Click Apps/Database, найдите CloudFlare DDNS. Это достаточно простой контейнер, весь смысл которого сводится к тому чтобы раз в пять минут проверять, изменился ли IP адрес сервера, и, если изменился, обновлять DNS запись на CloudFlare.
После того как вы нажали на него, вы увидите много опций для ввода. Вообще говоря, чтобы всё заработало нам достаточно просто указать наш сохранённый токен CloudFlare и задать какое-нибудь имя. Но давайте всё-таки разберёмся, что именно мы видим.
А видим мы опции ввода так называемых переменных окружения. Не всех правда, а только тех, которые указал автор конфигурационного файла для CapRover. Значения из этих переменных контейнер может достать и использовать в своих целях, проще говоря через них задаётся начальная конфигурация контейнера.
Так вот, задайте какое-нибудь имя, вставьте ранее сохранённый токен и нажмите Deploy. Контейнер заработал. Теперь можете делать что угодно!
Чуть сложнее
Этот контейнер был простым, без веб доступа, но что у тех, к которым мы будем иметь доступ? Да в общем всё так же, разве что ещё можно включить https, задать домен, указать HTTP порт контейнера и включить websocket. Попробуйте, это просто и интересно!
Использование
И вот наконец у нас всё стоит и работает.
Зачем оно вам? Ну, если вы до сих пор не знаете — придумайте. Для установки в один клик в CapRover доступно множество приложений для повседневного использования. Например менеджер паролей Vaultwarden. Торрент-клиент Qbittorrent. Сервер Minecraft. Боты для Discord. Вариантов много.
Я, например, держу стол для игры в DnD с друзьями Foundry VTT, веб-интерфейс для пробуждение от спячки моего домашнего компьютера (чтобы потом подключаться по RDP), свой маленький гит на базе Gitea, удобный фронтэнд для чтения Reddit’а libReddit, веб-архив для закладок и ещё кучу всякой всячины для тестов и изучения.
Ничто не мешает вам самому поэкспериментировать с контейнерами, которых в списке ещё нет, а если результат будет удовлетворительным — опубликовать свой конфиг на Github среди других приложений для установки в один клик.
В самом начале мы установили SSH, так что если вы захотите более тонкой настройки, подключите и тыкайтесь. Советую также зайти на SSH через VS Studio Code с установленным расширением Docker’а, и установить его же сразу там на ваш сервер. Теперь наблюдать, управлять и чистить мусор в контейнерах гораздо удобнее.
Что дальше?
Возможно, вам уже хватило, вы поняли что это не ваше и вообще. Тоже неплохой результат. Возможно, вы просто хотели домашний сервер и получили его — опять же, к результату мы пришли. Или же вы хотите большего — и это тоже прекрасный результат! Надо понимать, что хотя Docker Swarm уже несколько протух, для небольших нагрузок, вроде домашнего использования, он подходит на отлично. А если вам мало, то, разобравшись как и что тут работает, вы можете медленно начать своё движение к изучению kubernetes.
Что можно посоветовать конкретного? Ну, если Docker вам интересен и хочется в нём разобраться поглубже, то вводный цикл статей от Microsoft достаточно приятно и наглядно объясняет как и что оно.
Если хотите покрупнее брать — и в Hyper-V получше разобраться, и в контейнерах и чуточку затронуть кубер, то вот ещё у них есть неплохие материалы.
Не, не, вы не подумайте, я хоть и виндовый админ (ну хорошо-хорошо, эникей а не админ), но не сказать чтобы прям топлю за Microsoft, просто материалы у них бесплатные и достаточно толковые, на мой взгляд.
Коли от Microsoft тошнит — ищите курсы. В англоязычных интернетах с этим проще — идёшь на Udemy или Pluralsight и выбираешь курс по теме, где люди поменьше в комментах бугуртят на качество, и в бой. С русскоязычными курсами посложнее в выборе, но кто ищет — тот найдёт.
Ну и наконец если в целом вся эта тема с сервисами на своём домашнем сервере вам интересна, то вот отличный список selfhosted решений на все случаи жизни.
В общем, да пребудет с вами IT сила!