Найти в Дзене
Помоги себе сам

Домашний сервер на Proxmox

Облачный сервер (на базе Proxmox) у себя дома может быть полезен как учебный стенд при самостоятельном изучении курсов по различным IT-специальностям или как сервер с медиаконтентом или ещё очень много зачем. Вряд ли бы вы открыли эту заметку, если бы уже не определились что он вам нужен. Железо себе под сервер я себе купили на маркет-плейсе. Материнская плата + процессор на 24 потока +16 Гб ОЗУ за 5000р, Корпус 1000р, M2.SSD 256 ГБ 2000р, кулер 1000р, БП 600Вт 2000р = 11 тысяч рублей за всё. Собирал на базе китайской платформы, поэтому "были неочевидные нюансы", но заботливый продавец положил распечатку FAQ в коробку с материнкой. Если ваш продавец сделает также - сначала прочитайте его а потом собирайте - сэкономите время и нервы! Для доступа к серверу "снаружи" вам понадобится белый IP-адрес, у моего провайдера на сайте услуга была недоступна, но через чат поддержки подключили без проблем (180р в месяц). Когда будете настраивать проброс порта, рекомендую использовать не стандартный
Оглавление

Облачный сервер (на базе Proxmox) у себя дома может быть полезен как учебный стенд при самостоятельном изучении курсов по различным IT-специальностям или как сервер с медиаконтентом или ещё очень много зачем. Вряд ли бы вы открыли эту заметку, если бы уже не определились что он вам нужен.

Железо себе под сервер я себе купили на маркет-плейсе. Материнская плата + процессор на 24 потока +16 Гб ОЗУ за 5000р, Корпус 1000р, M2.SSD 256 ГБ 2000р, кулер 1000р, БП 600Вт 2000р = 11 тысяч рублей за всё. Собирал на базе китайской платформы, поэтому "были неочевидные нюансы", но заботливый продавец положил распечатку FAQ в коробку с материнкой. Если ваш продавец сделает также - сначала прочитайте его а потом собирайте - сэкономите время и нервы!

Конкрено который я купил уже закончился - на картинке похожий комплект
Конкрено который я купил уже закончился - на картинке похожий комплект

Для доступа к серверу "снаружи" вам понадобится белый IP-адрес, у моего провайдера на сайте услуга была недоступна, но через чат поддержки подключили без проблем (180р в месяц). Когда будете настраивать проброс порта, рекомендую использовать не стандартный внешний порт (например 806 ->8006, 202->22). В дальнейшем хорошо бы усилить безопасность (я не буду описывать здесь вариант, который рекомендовал бы сам, так как в РФ запрещено писать про настройку приватных сетей).

Про установку самой среды сказано уже много в интернете, поэтому повторяться не буду. Устанавливаем и настраиваем (репозитории, директории, сеть для виртуальных машин) по актуальной инструкции (у меня сейчас начало 2025 года), например этой. Получится, что моя статья дополняет приведённую по ссылке.

В кратце установка: скидываем на загрузочную флешку образ с официального сайта, загружаемся с этой флешки и устанавливаем используя мастер установки.

В упомянутой инструкции есть раздел по подключению бесплатных репозиториев и удалению назойливого предложения купить лицензию, но я рекомендую пробежаться глазами по самым популярным скриптам на этом сайте, чтобы не делать долго то, что можно сделать в один клик.

Я купил небольшой M2.SSD под систему и какие-то требовательные к скорости диска задачи, проверил что всё пришедшее от китайца железо хорошее и тогда купил жёсткий диск HDD под виртуальные машины (также на маркет-плейсе за 1000р). Поэтому следующей задачей стало проверить диск и подключить его к Proxmox VE. Потом наверняка придётся подключать диски для данных, которые не стоит хранить в виртуальных машинах или контейнерах (Базы данных, медиаконтент итд), поэтому на этом остановлюсь поподробнее. В рамках этой заметки не будет более сложных и ресурсоёмких вариантов с ZFS и Ceph.

