~ / blog / series / domashnyaya-infrastruktura

Домашняя инфраструктура

Цикл о домашнем сервере, который держит полтора десятка сайтов: старый ноутбук вместо VPS, белый адрес, роутер MikroTik, защита от сканеров и fail2ban, Wi-Fi по дому, умные железки в сети и разборы «почему тормозит» — с цифрами и граблями из живой эксплуатации.

#Серверы 5 мин

fail2ban 13 дней молча не работал — а до этого забанил хозяина

Сменили формат журнала на JSON — и фильтры перестали совпадать хоть с одной строкой: 69 банов за четыре дня, потом ноль за тринадцать, а статус всё это время «работает». До этого фильтр забанил владельца за штатный запрос админки WordPress. Четыре способа сделать защиту бумажной и проверка за пять минут.

· · ·
#Серверы 5 мин

Сервер из ноутбука 2013 года: BIOS, сон, Wake on LAN и «сам перезагрузился»

Ноутбук на i3 и 4 ГБ держит полтора десятка сайтов: батарея вместо ИБП, сон запрещён, после отключения света его будит роутер. А «самопроизвольная перезагрузка» оказалась коротким нажатием кнопки питания — и нашлась только после того, как стало ясно, почему journalctl и grep по дате ничего не видят.

· · ·
#Серверы 4 мин

Белый адрес домой: статический NAT, серый WAN и проброс портов на MikroTik

Три услуги провайдера, которые звучат одинаково, и почему подошёл статический NAT за 100 ₽ в месяц. Почему на роутере адрес всё равно серый и проброс надо делать по интерфейсу, а не по адресу. И замер, который показал: дома не медленнее хостинга — тормозил VPN на моём же компьютере.

· · ·
#Серверы 5 мин

Ubuntu Server 26.04 на слабом сервере: десять граблей и дашборд на экране

Свой .link-файл не применяется, пароли в SSH остались включены, NTP недоступен, часы убежали на три часа, printf ломает кириллицу. И приборная доска на физическом экране: первая версия ела 17% ядра, после переписывания на встроенные средства bash — 1%.

· · ·
#Серверы 5 мин

Стенд как копия прода: traefik 2 не видит Docker 29, а stop не выключает

Повторили схему боевого сервера дома — и прокси не увидел ни одного сайта: traefik 2 ходит в Docker API 1.24, а Docker 29 принимает от 1.40. HostRegexp в traefik 3, compose без имени проекта, который гасит соседей, restart: always против stop и сторож, без которого ofelia не видит новые сайты.

· · ·
#Серверы 5 мин

Переезд 14 сайтов на домашний сервер: ловушки, которые молча портят результат

Переменные одного сайта утекли в другой, chown сломал MariaDB, импорт шёл со скоростью 45 КБ/с из-за буферного пула, кракозябры на Bitrix оказались правами на конфиг, а кэш миниатюр пересобирался на каждом запросе. И главный урок: копия должна быть один к одному.

· · ·
#Серверы 4 мин

DNS дома: одна запись на всю зону, резолвер по замеру и заглушка, сломавшая приставку

match-subdomain на MikroTik отвечает за все поддомены сразу — и не даёт сделать исключений. Замер семи резолверов: один и тот же Google по-разному отвечает через обычный DNS и через HTTPS. И как адрес страницы-заглушки провайдера попал в список роутера и сломал IPTV-приставку.

· · ·
#Серверы 5 мин

Первые 48 часов в интернете: кто стучится в домашний сервер и что с ними делать

8748 запросов за двое суток: 2002 на xmlrpc, медленный подбор паролей, 542 зонда .env и .git. Три уровня защиты — nginx, прокси и fail2ban. Googlebot, нашедший тестовую копию, и GPTBot с 90 запросами в минуту, которого не останавливает noindex.

· · ·
#Серверы 4 мин

SSH к домашнему серверу из командировки: без VPN, с ключом и баном

Высокий порт на роутере транслируется на 22-й, вход только по ключу, AllowUsers и fail2ban — три неудачи и бан на сутки. Как проверить доступ снаружи, не выходя из дома, почему бан срабатывает по 22-му порту и почему в поездке по имени не подключалось, а по адресу — сразу.

· · ·
#Серверы 5 мин

Wi-Fi в трёхэтажном доме: роуминга не было в принципе

Телефон цеплялся за дальний роутер — а это была отдельная сеть с тем же именем. Перевод TP-Link в точки доступа, MAC, который меняется при смене режима, каналы 1/6/11 и качество связи с 21% до 84%. И камера в 20 см от точки, подключённая через два этажа.

· · ·
#Серверы 5 мин

Умные железки в домашней сети: камера с каналом в облако и приставка, которая обновляется сама

Неизвестное устройство без открытых портов держало постоянный канал наружу — это была облачная камера. Почему такие камеры плохи устройством, расчёт своей записи без облака (150–300 ГБ в неделю, 5% ядра на камеру) и IPTV-приставка, которая сравнивает прошивки по принципу «отличается», а не «новее».

· · ·
#Серверы 5 мин

Кто ест слабый сервер: забытые процессы, крон в одну секунду и load без процессора

Линтер, работавший 21 час, зомби под sleep infinity, пять wp-cron в одну секунду, полтора ядра на прогрев тестовых копий и load 11 при пустом процессоре — подкачка. Как отличить зацикливание от новой работы и почему «диск отъедается» оказался перезаписью.

· · ·
#Серверы 5 мин

Удалённый сервер «падал» неделями, а виноват полный диск — и защита, запершая систему

Мелкие запросы проходили, крупные стояли на 0 КБ/с — а на диске оставалось 367 МБ из 15 ГБ. Журнал на 928 МБ, vacuum, освободивший ноль, ротация Docker, которая не действует на старые контейнеры. И connlimit, который через четыре дня упёрся в обычную нагрузку сети.

· · ·
#Серверы 5 мин

Почему почта и DNS не живут дома — и итог цикла про домашнюю инфраструктуру

Порт 25 открыт, Spamhaus чист, PTR сделают — и всё равно почту дома держать не стоит. Как проверять чёрные списки с контрольными адресами, почему авторитетный DNS дома хуже, чем кажется, и как переносить зону. Плюс итог 14 частей: где что молча не работало.

· · ·

$ tail -f /blog

Не пропустите новые статьи

Пишу разборы по скорости сайтов, кэшу и разработке — на живых проектах и с цифрами. Подпишитесь, и ссылка на новую статью придёт сразу после выхода. Без рекламы и спама, отписаться — в один клик.

В Telegramодна кнопка «Старт» в боте

или на почту

связаться

Расскажите о задаче