Для доступа в консоль сервера (доступ к обычным функциям обычного linux-сервера) Datacenter -> pve -> Кнопка "Shell" в правом верхнем углу.

Так как высока вероятность по такой цене купить БУ диск, то его надо проверить как следует после покупки, например так (рекомендую запускать badblocks внутри screen):

smartctl -A /dev/sdb
badblocks -v -s -n -f /dev/sdb > test.out
time $(dd if=/dev/zero of=test.raw bs=100M count=10 && sync)

Затем надо создать на нём LVM-Thin и добавить в PVE через меню Datacenter -> Storage -> кнопка "ADD" -> LVM-Thin. Команды для разметки диска и создания LVM (не забудьте ключ -T) можно посмотреть например в этой инструкции. Я как-то слышал рекомендацию ставить metadatasize = 1% от размера диска, так и указал.

По-умолчанию сеть уже настроена и ничего делать не надо (если при установке вы её настроили через мастер), иначе всё в той же инструкции из начала статьи есть раздел посвящённый этому. Если вас не устраивает то что ВМ будут находится в вашей домашней подсети, то понадобится донастроить отдельную сеть для ВМ.

Настройка виртуальных машин (ВМ)

В тех Storage, которым выбрали вариант контента ISO Image можно нажать Datacenter -> pve -> local_или_ваше_название(pve) -> ISO Images -> кнопка "Upload" и выбрать ISO-образ с компьютера или воспользоваться упомянутым сайтом со скриптами (там есть Debian и Ubuntu, а также ВМ с уже установленными программами).

В правом верхнем углу есть кнопка Create VM, которая вызывает интуитивно-понятный мастер создания виртуальной машины. После создания ВМ она появится в панели слева и после клика на неё можно будет открыть её консоль соответствующей кнопкой.

Если почему-то не подключаетесь через SSH-клиент (нет возможности), то лучше из Shell самого PVE подключаться по SSH к ВМ, так как возникают проблемы с горячими кнопками
Если почему-то не подключаетесь через SSH-клиент (нет возможности), то лучше из Shell самого PVE подключаться по SSH к ВМ, так как возникают проблемы с горячими кнопками

Так как у меня домашний сервер часто выключается, поэтому я сразу отключаю в настройках ВМ автозапуск вместе с системой тем, которые этого не должны делать. Для отображения метрик с ВМ надо включить Quemi guest agent.

По-умолчанию настройка сети будет идти с вашего роутера, поэтому для подключения снаружи по SSH проще всего задать ВМ статический адрес (в гостевой ОС) и подключаться через хостовую ОС.

Пара слов про отличие LXC от docker

В Proxmox VE используются LXC-контейнеры, поэтому если хочется использовать docker, то разумнее всего будет поднять ВМ или LXC-контейнер и там уже запустить docker-контейнер. Конечно никто не запретит установить и использовать docker на хосте, но это будет нарушением самой идеологии и Docker и Proxmox.

С точки зрения использования LXC похож на docker в плане низких накладных расходов и используемого места на диске, но его жизненный цикл ближе к ВМ, например при остановке изменения сохраняются и перед какими-то экспериментами надо делать снапшот.

Настройка контейнеров (LXC)

В тех Storage, которым выбрали вариант контента CT Templates можно нажать Datacenter -> pve -> local_или_ваше_название(pve) -> CT Templates -> кнопка "Upload" и выбрать архив с компьютера. Также можно нажать кнопку Templates и скачать из базы Proxmox либо воспользоваться упомянутым сайтом со скриптами.

Кнопка Create CT в правом верхнем углу запускает интуитивно-понятный мастер создания контейнера (но и вариант использования Shell никто не запрещает).

Добавить блочное устройство к ВМ

К ВМ можно подключить любое устройство добавленное во вкладке Datacenter -> Storage, а также файл образа диска.

Создать и сразу подключить новый файл файл образа диска (RAW)
Создать и сразу подключить новый файл файл образа диска (RAW)