<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Железо | Константин Стародубов</title><link>https://starodubov.pro/tags/%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D0%BE/</link><description>Личный сайт Константина Стародубова — информационная безопасность, комплаенс и технологии идентификации.</description><language>ru-RU</language><managingEditor>xaku68@gmail.com (Константин Стародубов)</managingEditor><lastBuildDate>Thu, 16 Jul 2026 10:23:30 +0300</lastBuildDate><atom:link href="https://starodubov.pro/tags/%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D0%BE/index.xml" rel="self" type="application/rss+xml"/><item><title>MikroTik hAP ax3 с нуля: полный разбор конфигурации на RouterOS 7</title><link>https://starodubov.pro/mikrotik-hap-ax3-%D1%81-%D0%BD%D1%83%D0%BB%D1%8F-%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9-%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80-%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D0%BD%D0%B0-routeros-7/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0300</pubDate><author>xaku68@gmail.com (Константин Стародубов)</author><guid>https://starodubov.pro/mikrotik-hap-ax3-%D1%81-%D0%BD%D1%83%D0%BB%D1%8F-%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9-%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80-%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D0%BD%D0%B0-routeros-7/</guid><description>Разбор рабочей конфигурации роутера MikroTik hAP ax3 на RouterOS 7: Wi‑Fi 6, DHCP, DoH, WireGuard, split-tunnel для AI и YouTube, BGP, firewall, скрипты и обслуживание.</description><content:encoded><![CDATA[<p>Когда в руки попадает устройство с Wi‑Fi 6 (802.11ax), а не просто «ещё один роутер», хочется не только включить его и забыть, а разобраться: что именно даёт новый стандарт, как правильно выжать из него пользу и не наступить на типичные грабли. Я собрал в одном месте разбор своей рабочей конфигурации <strong>MikroTik hAP ax3</strong> на <strong>RouterOS 7.21.3</strong> — от схемы и сброса до Wi‑Fi, VPN, BGP и скриптов. Это не сухая инструкция «нажмите сюда», а скорее рассказ о том, как всё устроено и почему сделано именно так. Если нужна пошаговая настройка «с нуля» с картинками и тестами — отличный ориентир: <a href="https://gregory-gost.ru/mikrotik-perehodim-na-routeros-7-i-wi-fi-6-802-11ax-nastroika-hap-ax3/" target="_blank" rel="noopener">статья на Gregory Gost про hAP ax3 и RouterOS 7</a>.</p>
<hr>
<h2 id="0-кратко-об-устройстве-hap-ax3-и-routeros-7">0. Кратко об устройстве hAP ax3 и RouterOS 7</h2>
<p><img src="/images/external/mikrotik-hap-ax3-diagram.png" alt="Блок-схема MikroTik hAP ax³ — расположение чипов и интерфейсов" title="Официальный Block Diagram hAP ax³, источник: MikroTik" loading="lazy" decoding="async"></p>
<p><strong>hAP ax³</strong> — это уже не «коробочка с антеннами», а полноценный роутер с Wi‑Fi 6. Внешне он продолжает линейку MikroTik: чёрный корпус, приятная soft-touch поверхность, ничего лишнего. На схеме выше — официальная блок-схема платы (Block Diagram) с сайта производителя: расположение процессора IPQ-6010, радиомодулей, портов и USB. Страница продукта с фотографиями корпуса и спецификацией: <a href="https://mikrotik.com/product/hap%5Fax3" target="_blank" rel="noopener">mikrotik.com/product/hap_ax3</a>.</p>
<p>Под крышкой — ARM 64-bit, процессор <strong>IPQ-6010</strong> (4 ядра, авточастота 864–1800 МГц), 1 ГБ RAM и 128 МБ NAND. Порты: один на 2.5G и четыре гигабитных Ethernet, плюс USB 3.0 (до 1.5 А) — удобно для флешки с бэкапами. Беспроводная часть заявлена как <strong>AX1800</strong>: до 574 Mbit/s на 2.4 ГГц и до 1200 Mbit/s на 5 ГГц, два радиомодуля (Qualcomm QCN-5022 и QCN-5052), стандарты 802.11b/g/n/ax и 802.11a/n/ac/ax. То есть и старые устройства подключатся, и новые смогут использовать Wi‑Fi 6. Габариты 251×130×39 мм, рабочая температура от −20 до +70 °C — для дома с запасом.</p>
<p><strong>RouterOS 7</strong> компания MikroTik впервые показала в 2019 году на MUM в России; стабильной ветка стала в декабре 2021-го. Сейчас на всех ARM-устройствах по умолчанию уже седьмая версия. От шестой её отличает новое ядро Linux (5+): поддержка современных Wi‑Fi чипов, 5G-модемов и другой периферии, которой не было на старом ядре. На момент написания статьи у v7 по-прежнему нет ветки long-term — живём на stable. Важный нюанс: Wi‑Fi 6 на чипах Qualcomm в ROS 7 вынесен в отдельный пакет <strong>wifi-qcom</strong>. При обновлении прошивки его нужно ставить вместе с основным пакетом, иначе беспроводная часть не заработает. Подробная спецификация, фото платы и пошаговая настройка — в <a href="https://gregory-gost.ru/mikrotik-perehodim-na-routeros-7-i-wi-fi-6-802-11ax-nastroika-hap-ax3/" target="_blank" rel="noopener">статье Gregory Gost</a>.</p>
<hr>
<h2 id="1-что-мы-в-итоге-строим">1. Что мы в итоге строим</h2>
<p>Чтобы не блуждать по разделам впустую, сразу обозначу общую картину. Роутер выступает и как точка входа в интернет (WAN по DHCP от провайдера), и как единый центр для домашней сети и Wi‑Fi.</p>
<p><strong>Сеть и порты.</strong> Один порт (<code>ether1</code>) — WAN, четыре остальных плюс Wi‑Fi объединены в один LAN bridge. То есть и проводные устройства, и беспроводные оказываются в одной подсети. Два SSID: основной, условно <code>home-wifi</code>, для телефонов, ноутбуков и всего привычного; отдельный <code>iot-guest</code> на 2.4 ГГц — для умных лампочек, датчиков, принтера и прочего, что не хочется мешать с основным трафиком. Локальная сеть — классические <code>192.168.10.0/24</code>, роутер на <code>.1</code>, DHCP раздаёт адреса из пула (например 100–254).</p>
<p><strong>Интернет и DNS.</strong> DNS не доверяем провайдеру: всё идёт через <strong>AdGuard DoH</strong> на роутере, а клиентов принудительно перенаправляем на него, чтобы даже при ручной настройке DNS на устройстве запросы шли через наш фильтр.</p>
<p><strong>VPN и маршрутизация.</strong> Подняты <strong>WireGuard</strong> и <strong>L2TP/IPsec</strong> — два варианта на выбор или в запас. Часть трафика (например AI-сервисы и YouTube) уходит через WireGuard по отдельной routing table и mangle, остальное — напрямую через провайдера. Для обхода блокировок используются BGP-подписки (antifilter.download и antifilter.network): маршруты подтягиваются динамически, трафик к нужным префиксам уходит через VPN.</p>
<p><strong>Безопасность и обслуживание.</strong> Доступ к управлению (SSH, Winbox) только из LAN. Firewall, DDoS-защита, отключённые лишние сервисы. Плюс скрипты: резервные копии на USB, проверка обновлений RouterOS и уведомления в Telegram, мониторинг доступности хоста, сбор IP для YouTube из DNS-кэша и импорт списков подсетей. Всё это завязано на scheduler, чтобы работало само.</p>
<p>Дальше — как к этой схеме прийти по шагам и что важно не упустить.</p>
<hr>
<h2 id="2-с-чего-начать-с-нуля">2. С чего начать с нуля</h2>
<p>Если брать роутер «из коробки» и собирать конфиг с нуля, логичный порядок такой:</p>
<p>Сначала железо и база: обновить RouterOS (Main package + <strong>wifi-qcom</strong> из Extra packages), переименовать интерфейсы, собрать bridge, поднять Wi‑Fi (основной и при необходимости IoT SSID). Потом сеть: адресация на bridge, DHCP-сервер, WAN-клиент. Затем DNS и DoH, ограничение доступа к управлению. После этого — VPN (WireGuard, при желании L2TP), split-routing для нужных сервисов, BGP и фильтры. В конце — firewall, NAT, отключение лишних service-port, NTP, логирование, скрипты и scheduler. Так конфиг читается по слоям и меньше шансов что-то сломать в уже работающем.</p>
<hr>
<h2 id="21-сброс-и-обновление-прошивки">2.1. Сброс и обновление прошивки</h2>
<p>Роутер из коробки уже настроен под типовой сценарий. Чтобы собрать свою схему, конфигурацию лучше сбросить. Подключаться удобнее к порту <strong>Eth2</strong> (красный): у заводской конфигурации в Eth1 (зелёный) обычно предполагается кабель провайдера, и после сброса вы не потеряете связь с ПК. На компьютере выставляем статический IP, например 192.168.88.250/24, заходим в WinBox по MAC-адресу и выполняем:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">system reset-configuration no-defaults=yes skip-backup=yes
</code></pre><p>После сброса у роутера не будет IP — подключаемся снова по MAC. Заводской пароль написан на наклейке <strong>Product information</strong> на выдвижной площадке под корпусом — «всё как у взрослых», ничего не придумываем.</p>
<p>Частая ошибка — попытаться залить бэкап со старого роутера и «чуть подправить». Версия ОС и железо другие, лучше не рисковать. Разумнее экспортировать конфиг с предыдущего устройства (<code>export file=myconfig</code>), сохранить файл и переносить настройки по частям, сверяясь с документацией. Так и ошибки виднее, и понимание конфига выше.</p>
<p>Обновление до актуальной stable (или long-term, когда она появится для v7): скачиваем <strong>Main package</strong> и из архива <strong>Extra packages</strong> достаём пакет <strong>wifi-qcom</strong>. Оба файла перетаскиваем в WinBox на роутер и перезагружаем. Роутер сам подхватит пакеты и обновится. После перезагрузки снова заходим и продолжаем настройку.</p>
<hr>
<h2 id="3-диск-и-хранение-резервных-копий">3. Диск и хранение резервных копий</h2>
<p>Встроенной памяти у роутера немного (128 МБ NAND), и таскать туда тяжёлые backup’ы не хочется. Удобнее сразу завести флешку: разбить её как отдельный раздел и складывать туда и бинарные backup’ы, и текстовые export’ы. Пример создания раздела (размер под свой носитель):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/disk
add parent=usb1 partition-number=1 partition-offset=512 partition-size=15676210688 type=partition
</code></pre><p>Файлы резервных копий и экспортов тогда лежат, например, в <code>usb1-part1/backup/</code>. И место не жрём с роутера, и при перепрошивке или смене устройства архив под рукой.</p>
<hr>
<h2 id="4-именование-интерфейсов">4. Именование интерфейсов</h2>
<p>По умолчанию интерфейсы называются ether1, ether2 и т.д. — в конфиге и в головах быстро путаешься. Имеет смысл сразу переименовать их во что читаемое:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/interface ethernet
set [ find default-name=ether1 ] name=LAN-Eth1
set [ find default-name=ether2 ] name=LAN-Eth2
set [ find default-name=ether3 ] name=LAN-Eth3
set [ find default-name=ether4 ] name=LAN-Eth4
set [ find default-name=ether5 ] name=LAN-Eth5
</code></pre><p>В моей схеме <code>LAN-Eth1</code> по факту используется как WAN (кабель провайдера). Название, конечно, сбивает с толку — идеальнее было бы что-то вроде <code>WAN-Eth1</code>. Но раз уж в рабочем конфиге имя прижилось, я его не трогал. Если настраиваете с нуля, можно сразу задать осмысленные имена: так и в списке интерфейсов всё будет сортироваться понятнее.</p>
<hr>
<h2 id="5-bridge-для-локальной-сети">5. Bridge для локальной сети</h2>
<p>Один общий bridge объединяет все LAN-интерфейсы и Wi‑Fi в один L2-сегмент:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/interface bridge
add comment=LAN mtu=1500 name=LAN-Bridge protocol-mode=none
</code></pre><p>В него добавляются порты <code>LAN-Eth2</code>…<code>LAN-Eth5</code>, радиомодули <code>LAN-wifi5ghz</code> и <code>LAN-wifi24ghz</code>, а также виртуальный интерфейс для IoT (<code>iot-guest</code>). И основная сеть, и «умный дом» оказываются в одной подсети; разделение только по SSID и security profile, без VLAN. Для домашнего сценария этого часто хватает: устройства видят друг друга, при необходимости можно вынести IoT в отдельный VLAN позже.</p>
<p>Добавление портов в bridge (виртуальный интерфейс IoT создаётся в §8 и тогда же добавляется в bridge):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/interface bridge port
add bridge=LAN-Bridge interface=LAN-Eth2
add bridge=LAN-Bridge interface=LAN-Eth3
add bridge=LAN-Bridge interface=LAN-Eth4
add bridge=LAN-Bridge interface=LAN-Eth5
add bridge=LAN-Bridge interface=LAN-wifi5ghz
add bridge=LAN-Bridge interface=LAN-wifi24ghz
add bridge=LAN-Bridge interface=iot-guest
</code></pre><hr>
<h2 id="6-списки-интерфейсов">6. Списки интерфейсов</h2>
<p>Чтобы не привязывать firewall и NAT к конкретным портам (которые потом можно перекинуть), в RouterOS удобно пользоваться <strong>interface list</strong>. Я завёл три: <code>LAN</code> (в нём bridge), <code>WAN</code> (порт с провайдером), <code>VPN</code> (интерфейс WireGuard). Все правила фильтрации, NAT, raw и mangle ссылаются на эти списки. Поменял порт — обновил членство в списке, правила остаются теми же.</p>
<p>Создание списков и привязка интерфейсов (член списка = интерфейс, по которому потом фильтруем):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/interface list
add name=LAN
add name=WAN
add name=VPN comment=VPN

/interface list member
add interface=LAN-Bridge list=LAN
add interface=LAN-Eth1 list=WAN
add interface=wireguard1 list=VPN
</code></pre><p>Дополнительно имеет смысл включить <strong>neighbor discovery</strong> только для LAN — чтобы WinBox и прочие утилиты видели роутер в списке соседей только с внутренней сети: <code>/ip neighbor discovery-settings set discover-interface-list=LAN</code>.</p>
<hr>
<h2 id="7-wifi-6-основная-домашняя-сеть">7. Wi‑Fi 6: основная домашняя сеть</h2>
<p>Здесь самое интересное: ради чего вообще брали устройство с AX. Настройки в RouterOS 7 разнесены по меню <strong>WiFi</strong> — Security, Channel, Configuration; отдельного «Advanced Mode» больше нет, все опции на виду.</p>
<h3 id="что-даёт-стандарт-80211ax-wifi-6">Что даёт стандарт 802.11ax (Wi‑Fi 6)</h3>
<p>Помимо заявленных скоростей, полезны вещи, которые реально чувствуются в быту. <strong>Beamforming</strong> — роутер «подстраивает» луч под клиента, приём и передача стабильнее. <strong>WPA3</strong> даёт более стойкую аутентификацию. <strong>OFDMA</strong> (то, что давно есть в LTE) помогает, когда к одной точке висит куча устройств — они меньше мешают друг другу. Модуляция <strong>QAM-1024</strong> против прежней QAM-256 даёт прирост бит на герц. Плюс 802.11r/k/v: быстрый роуминг между точками, RRM (клиент может запрашивать список соседних AP), WNM (сеть может подсказывать клиенту перейти на другой канал). Всё это уже заложено в железе и драйверах; главное — не отключать лишнего и правильно выбрать канал.</p>
<h3 id="5-ггц-в-россии-unii-1-и-грабли-с-dfs">5 ГГц в России: UNII-1 и грабли с DFS</h3>
<p>С 5 ГГц в нашей стране ситуация особая. По факту для гражданского Wi‑Fi широко доступен только диапазон <strong>UNII-1</strong> (5170–5250 МГц). Остальные диапазоны (UNII-2, UNII-2 Extended, UNII-3) либо не лицензированы под бытовой Wi‑Fi, либо используются другими службами. И вот тут подвох: на этих частотах работает <strong>DFS</strong> (Dynamic Frequency Selection). Если роутер «услышит» радар (а радарные импульсы короткие, порядка долей микросекунды, и их бывает сложно отличить от помех), он обязан сменить канал. В итоге все клиенты разом теряют связь — сидишь, работаешь или смотришь фильм, и в один момент всё обрывается. Неприятно и непредсказуемо. Найти «тихую» частоту в DFS-диапазоне методом тыка можно, но гарантий нет: полгода всё ок, потом в один день — смена канала и обрыв.</p>
<p>Практичный вывод для домашней сети: зафиксировать канал в <strong>UNII-1</strong>, например <strong>5180 МГц</strong>, и отключить DFS (<code>skip-dfs-channels=all</code> или <code>disabled</code>). Тогда Wi‑Fi не будет самопроизвольно перепрыгивать. Ширина канала — 20, 40 или 80 MHz. 80 MHz занимает весь UNII-1 и даёт максимум скорости, но в плотной застройке все соседи тоже сидят на 5 ГГц, и узкий канал (20 или 40 MHz) часто оказывается стабильнее. Узнать, какие диапазоны разрешены для страны, можно так (для России):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/interface wifi radio reg-info country=Russia number=0
</code></pre><p>В выводе будут указаны допустимые диапазоны, например 2402–2482 (2.4 ГГц) и 5170–5250 (UNII-1) и далее. Подробнее про 5 ГГц в РФ, DFS и тесты — в <a href="https://gregory-gost.ru/mikrotik-perehodim-na-routeros-7-i-wi-fi-6-802-11ax-nastroika-hap-ax3/" target="_blank" rel="noopener">статье Gregory Gost</a>.</p>
<h3 id="профиль-безопасности-и-конфигурация">Профиль безопасности и конфигурация</h3>
<p>Сначала создаём профиль безопасности: WPA2 и WPA3, отключаем PMKID и WPS, включаем <strong>management protection</strong> (для WPA3 он, как правило, обязателен). Потом — каналы: для 5 ГГц берём 5180 МГц, отключаем DFS, ширину 20/40/80 MHz по вкусу; для 2.4 ГГц — свой channel (например 2437), ширина 20 MHz. В конфигурации привязываем канал, страну (Russia), SSID, включаем 802.11r (FT), multicast-enhance и при необходимости RRM/WNM с общим steering neighbor group, чтобы клиенты могли плавно переключаться между 2.4 и 5 ГГц.</p>
<p>В ROS 7 логика такая: <strong>Security</strong> (аутентификация, passphrase) → <strong>Channel</strong> (band, frequency, width) → <strong>Configuration</strong> (channel + security + SSID + country) → вешаем configuration на интерфейсы <code>wifi1</code> и <code>wifi2</code>. Иногда security-профиль приходится указывать и в configuration, и прямо на интерфейсе — в разных версиях ведут себя по-разному. Ниже пример шаблона (passphrase и имена подставьте свои):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/interface wifi security
add authentication-types=wpa2-psk,wpa3-psk disable-pmkid=yes management-protection=allowed name=sec1 wps=disable

/interface wifi channel
add band=5ghz-ax frequency=5180 name=ch5 skip-dfs-channels=all width=20/40/80mhz
add band=2ghz-ax frequency=2437 name=ch24 width=20mhz

/interface wifi configuration
add channel=ch5 country=Russia mode=ap name=cfg5ghz security=sec1 ssid=home-wifi
add channel=ch24 country=Russia mode=ap name=cfg24ghz security=sec1 ssid=home-wifi

/interface wifi
set [ find default-name=wifi1 ] configuration=cfg5ghz name=LAN-wifi5ghz security=sec1 disabled=no
set [ find default-name=wifi2 ] configuration=cfg24ghz name=LAN-wifi24ghz security=sec1 disabled=no
</code></pre><h3 id="один-ssid-для-24-и-5-ггц-с-роумингом">Один SSID для 2.4 и 5 ГГц с роумингом</h3>
<p>Если хочется один и тот же SSID для обоих диапазонов и чтобы телефон или ноутбук сам переключался между 2.4 и 5 ГГц в зависимости от уровня сигнала — это как раз то, для чего придуманы 802.11r/k/v. Включаем <strong>802.11r</strong> (FT, Fast BSS Transition) в security или configuration: при переключении на другую точку или канал ключи уже согласованы, разрыв минимальный. Дополнительно в steering можно включить <strong>802.11k</strong> (RRM) и <strong>802.11v</strong> (WNM): клиент получает список соседних AP и подсказки, куда перейти. Один и тот же SSID задаём в обеих configuration (2.4 и 5 ГГц), у обоих интерфейсов указываем общий <code>steering.neighbor-group</code> (он создаётся автоматически, вида <code>dynamic-SSID-xxxxxxxx</code>). Важно: когда именно переключаться — решает само клиентское устройство, роутер только даёт информацию. В логах потом можно увидеть строки вроде «roamed to LAN-wifi24ghz, signal strength -69».</p>
<hr>
<h2 id="8-отдельная-iot-сеть">8. Отдельная IoT сеть</h2>
<p>Умные лампочки, датчики, принтер и прочая мелочь не обязательно должны сидеть в той же сети, что и ноутбуки. Отдельный SSID (например <code>iot-guest</code>) только на 2.4 ГГц с собственным security profile — простой способ логически отгородить их. В моей схеме они по-прежнему в одном L2 с основной сетью (без VLAN), но уже в отдельном SSID; при необходимости доступ можно ограничить через access-list по MAC или вынести IoT в отдельный VLAN.</p>
<p><strong>Security profile для IoT</strong> — обычно только WPA2 (многие устройства ещё не поддерживают WPA3), без management protection. Отдельный профиль даёт свой пароль и при желании — другие настройки:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/interface wifi security
add authentication-types=wpa2-psk disable-pmkid=yes management-protection=disabled name=sec_iot wps=disable
# passphrase задайте своим
</code></pre><p><strong>Виртуальный интерфейс</strong> — «вторая точка доступа» на том же радиомодуле 2.4 ГГц, со своим SSID. Указываем master-interface (основной Wi‑Fi 2.4 ГГц), имя виртуального интерфейса и привязываем security:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/interface wifi
add comment=iot-guest configuration.mode=ap disabled=no master-interface=LAN-wifi24ghz name=iot-guest security=sec_iot
</code></pre><p>В <strong>bridge port</strong> добавляем этот виртуальный интерфейс, чтобы трафик IoT шёл в тот же LAN-Bridge. <strong>Access-list</strong> по MAC нужен, если хотите явно разрешать только известные устройства (например принтер): тогда на интерфейсе IoT и при необходимости на основном 2.4 ГГц добавляете правило <code>action=accept</code> с <code>mac-address=AA:BB:CC:DD:EE:FF</code> (подставьте MAC принтера или датчика). Остальные по умолчанию могут быть reject или не подключаться без пароля — зависит от политики.</p>
<hr>
<h2 id="9-kid-control">9. Kid Control</h2>
<p>RouterOS умеет ограничивать устройства по расписанию и по скорости (rate-limit). В конфиге заведён профиль Kid Control для одного из пользователей: к нему привязаны устройства по MAC, заданы окна доступа и лимиты. В firewall добавлен jump в цепочку kid-control, чтобы трафик этих устройств обрабатывался по своим правилам.</p>
<p><strong>Профиль</strong> — имя пользователя, дни/часы доступа и лимит скорости. Например: пн–пт (fri) 7:00–21:00, сб (sat) 6:00–21:00, лимит 2 Mbit/s:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip kid-control
add name=kid-user fri=7h-21h sat=6h-21h rate-limit=2M
</code></pre><p><strong>Устройства</strong> привязываются к профилю по MAC (и при желании имя для удобства):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip kid-control device
add mac-address=AA:BB:CC:DD:EE:01 name=Phone user=kid-user
add mac-address=AA:BB:CC:DD:EE:02 name=Tablet user=kid-user
</code></pre><p>В <strong>firewall filter</strong> в цепочке forward в начале добавлен jump в цепочку <code>kid-control</code>, где по connection mark или по адресам устройств применяются ограничения. Так трафик с этих MAC обрабатывается по правилам Kid Control (расписание и rate-limit).</p>
<hr>
<h2 id="10-адресация-lan-и-dhcp">10. Адресация LAN и DHCP</h2>
<p>Роутер получает адрес <code>192.168.10.1/24</code> на <code>LAN-Bridge</code>. Пул DHCP — например <code>192.168.10.100</code>–<code>192.168.10.254</code>. В опциях DHCP клиентам отдаём адрес роутера как DNS и NTP, чтобы все ходили через наш DNS и единое время. Для серверов, камер, NAS и прочего, что должно быть по постоянному IP, настроены статические lease по MAC — так и в логах понятнее, и резервирование не съезжает.</p>
<p><strong>IP на bridge</strong> и <strong>пул</strong>:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip address
add address=192.168.10.1/24 interface=LAN-Bridge network=192.168.10.0 comment=Local

/ip pool
add name=dhcp_pool1 ranges=192.168.10.100-192.168.10.254
</code></pre><p><strong>DHCP-сервер</strong> — привязка к интерфейсу LAN-Bridge и пулу; <strong>сеть</strong> — та же подсеть, шлюз и DNS/NTP указываем на роутер, чтобы клиенты получали их через опции DHCP:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip dhcp-server
add address-pool=dhcp_pool1 interface=LAN-Bridge name=dhcp_Lan

/ip dhcp-server network
add address=192.168.10.0/24 dns-server=192.168.10.1 gateway=192.168.10.1 ntp-server=192.168.10.1
</code></pre><p><strong>Статические lease</strong> — по MAC закрепляем постоянный IP за камерой, NAS, умным устройством (comment для удобства):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip dhcp-server lease
add address=192.168.10.10 comment=NAS mac-address=AA:BB:CC:DD:EE:FF server=dhcp_Lan
add address=192.168.10.70 comment=Camera mac-address=11:22:33:44:55:66 server=dhcp_Lan
</code></pre><hr>
<h2 id="11-wan-и-базовый-интернет">11. WAN и базовый интернет</h2>
<p>Кабель провайдера подключён к порту WAN; адрес получаем по DHCP. Важно: <code>use-peer-dns=no</code> и <code>use-peer-ntp=no</code>, чтобы DNS и время задавались на роутере, а не подставлялись от провайдера. Тогда все клиенты гарантированно идут через наш DoH и NTP.</p>
<p>Конкретно:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip dhcp-client
add comment=Internet interface=LAN-Eth1 use-peer-dns=no use-peer-ntp=no
</code></pre><p>Роутер получит IP, маску и шлюз от провайдера, но не будет подставлять полученные от него DNS и NTP — их мы задаём в <code>/ip dns</code> и через NTP client на роутере.</p>
<hr>
<h2 id="12-dns-через-adguard-doh">12. DNS через AdGuard DoH</h2>
<p>Все DNS-запросы с роутера и с клиентов (благодаря redirect) идут через <strong>AdGuard DoH</strong>. В <code>/ip dns</code> включаем <code>allow-remote-requests=yes</code>, прописываем DoH-URL <code>https://dns.adguard-dns.com/dns-query</code>, <code>verify-doh-cert=yes</code>. Чтобы при первом запросе не упереться в «курицу и яйцо», добавляем статические A-записи для <code>dns.adguard-dns.com</code> (94.140.14.14, 94.140.15.15) — bootstrap. В NAT настроен redirect DNS (TCP и UDP) и NTP на роутер для клиентов из LAN: даже если на устройстве прописать другой DNS, трафик всё равно пойдёт через наш.</p>
<p><strong>Настройка DNS и DoH</strong> (таймауты уменьшаем, чтобы долгие запросы не висели):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip dns
set allow-remote-requests=yes query-server-timeout=1s query-total-timeout=4s use-doh-server=https://dns.adguard-dns.com/dns-query verify-doh-cert=yes
</code></pre><p><strong>Bootstrap для DoH</strong> — пока резолвера ещё нет, роутер должен знать IP AdGuard; добавляем две A-записи (у AdGuard два адреса):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip dns static
add address=94.140.14.14 name=dns.adguard-dns.com type=A comment=&#34;AdGuard DoH&#34;
add address=94.140.15.15 name=dns.adguard-dns.com type=A comment=&#34;AdGuard DoH&#34;
</code></pre><p>После этого первый запрос к <code>dns.adguard-dns.com</code> пойдёт по одной из этих записей, и DoH заработает без «курицы и яйца».</p>
<hr>
<h2 id="13-wireguard">13. WireGuard</h2>
<p>Поднят интерфейс <code>wireguard1</code>, listen-port 51820, своя подсеть (например 10.8.0.2/24). Peer настроен с <code>allowed-address=0.0.0.0/0</code> — по умолчанию весь трафик через WG не гоняем. Кто куда идёт, решаем через отдельную routing table и mangle: помечаем нужные потоки и направляем их в таблицу с default gateway через WireGuard. Так получается аккуратный split-tunnel без перевода всей сети в VPN.</p>
<p><strong>Интерфейс</strong> (private-key и peer добавляются своими — ключи в статью не подставляем):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/interface wireguard
add listen-port=51820 mtu=1420 name=wireguard1
# private-key= и адрес на интерфейсе задаются при настройке
</code></pre><p><strong>Отдельная routing table</strong> для трафика в VPN — в неё потом добавляется default route через wireguard1:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/routing table
add fib name=to_wg
</code></pre><p><strong>IP на WireGuard</strong> и <strong>peer</strong>: у роутера свой адрес в подсети туннеля (например 10.8.0.2/24); peer с <code>allowed-address=0.0.0.0/0</code>, <code>endpoint-address</code> и <code>endpoint-port</code> — адрес вашего WG-сервера, <code>persistent-keepalive=25s</code> — чтобы туннель не засыпал за NAT. Маршрут по умолчанию в таблице <code>to_wg</code> задаётся отдельным правилом: <code>dst-address=0.0.0.0/0 gateway=wireguard1 routing-table=to_wg</code>. Весь трафик, помеченный mangle в эту таблицу, пойдёт через WG.</p>
<hr>
<h2 id="14-split-tunnel-для-ai-и-youtube">14. Split-tunnel для AI и YouTube</h2>
<p>Чтобы только трафик к AI-сервисам и YouTube шёл через VPN, а остальное — через провайдера, заведена отдельная routing table <code>to_wg</code> с default route через <code>wireguard1</code>. В mangle по address-list <code>ai_wg</code> и <code>youtube_wg</code> ставится mark-routing с <code>new-routing-mark=to_wg</code>. Списки пополняются доменами и подсетями (OpenAI, YouTube и т.п.); удобно вести их в отдельном export или скриптами (см. ниже). В итоге браузер и приложения ходят в интернет как обычно, а запросы к выбранным сервисам уходят через WireGuard.</p>
<p><strong>Mangle</strong> — помечаем маршрутизацию для трафика из LAN, у которого destination попал в списки <code>ai_wg</code> или <code>youtube_wg</code>:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip firewall mangle
add action=mark-routing chain=prerouting comment=&#34;Route AI via WireGuard&#34; dst-address-list=ai_wg in-interface-list=LAN new-routing-mark=to_wg passthrough=no
add action=mark-routing chain=prerouting comment=&#34;Route YouTube via WireGuard&#34; dst-address-list=youtube_wg in-interface-list=LAN new-routing-mark=to_wg passthrough=no
</code></pre><p><strong>Address-list</strong> <code>ai_wg</code> и <code>youtube_wg</code> содержат домены (openai.com, api.openai.com, chatgpt.com, youtube.com, googlevideo.com и т.д.) и подсети (например 172.64.150.0/24, 173.194.0.0/16 для Google/YouTube). Домены резолвятся в IP при первом запросе; подсети добавляются вручную или скриптами. Примеры записей (остальные по тому же принципу):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip firewall address-list
add address=api.openai.com list=ai_wg comment=&#34;AI split&#34;
add address=openai.com list=ai_wg comment=&#34;AI split&#34;
add address=youtube.com list=youtube_wg comment=&#34;YouTube split&#34;
add address=142.250.150.0/24 list=youtube_wg comment=&#34;YouTube split&#34;
</code></pre><hr>
<h2 id="15-l2tpipsec-клиент">15. L2TP/IPsec клиент</h2>
<p>Помимо WireGuard настроен L2TP-клиент к своему VPN-серверу (например <code>vpn.example.com</code>) с IPsec. Две технологии — и запас на случай проблем с одной, и возможность раскидывать разные задачи по разным туннелям.</p>
<p><strong>Профиль PPP</strong> для L2TP: трафик туннеля помечаем для interface-list=VPN (чтобы применять к нему свои правила и NAT), включаем сжатие и шифрование, change-tcp-mss — чтобы не ломать MTU по туннелю:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ppp profile
add bridge-learning=no change-tcp-mss=yes interface-list=VPN name=l2tp use-compression=yes use-encryption=yes use-mpls=no use-upnp=no
</code></pre><p><strong>L2TP-клиент</strong>: адрес сервера, логин и пароль (и при необходимости IPsec secret) — свои; keepalive чтобы соединение не рвалось:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/interface l2tp-client
add allow=mschap2 allow-fast-path=yes connect-to=vpn.example.com keepalive-timeout=30 name=L2TP-VPN profile=l2tp use-ipsec=yes user=your_l2tp_user
</code></pre><p>Пароль задаётся в <strong>Secrets</strong> (<code>/ppp secret</code>). IPsec: в <strong>IPsec proposal</strong> можно оставить aes-128-cbc; в <strong>IPsec profile</strong> — dh-group и enc-algorithm под ваш сервер. После подключения интерфейс L2TP появится в списке, и маршруты через него настраиваются по необходимости.</p>
<hr>
<h2 id="16-bgp-и-антифильтр">16. BGP и антифильтр</h2>
<p>Для обхода блокировок используются BGP-подписки: два instance (antifilter.download и antifilter.network), свои router-id и AS. Подключение к пирам: один через <code>wireguard1</code>, второй через WAN. Routing filters определяют, какие префиксы принимать и через какой шлюз их отдавать — вся логика «что принимать и куда слать» сосредоточена в фильтрах, конфиг не превращается в сотни статических маршрутов.</p>
<p><strong>Instance</strong> — по одному на подписку, свой router-id (обычно ваш внешний IP или произвольный уникальный в сети; в примере — документационный адрес, подставьте свой):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/routing bgp instance
add as=64999 name=bgp-instance-1 router-id=203.0.113.1 comment=&#34;antifilter.download&#34;
add as=64999 name=antifilter.network router-id=203.0.113.1 comment=&#34;antifilter.network&#34;
</code></pre><p><strong>Template</strong> — hold-time и keepalive для стабильной сессии, input filter задаёт, какие префиксы принять и с каким gateway (wireguard1 или WAN):</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/routing bgp template
add as=64999 hold-time=4m input.filter=bgp_in keepalive-time=1m multihop=yes name=tpl_antifilter_download routing-table=main
add as=64999 hold-time=4m input.filter=antifilter-in keepalive-time=1m multihop=yes name=tpl_antifilter_network routing-table=main output.network=bgp-networks
</code></pre><p><strong>Connection</strong> — привязка к instance и template, адрес пира (у antifilter это публичные IP, например 45.154.73.71 и 45.148.244.55), remote AS. Один пир доступен через wireguard1 — для него добавляем статический маршрут до его IP через wireguard1; второй — через WAN (gateway провайдера). <strong>Routing filter</strong> в input задаёт правило вида: принять префиксы с нужными BGP communities и установить им gateway wireguard1 (или WAN). Детали фильтров смотрите в документации antifilter.download и antifilter.network.</p>
<hr>
<h2 id="17-firewall-filter">17. Firewall filter</h2>
<p>На input: принимаем established/related/untracked, ICMP, разрешаем BGP от известных peer; invalid дропаем; всё, что не из LAN, в конце дропаем. Для защиты от перебора по SSH и Winbox агрессивные попытки с WAN попадают в blacklist. Forward: established/related — accept, invalid — drop, с WAN без dstnat новое — drop, затем цепочка DDoS и jump в kid-control. FastTrack отключён — из-за mangle, WireGuard, BGP и DDoS нужен полный проход пакетов через фильтр.</p>
<p><strong>Input</strong>: порядок правил — сначала разрешаем «нормальные» состояния и ICMP, потом BGP от IP пиров (чтобы не потерять сессию), затем защита портов 22 и 8291 — при превышении лимита соединений добавляем в blacklist и дропаем, в конце дроп всего не из LAN:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip firewall filter
add action=accept chain=input connection-state=established,related,untracked comment=&#34;accept established,related,untracked&#34;
add action=drop chain=input connection-state=invalid comment=&#34;drop invalid&#34;
add action=accept chain=input protocol=icmp comment=&#34;accept ICMP&#34;
add action=accept chain=input dst-port=179 protocol=tcp src-address=45.154.73.71 comment=&#34;BGP peer antifilter.download&#34;
add action=accept chain=input dst-port=179 protocol=tcp src-address=45.148.244.55 comment=&#34;BGP peer antifilter.network&#34;
add action=add-src-to-address-list address-list=mgmt_blacklist address-list-timeout=1d chain=input connection-limit=20,32 connection-state=new dst-port=22,8291 in-interface-list=WAN protocol=tcp comment=&#34;blacklist on limit&#34;
add action=drop chain=input dst-port=22,8291 in-interface-list=WAN protocol=tcp src-address-list=mgmt_blacklist comment=&#34;drop blacklisted&#34;
add action=drop chain=input in-interface-list=!LAN comment=&#34;drop all not from LAN&#34;
</code></pre><p><strong>Forward</strong>: jump в kid-control, затем accept established/related, drop invalid, drop новое с WAN не dstnat, jump в detect_DDoS для нового трафика с WAN (и при желании такой же jump для input на порты 22,80,443,8291). <strong>Цепочка detect_DDoS</strong>: при нормальной частоте — return; при превышении — add-dst-to-address-list ddos-targets и add-src-to-address-list ddos-attackers (timeout 10m).</p>
<hr>
<h2 id="18-ddos-защита">18. DDoS-защита</h2>
<p>Отдельная цепочка <code>detect_DDoS</code> по порогам добавляет в address-list <code>ddos-targets</code> и <code>ddos-attackers</code>. В raw эти пары дропаются, чтобы не нагружать основной firewall. BGP peer из DDoS-обработки исключены, иначе можно потерять сессию с антифильтром.</p>
<p><strong>Raw</strong> — обрабатывается до filter; сначала разрешаем трафик до BGP peer (чтобы их не занести в DDoS по ошибке), затем дроп по паре attackers → targets:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip firewall raw
add action=accept chain=prerouting dst-port=179 protocol=tcp src-address=45.148.244.55 comment=&#34;Bypass DDoS for BGP antifilter.network&#34;
add action=accept chain=prerouting dst-port=179 protocol=tcp src-address=45.154.73.71 comment=&#34;Bypass DDoS for BGP antifilter.download&#34;
add action=drop chain=prerouting dst-address-list=ddos-targets in-interface-list=WAN src-address-list=ddos-attackers comment=&#34;DDoS drop attackers-&gt;targets&#34;
</code></pre><p>Цепочка <strong>detect_DDoS</strong> в filter при превышении dst-limit добавляет адреса в <code>ddos-targets</code> и <code>ddos-attackers</code>; raw затем режет трафик между ними без нагрузки на основные правила.</p>
<hr>
<h2 id="19-nat">19. NAT</h2>
<p>Masquerade на WAN — весь исходящий трафик в интернет уходит с адресом роутера. Отдельно masquerade на интерфейсе WireGuard для трафика, уходящего в VPN. Redirect DNS (TCP/UDP) и NTP (UDP) на роутер для клиентов из LAN — чтобы все запросы шли через наш DNS и NTP.</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN ipsec-policy=out,none comment=&#34;masquerade WAN&#34;
add action=masquerade chain=srcnat out-interface-list=VPN comment=&#34;WG_NAT&#34;
add action=redirect chain=dstnat dst-address-type=!local dst-port=53 in-interface-list=LAN protocol=tcp comment=&#34;Redirect DNS TCP to router&#34;
add action=redirect chain=dstnat dst-address-type=!local dst-port=53 in-interface-list=LAN protocol=udp comment=&#34;Redirect DNS UDP to router&#34;
add action=redirect chain=dstnat dst-address-type=!local dst-port=123 in-interface-list=LAN protocol=udp comment=&#34;Redirect NTP UDP to router&#34;
</code></pre><p><code>ipsec-policy=out,none</code> в masquerade WAN — чтобы не маскарадить трафик, уже уходящий в IPsec. Redirect перехватывает запросы клиентов к внешним 53 и 123 портам и отправляет их на роутер.</p>
<hr>
<h2 id="20-mss-clamp">20. MSS-clamp</h2>
<p>По VPN туннелю MTU обычно меньше, и большие TCP-сегменты начинают фрагментироваться или рваться. В mangle для трафика через <code>wireguard1</code> ставится change-mss для TCP с <code>new-mss=1380</code> — тогда соединения не упираются в лимит и работают стабильнее.</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip firewall mangle
add action=change-mss chain=forward new-mss=1380 out-interface=wireguard1 protocol=tcp tcp-flags=syn tcp-mss=1381-65535
</code></pre><p>Правило срабатывает только для SYN с MSS больше 1380 — подменяем на 1380, чтобы по туннелю не уходили слишком большие сегменты.</p>
<hr>
<h2 id="21-отключение-ненужных-service-port">21. Отключение ненужных service-port</h2>
<p>В <code>/ip firewall service-port</code> отключены ftp, tftp, h323, sip, pptp и прочее, чем не пользуемся. Меньше открытых портов — меньше поверхность для случайных сканеров и ботов.</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip firewall service-port
set ftp disabled=yes
set tftp disabled=yes
set h323 disabled=yes
set sip disabled=yes
set pptp disabled=yes
</code></pre><hr>
<h2 id="22-ограничение-сервисов-управления">22. Ограничение сервисов управления</h2>
<p>SSH и Winbox разрешены только с подсети <code>192.168.10.0/24</code>. Telnet, www, api, api-ssl, ftp отключены. Для домашнего роутера этого обычно достаточно: с улицы до управления не добраться, изнутри сети — всё под рукой.</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/ip service
set ssh address=192.168.10.0/24
set winbox address=192.168.10.0/24
set telnet disabled=yes
set www disabled=yes
set api disabled=yes
set api-ssl disabled=yes
set ftp disabled=yes
</code></pre><p>Подставьте свою LAN-подсеть в <code>address</code>; с других адресов SSH и Winbox будут недоступны.</p>
<hr>
<h2 id="23-ntp-логирование-и-системные-параметры">23. NTP, логирование и системные параметры</h2>
<p>Часовой пояс — <code>Europe/Moscow</code>, identity роутера задаётся своим именем (например <code>home-ax3</code>), чтобы в логах и уведомлениях было понятно, какое устройство пишет. Логирование включено по нужным topic’ам. NTP client — со своими серверами (например российские NTP-пулы), NTP server на роутере включён: он и сам синхронизируется, и раздаёт время клиентам в LAN. При желании можно настроить светодиоды (например привязка к интерфейсам в <code>/system leds</code>) — в <a href="https://gregory-gost.ru/mikrotik-perehodim-na-routeros-7-i-wi-fi-6-802-11ax-nastroika-hap-ax3/" target="_blank" rel="noopener">статье Gregory Gost</a> есть пример.</p>
<p>Конкретные команды:</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/system clock
set time-zone-autodetect=no time-zone-name=Europe/Moscow

/system identity
set name=home-ax3

/system ntp client
set enabled=yes

/system ntp server
set enabled=yes

/system ntp client servers
add address=0.ru.pool.ntp.org
add address=1.ru.pool.ntp.org
</code></pre><p>Серверы NTP — пример (российская зона pool.ntp.org); подставьте свои. Логирование по темам, например account и critical: <code>/system logging add topics=account</code> и <code>topics=critical</code>. Обновление времени через облако MikroTik можно отключить: <code>/ip cloud set update-time=no</code>.</p>
<hr>
<h2 id="24-скрипты-по-данным-из-export">24. Скрипты (по данным из export)</h2>
<p>Ручное обслуживание роутера быстро надоедает: проверять обновления, смотреть, жив ли NAS, чистить старые бэкапы. В конфиге заведены несколько скриптов, которые висят на scheduler и делают это сами: бэкапы на USB, проверка новой версии RouterOS с уведомлением в Telegram, пинг хоста с алертом при недоступности, сбор IP для YouTube из DNS-кэша и импорт списков подсетей, плюс выгрузка логов (например вход/выход пользователей) в Telegram. Ниже — тела скриптов в виде кода. Вместо секретов (токен бота, chat ID, пароли) стоят плейсхолдеры: подставьте свои значения перед использованием.</p>
<h3 id="back_up_1">Back_up_1</h3>
<p>Создаёт бинарный backup и текстовый export в <code>usb1-part1/backup/</code>. Запускается из scheduler Backup.</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">:local currentTime [/system clock get time]
:local currentDate [/system clock get date]
:local backupFile (&#34;usb1-part1/backup/backup-&#34; . $currentDate . &#34;-&#34; . $currentTime . &#34;.backup&#34;)
:local backupTXT (&#34;usb1-part1/backup/backup-&#34; . $currentDate . &#34;-&#34; . $currentTime . &#34;.txt&#34;)
/system backup save name=$backupFile
/export show-sensitive file=$backupTXT
</code></pre><h3 id="backup_2">Backup_2</h3>
<p>Удаляет файлы в <code>usb1-part1/backup/</code> старше 30 дней. Запускается сразу после Back_up_1.</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">{
   :local daysAgo 30
   :local filter &#34;usb1-part1/backup/&#34;
   :local curDate [/system clock get date]
   :local curMonth [:pick $curDate 5 7]
   :local curDay [:pick $curDate 8 10]
   :local curYear [:pick $curDate 0 4]

   :foreach i in=[/file find type=backup] do={
      :local fileDate [/file get number=$i last-modified]
      :set fileDate [:pick $fileDate 0 11]
      :local fileMonth [:pick $fileDate 5 7]
      :local fileDay [:pick $fileDate 8 10]
      :local fileYear [:pick $fileDate 0 4]
      :local sum 0
      :set sum ($sum + (($curYear - $fileYear) * 365))
      :set sum ($sum + (($curMonth - $fileMonth) * 30))
      :set sum ($sum + ($curDay - $fileDay))
      :if ($sum &gt;= $daysAgo &amp;&amp; [/file get number=$i name] ~ $filter) do={
         /file remove $i
      }
   }

   :foreach i in=[/file find type=script] do={
      :local fileDate [/file get number=$i last-modified]
      :set fileDate [:pick $fileDate 0 11]
      :local fileMonth [:pick $fileDate 5 7]
      :local fileDay [:pick $fileDate 8 10]
      :local fileYear [:pick $fileDate 0 4]
      :local sum 0
      :set sum ($sum + (($curYear - $fileYear) * 365))
      :set sum ($sum + (($curMonth - $fileMonth) * 30))
      :set sum ($sum + ($curDay - $fileDay))
      :if ($sum &gt;= $daysAgo &amp;&amp; [/file get number=$i name] ~ $filter) do={
         /file remove $i
      }
   }
}
</code></pre><h3 id="telegram">Telegram</h3>
<p>Проверяет наличие новой версии RouterOS и при наличии отправляет уведомление в Telegram. <strong>Замените <code>YOUR_BOT_TOKEN</code> и <code>YOUR_CHAT_ID</code> на свои.</strong></p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">:local TGSendMessage do={
    :local tgUrl (&#34;https://api.telegram.org/bot&#34; . $Token . &#34;/sendMessage?chat_id=&#34; . $ChatID . &#34;&amp;text=&#34; . $Text . &#34;&amp;parse_mode=html&amp;disable_web_page_preview=True&#34;)
    /tool fetch http-method=get url=$tgUrl keep-result=no
}

:local TelegramBotToken &#34;YOUR_BOT_TOKEN&#34;
:local TelegramChatID &#34;YOUR_CHAT_ID&#34;
:local DeviceName [/system identity get name]
:local TelegramMessageText (&#34;&lt;b&gt;&#34; . $DeviceName . &#34;:&lt;/b&gt;  &#34;)

:local MyVar [/system package update check-for-updates as-value]
:local Chan ($MyVar -&gt; &#34;channel&#34;)
:local InstVer ($MyVar -&gt; &#34;installed-version&#34;)
:local LatVer ($MyVar -&gt; &#34;latest-version&#34;)

:if ($InstVer = $LatVer) do={
    :set TelegramMessageText ($TelegramMessageText . &#34;System is already up to date&#34;)
} else={
    :set TelegramMessageText ($TelegramMessageText . &#34;New version &#34; . $LatVer . &#34; is available! [Installed: &#34; . $InstVer . &#34;, channel &#34; . $Chan . &#34;].&#34;)
    $TGSendMessage Token=$TelegramBotToken ChatID=$TelegramChatID Text=$TelegramMessageText
}

:log info $TelegramMessageText
</code></pre><h3 id="check-host-and-alert">check-host-and-alert</h3>
<p>Проверяет доступность хоста пингом; при отсутствии ответов шлёт alert в Telegram. <strong>Замените <code>YOUR_BOT_TOKEN</code>, <code>YOUR_CHAT_ID</code> и при необходимости IP хоста.</strong></p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros"># IP проверяемого хоста (например NAS или сервер в LAN)
:local host &#34;192.168.10.10&#34;

:local telegramToken &#34;YOUR_BOT_TOKEN&#34;
:local chatId &#34;YOUR_CHAT_ID&#34;
:local message (&#34;Host &#34; . $host . &#34; unreachable!&#34;)

:local result [/ping $host count=3]

:if ($result = 0) do={
    /tool fetch url=(&#34;https://api.telegram.org/bot&#34; . $telegramToken . &#34;/sendMessage?chat_id=&#34; . $chatId . &#34;&amp;text=&#34; . $message) keep-result=no
    :log warning (&#34;Host &#34; . $host . &#34; unreachable. Alert sent to Telegram.&#34;)
} else={
    :log info (&#34;Host &#34; . $host . &#34; reachable (&#34; . $result . &#34; replies).&#34;)
}
</code></pre><h3 id="youtube-dns">youtube dns</h3>
<p>Собирает IP YouTube из DNS-кэша и добавляет их в address-list <code>youtube_dns_ips</code> (timeout 2d). Секретов нет.</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">:foreach i in=[/ip dns cache find where (name~&#34;youtube&#34;) or (name~&#34;ytstatic&#34;) or (name~&#34;ytimg&#34;) or (name~&#34;googlevideo.com&#34;) or (name~&#34;googleapis.com&#34;)] do={
  :local cacheName [/ip dns cache all get $i name]
  :local cacheType [/ip dns cache all get $i type]
  :delay delay-time=10ms
  :if ($cacheType=&#34;A&#34;) do={
    :local cacheData [/ip dns cache all get $i data]
    :if ([/ip firewall address-list find where address=$cacheData]=&#34;&#34;) do={
      :put (&#34;add: &#34; . $cacheName . &#34; &#34; . $cacheType . &#34; &#34; . $cacheData)
      /ip firewall address-list add address=$cacheData comment=$cacheName timeout=2d list=youtube_dns_ips
    }
  }
}
</code></pre><h3 id="youtube-ip">youtube ip</h3>
<p>Скачивает список подсетей YouTube с iplist.opencck.org и импортирует в RouterOS. Секретов нет.</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">/tool fetch url=&#34;https://iplist.opencck.org/?format=mikrotik&amp;site=youtube.com&amp;data=cidr4&#34; mode=https dst-path=iplist_v4_0cidr4.rsc
:delay 5s
:log info &#34;Downloaded iplist_v4_0cidr4.rsc youtube.com&#34;

/import file-name=iplist_v4_0cidr4.rsc
:delay 10s
:log info &#34;New iplist_v4_0cidr4 added youtube.com&#34;
</code></pre><h3 id="log_allert">Log_allert</h3>
<p>Выбирает новые записи логов по маске (например вход/выход), при необходимости исключает по подстроке, формирует текст в <code>MSG</code> и вызывает TG_ME. Подставьте свои фильтры в <code>IncludeMessages</code> и <code>ExcludeMessages</code>.</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">:local IncludeMessages &#34;logged in|logged out&#34;
:local ExcludeMessages &#34;user1|user2&#34;
:local Topics &#34;info|warning|error|critical&#34;
:local MsgLength 100

:global LogId
:local Msg &#34;&#34;
:local Array [/log find where topics~$Topics message~$IncludeMessages]
:local End ([:len $Array] - 1)
:local Start ([:find $Array $LogId])

:if ([:len $Start] = 0) do={
    :set Start ($End + 1)
} else={
    :set Start ($Start + 1)
}

:if ($Start &lt;= $End) do={
    :for i from=$Start to=$End do={
        :if (($ExcludeMessages = &#34;&#34;) || !([/log get ($Array-&gt;$i) message] ~ $ExcludeMessages)) do={
            :set Msg ($Msg . &#34;%0A&#34; . [/log get ($Array-&gt;$i) time] . &#34; &#34; . [:pick [/log get ($Array-&gt;$i) message] 0 $MsgLength])
        }
    }
}

:set LogId ($Array-&gt;$End)

:if ($Msg != &#34;&#34;) do={
    :global MSG
    :set MSG $Msg
    /system script run TG_ME
}
</code></pre><h3 id="tg_me">TG_ME</h3>
<p>Отправляет глобальную переменную <code>MSG</code> в Telegram. <strong>Замените <code>YOUR_CHAT_ID</code> и <code>YOUR_BOT_TOKEN</code> на свои.</strong> Вызывается из Telegram, check-host-and-alert, Log_allert.</p>
<pre tabindex="0"><code class="language-routeros" data-lang="routeros">:local ID &#34;YOUR_CHAT_ID&#34;
:local TKN &#34;YOUR_BOT_TOKEN&#34;
:global MSG

/tool fetch keep-result=no url=(&#34;https://api.telegram.org/bot&#34; . $TKN . &#34;/sendMessage?chat_id=&#34; . $ID . &#34;&amp;text=&#34; . [/system identity get name] . &#34;: &#34; . $MSG)
</code></pre><hr>
<h2 id="25-scheduler">25. Scheduler</h2>
<ul>
<li><strong>Backup</strong> — каждые 5 дней в 00:00:00: Back_up_1, затем Backup_2.</li>
<li><strong>Telegram</strong> — ежедневно в 16:00: скрипт Telegram.</li>
<li><strong>check-host</strong> — каждый час: check-host-and-alert.</li>
<li><strong>Log_allert_daily</strong> — ежедневно в 22:00: Log_allert.</li>
</ul>
<hr>
<h2 id="26-безопасность-и-практические-замечания">26. Безопасность и практические замечания</h2>
<p>Уже хорошо: сервисы ограничены, firewall input не открыт наружу, DoH, DDoS, backup и очистка, принудительный DNS/NTP на роутер, разделение WAN/VPN/LAN через interface list.</p>
<p>Стоит помнить: IoT без отдельного VLAN; в скриптах Telegram в export попадают токены и chat ID — полный <code>show-sensitive</code> нельзя публиковать. Для следующей итерации можно рассмотреть: VLAN для IoT, отдельный guest SSID, вынос секретов из script source, переименование WAN-порта в <code>WAN-Eth1</code>.</p>
<hr>
<h2 id="27-порядок-настройки-вручную">27. Порядок настройки вручную</h2>
<p>Если собирать конфиг вручную с нуля, удобно идти так: переименовать интерфейсы → создать LAN-Bridge и добавить порты → interface list (LAN, WAN, VPN) → Wi‑Fi security, channel, configuration → включить wifi1/wifi2 → при необходимости IoT SSID → IP на bridge → DHCP pool и server → DHCP client на WAN → DNS и DoH, bootstrap для AdGuard → WireGuard → routing-table to_wg → address-list для AI/YouTube → mangle → BGP и фильтры → filter, raw, nat → service-port и <code>/ip service</code> → NTP, identity, логи → скрипты и scheduler. В конце — <code>export show-sensitive</code> и сохранение в архив, чтобы не потерять наработки.</p>
<hr>
<h2 id="29-сравнение-с-hap-ac-и-что-даёт-переход-на-ax3">29. Сравнение с hAP ac и что даёт переход на ax3</h2>
<p>Резонный вопрос: стоит ли менять старый hAP ac на ax3, или это «просто ещё один роутер». На практике разница ощутимая. На Gregory Gost проводили сравнительные тесты: тот же сценарий — iPerf3 (60 потоков, 20 секунд, TCP) и передача файла 20 ГБ по SCP — сначала на hAP ac (RouterOS 6.49), потом на hAP ax3 (RouterOS 7.15). Результаты такие:</p>
<table>
	<thead>
			<tr>
					<th>Направление</th>
					<th>hAP ac</th>
					<th>hAP ax3</th>
					<th>Разница</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Client → Server (sender)</td>
					<td>434 Mbit/s</td>
					<td>614 Mbit/s</td>
					<td>~29% в пользу ax3</td>
			</tr>
			<tr>
					<td>Client → Server (receiver)</td>
					<td>378 Mbit/s</td>
					<td>595 Mbit/s</td>
					<td>~36% в пользу ax3</td>
			</tr>
			<tr>
					<td>Server → Client (sender)</td>
					<td>340 Mbit/s</td>
					<td>522 Mbit/s</td>
					<td>~35% в пользу ax3</td>
			</tr>
			<tr>
					<td>Server → Client (receiver)</td>
					<td>335 Mbit/s</td>
					<td>493 Mbit/s</td>
					<td>~32% в пользу ax3</td>
			</tr>
			<tr>
					<td>Скачивание файла 20 ГБ</td>
					<td>27 MB/s</td>
					<td>48 MB/s</td>
					<td>~44% в пользу ax3</td>
			</tr>
			<tr>
					<td>Загрузка файла 20 ГБ</td>
					<td>47 MB/s</td>
					<td>35 MB/s</td>
					<td>в этом тесте выше ac</td>
			</tr>
	</tbody>
</table>
<p>В среднем по Wi‑Fi прирост 30–45%: и скорость выше, и картина стабильнее. На 5 ГГц ax3 утилизирует канал заметно лучше; при линке провайдера до 500 Mbit/s по Wi‑Fi можно по-настоящему его использовать. Детальные замеры, графики и пошаговую настройку с нуля смотрите в <a href="https://gregory-gost.ru/mikrotik-perehodim-na-routeros-7-i-wi-fi-6-802-11ax-nastroika-hap-ax3/" target="_blank" rel="noopener">статье Gregory Gost про hAP ax3 и RouterOS 7</a> (раздел «Сравнительное тестирование»).</p>
<p>Если нужна именно точка доступа без лишних портов — можно присмотреться к <strong>cAP ax</strong>: характеристики близкие, несколько таких устройств можно объединить через CAPsMAN и сделать бесшовный Wi‑Fi по квартире или офису.</p>
<hr>
<h2 id="итог">Итог</h2>
<p>В итоге получается не «коробочка с Wi‑Fi», а полноценная RouterOS-конфигурация под одну крышу: Wi‑Fi 6 с отдельным IoT SSID и роумингом между 2.4 и 5 ГГц, DoH и принудительный redirect DNS/NTP, WireGuard и L2TP/IPsec, split-routing для AI и YouTube, BGP с антифильтром, firewall, DDoS-защита, резервные копии на USB, scheduler и оповещения в Telegram. Всё это реально собрать в одном устройстве, если разложить конфиг по слоям и не превращать его в свалку правил. Статья получилась длинной именно потому, что хотелось не просто перечислить пункты, а объяснить, зачем каждый кусок и как он связан с остальным. Для пошаговой настройки «с нуля», сброса, выбора каналов 5 ГГц и живых бенчмарков очень рекомендую <a href="https://gregory-gost.ru/mikrotik-perehodim-na-routeros-7-i-wi-fi-6-802-11ax-nastroika-hap-ax3/" target="_blank" rel="noopener">подробную статью по hAP ax3 и RouterOS 7 на Gregory Gost</a> — там и скриншоты, и консольные команды, и тесты в цифрах. Удачной настройки.</p>
]]></content:encoded></item><item><title>Anycubic Kobra 3: 3D‑принтер, который оказался полезнее, чем я ожидал</title><link>https://starodubov.pro/anycubic-kobra-3-3d%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9-%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D0%BB%D1%81%D1%8F-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D0%B5%D0%B5-%D1%87%D0%B5%D0%BC-%D1%8F-%D0%BE%D0%B6%D0%B8%D0%B4%D0%B0%D0%BB/</link><pubDate>Tue, 11 Feb 2025 00:00:00 +0300</pubDate><author>xaku68@gmail.com (Константин Стародубов)</author><guid>https://starodubov.pro/anycubic-kobra-3-3d%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9-%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D0%BB%D1%81%D1%8F-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D0%B5%D0%B5-%D1%87%D0%B5%D0%BC-%D1%8F-%D0%BE%D0%B6%D0%B8%D0%B4%D0%B0%D0%BB/</guid><description>Купил 3D‑принтер попробовать — оказался очень полезным. Ящерки на день рождения, филамент, поломка датчика и ремонт за 300 рублей.</description><content:encoded><![CDATA[<p><a href="https://store.anycubic.com/products/anycubic-kobra-3" target="_blank" rel="noopener"><img src="/images/external/anycubic-kobra-3.jpg" alt="Anycubic Kobra 3" title="Anycubic Kobra 3" loading="lazy" decoding="async"></a></p>
<p>Купил Anycubic Kobra 3 просто попробовать — насколько вообще полезная штука. А оказалась — очень полезная. Я даже не думал, что напечатаю столько всего.</p>
<p>Например, на день рождения ребёнку напечатал кучу ящерок. Детям очень понравилось — разбирали на ура. Такие мелочи, а сколько радости.</p>
<h2 id="куда-уходят-деньги">Куда уходят деньги</h2>
<p>Потом заметил: как в том смешном рилсе из запрещённых соцсетей — «деньги куда-то деваются». Оказалось, всё уходит на филамент. Принтер работает, печатаешь постоянно, катушки кончаются одна за другой. Так что если думаете «купил принтер и всё» — готовьтесь регулярно заказывать пластик.</p>
<h2 id="какой-филамент-для-чего">Какой филамент для чего</h2>
<p>Расписываю коротко, что куда годится:</p>
<h3 id="pla">PLA</h3>
<ul>
<li><strong>Температура</strong>: 190–220 °C</li>
<li><strong>Для чего</strong>: игрушки, подарки, органайзеры, всякие мелочи</li>
<li><strong>Плюсы</strong>: печатается легко, без запаха, экологичный</li>
<li><strong>Минусы</strong>: на жаре и солнце деформируется, хрупкий</li>
</ul>
<h3 id="petg">PETG</h3>
<ul>
<li><strong>Температура</strong>: 230–250 °C</li>
<li><strong>Для чего</strong>: держатели, крепления, то, что понадёжнее</li>
<li><strong>Плюсы</strong>: прочный, влаги не боится</li>
<li><strong>Минусы</strong>: настраивать сложнее</li>
</ul>
<h3 id="abs">ABS</h3>
<ul>
<li><strong>Температура</strong>: 230–250 °C</li>
<li><strong>Для чего</strong>: корпуса, детали для авто и т.п.</li>
<li><strong>Плюсы</strong>: крепкий, дёшево</li>
<li><strong>Минусы</strong>: воняет при печати, нужен закрытый корпус</li>
</ul>
<h3 id="tpu">TPU</h3>
<ul>
<li><strong>Температура</strong>: 220–240 °C</li>
<li><strong>Для чего</strong>: чехлы, всё гибкое и мягкое</li>
<li><strong>Плюсы</strong>: гнётся, не стирается</li>
<li><strong>Минусы</strong>: печатать надо медленно</li>
</ul>
<h3 id="asa">ASA</h3>
<ul>
<li><strong>Температура</strong>: 240–260 °C</li>
<li><strong>Для чего</strong>: вещи для улицы, что на солнце стоят</li>
<li><strong>Плюсы</strong>: выдерживает погоду и УФ</li>
<li><strong>Минусы</strong>: как ABS — запах и условия</li>
</ul>
<p>Для начала я бы взял PLA и PETG — с ними проще всего.</p>
<h2 id="сломался-термодатчик">Сломался термодатчик</h2>
<p>Через 400 часов печати у меня сломался датчик, который меряет температуру стола. Принтер выдал ошибку <strong>«Hotbed NTC abnormal»</strong> (код 10123).</p>
<h3 id="что-за-датчик">Что за датчик</h3>
<p>Называется <strong>термистор NTC 100k</strong> (тип B3950). Стандартная штука для стола почти любых FDM‑принтеров, Kobra 3 в том числе.</p>
<p><img src="/images/external/prusa-thermistor.jpg" alt="Термодатчик NTC 100k для нагревательного стола 3D‑принтера" title="Термистор NTC 100k — замена термодатчика стола Anycubic Kobra 3" loading="lazy" decoding="async"></p>
<p><em>Аналогичный датчик (источник: <a href="https://www.prusa3d.com/product/thermistor-ntc-100k-115-mm/" target="_blank" rel="noopener">Prusa3D</a>)</em></p>
<h3 id="как-починил">Как починил</h3>
<p>Заказал на Ozon за 300 рублей — пришло быстро. Замена минут 15: открутил стол, поменял датчик, прикрутил обратно. Всё, снова печатает.</p>
<p>Если такая же беда — ищите «термистор NTC 100k B3950 для 3D‑принтера». Смотрите, чтобы разъём подходил к вашей плате.</p>
<h2 id="в-общем">В общем</h2>
<p>Kobra 3 реально полезная вещь в быту. Главные траты — на филамент. Даже с поломкой датчика — 300 рублей и четверть часа, и принтер как новый. Запасной термистор на всякий случай иметь не помешает.</p>
<h2 id="upd-20062026">Upd 20.06.2026</h2>
<p>Kobra 3 продана за один день на Авито. Пока без принтера.</p>
]]></content:encoded></item><item><title>GEEKOM A5: как мини-ПК заменил мне сервер</title><link>https://starodubov.pro/geekom-a5-%D0%BA%D0%B0%D0%BA-%D0%BC%D0%B8%D0%BD%D0%B8-%D0%BF%D0%BA-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8%D0%BB-%D0%BC%D0%BD%D0%B5-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80/</link><pubDate>Sat, 11 Jan 2025 00:00:00 +0300</pubDate><author>xaku68@gmail.com (Константин Стародубов)</author><guid>https://starodubov.pro/geekom-a5-%D0%BA%D0%B0%D0%BA-%D0%BC%D0%B8%D0%BD%D0%B8-%D0%BF%D0%BA-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8%D0%BB-%D0%BC%D0%BD%D0%B5-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80/</guid><description>История о том, как я заменил громоздкий домашний сервер на компактный GEEKOM A5 и не прогадал. Рассказ о проблемах, поиске решения и впечатлениях от использования.</description><content:encoded><![CDATA[<p><img src="/images/geekom-a5/geekom-1_hu_bdff855cfb307174.webp"
    srcset="/images/geekom-a5/geekom-1_hu_26253d5589150224.webp 800w, /images/geekom-a5/geekom-1_hu_bdff855cfb307174.webp 1400w"
    sizes="(max-width: 860px) 100vw, 760px"
    width="1400" height="1050"
    alt="GEEKOM A5 МиниПК" title="GEEKOM A5 МиниПК"
    loading="lazy" decoding="async"></p>
<p>История о том, как я избавился от громоздкого сервера под столом и нашёл решение, которое работает тихо, экономно и надёжно. Если вы тоже устали от шума, лишнего железа и компромиссов — этот рассказ может быть вам полезен.</p>
<h2 id="как-всё-начиналось">Как всё начиналось</h2>
<p>До недавнего времени у меня дома стоял полноценный сервер. На бумаге выглядело впечатляюще: мощная платформа, много портов, поддержка NVMe, возможность запускать виртуалки. Казалось, что это идеальное решение для домашнего NAS и хостинга сервисов.</p>
<p><img src="/images/geekom-a5/old-server-1_hu_e82b3e9156016dd0.webp"
    srcset="/images/geekom-a5/old-server-1_hu_944c55a221b65476.webp 800w, /images/geekom-a5/old-server-1_hu_e82b3e9156016dd0.webp 1400w"
    sizes="(max-width: 860px) 100vw, 760px"
    width="1400" height="1050"
    alt="Мой старый домашний сервер" title="Старый сервер в корпусе Ginzzu CL150"
    loading="lazy" decoding="async"></p>
<p>Сердцем системы была материнская плата <strong>HUANANZHI X99 BD4</strong> на сокете LGA2011-3 — китайская реплика серверной платформы. На ней работал процессор <strong>Intel Xeon E5-2680 v4</strong> — четырнадцатиядерный монстр с поддержкой 28 потоков. Оперативная память была собрана из разных модулей: 16 ГБ в виде двух планок по 8 ГБ и ещё 32 ГБ двумя планками по 16 ГБ, итого <strong>48 ГБ DDR4</strong>. Система стояла на быстром NVMe-накопителе объёмом <strong>256 ГБ</strong>, а для охлаждения использовался кулер <strong>A04</strong>.</p>
<p><img src="/images/geekom-a5/old-server-2_hu_c57ea12ae68bb3fa.webp"
    srcset="/images/geekom-a5/old-server-2_hu_a05bdc68afd34fd5.webp 800w, /images/geekom-a5/old-server-2_hu_c57ea12ae68bb3fa.webp 1400w"
    sizes="(max-width: 860px) 100vw, 760px"
    width="1400" height="1050"
    alt="Внутренности сервера" title="Серверная платформа HUANANZHI X99 BD4 с Xeon E5-2680 v4"
    loading="lazy" decoding="async"></p>
<p>Всё это было собрано в корпусе <strong>Ginzzu CL150</strong> с закалённым стеклом — выглядело внушительно, но занимало много места. Питание обеспечивал блок питания <strong>Ginzzu SB500</strong> на 500 Вт. Для подключения к сети использовалась сетевая карта <strong>Intel AX210 Desktop Kit</strong> с поддержкой Wi-Fi 6. Видеокарта <strong>GeForce GT 730</strong> на 2 ГБ была нужна для вывода изображения, так как у серверного процессора нет встроенной графики. А для хранения данных — корзина <strong>ExeGate HS435-02</strong> на четыре жёстких диска.</p>
<p><img src="/images/geekom-a5/old-server-3_hu_ad7c6f20362f0c6c.webp"
    srcset="/images/geekom-a5/old-server-3_hu_b234f1d02ab778a9.webp 800w, /images/geekom-a5/old-server-3_hu_ad7c6f20362f0c6c.webp 1400w"
    sizes="(max-width: 860px) 100vw, 760px"
    width="1400" height="1050"
    alt="Серверная конфигурация" title="Полная конфигурация старого сервера"
    loading="lazy" decoding="async"></p>
<p>На бумаге конфигурация выглядела серьёзно. Шесть портов SATA для подключения дисков, четыре USB 3.0, поддержка четырёхканальной памяти, слот M.2 для быстрого накопителя. Всё это в теории позволяло собрать мощный домашний сервер для виртуалок, файлового хранилища и различных сервисов.</p>
<p>Но реальность оказалась другой.</p>
<h2 id="первые-звоночки">Первые звоночки</h2>
<p>Первое, что начало меня беспокоить — это шум. Даже с относительно тихими вентиляторами сервер постоянно напоминал о себе монотонным гудением. Он не кричал, но его присутствие чувствовалось всегда. Особенно ночью, когда хотелось тишины.</p>
<p>Потом я начал обращать внимание на счёт за электричество. Платформа, которая работала 24/7, съедала не так уж мало. А ещё она нагревалась. Даже зимой комната, где стоял сервер, ощущалась теплее остальных.</p>
<p>Но главная проблема была в другом — в софте.</p>
<h2 id="опыт-с-xpenology-когда-красиво-не-значит-надёжно">Опыт с XPEnology: когда красиво не значит надёжно</h2>
<p>Изначально на сервере я поставил <strong>XPEnology</strong> — неофициальную сборку прошивки Synology. Интерфейс был знакомый и удобный, всё выглядело как у настоящего Synology, только без необходимости платить за железо. Звучало отлично.</p>
<p>На практике же начались проблемы. Обновления системы были запрещены — любое обновление могло сломать всё к чертям. Постоянно всплывали мелкие баги, которые приходилось решать вручную. Диски периодически «отваливались» без видимой причины. XPEnology переставал их видеть, и приходилось перезагружаться, надеясь, что после перезагрузки всё вернётся на свои места.</p>
<p>В какой-то момент я понял: такая схема не даёт того, ради чего всё это затевалось — надёжности. Когда у тебя домашний сервер, ты хочешь, чтобы он просто работал. Без сюрпризов, без танцев с бубном, без постоянного внимания.</p>
<h2 id="поворотный-момент">Поворотный момент</h2>
<p>Именно тогда я решил: хватит. Нужно что-то другое. Не огромный железный монстр, который требует к себе внимания, а что-то простое, тихое и стабильное.</p>
<p>Я начал искать альтернативы и наткнулся на мини-ПК <strong>GEEKOM A5</strong>. По размерам — коробочка, которая поместится на ладони. По характеристикам — вполне серьёзное устройство с процессором AMD Ryzen.</p>
<p>И тут меня осенило: а что, если использовать мини-ПК как головной узел, а диски вынести в отдельное устройство? Так родилась идея связки <strong>GEEKOM A5 + внешний DAS</strong> (Direct Attached Storage).</p>
<h2 id="новое-решение">Новое решение</h2>
<p>Когда GEEKOM A5 приехал, первое, что я заметил — тишина. После постоянного гудения сервера эта коробочка работала практически бесшумно. Да, там есть вентилятор, но его почти не слышно. Это был первый плюс.</p>
<p><img src="/images/geekom-a5/geekom-1_hu_bdff855cfb307174.webp"
    srcset="/images/geekom-a5/geekom-1_hu_26253d5589150224.webp 800w, /images/geekom-a5/geekom-1_hu_bdff855cfb307174.webp 1400w"
    sizes="(max-width: 860px) 100vw, 760px"
    width="1400" height="1050"
    alt="GEEKOM A5 - вид спереди" title="Компактный GEEKOM A5"
    loading="lazy" decoding="async"></p>
<p>Второй плюс обнаружился через месяц — счёт за электричество стал заметно меньше. Мини-ПК потребляет в разы меньше энергии, чем серверная платформа, работающая круглосуточно.</p>
<p><img src="/images/geekom-a5/geekom-2_hu_5117336710993066.webp"
    srcset="/images/geekom-a5/geekom-2_hu_7f55be63c0cd214a.webp 800w, /images/geekom-a5/geekom-2_hu_5117336710993066.webp 1400w"
    sizes="(max-width: 860px) 100vw, 760px"
    width="1400" height="1050"
    alt="GEEKOM A5 - порты и разъёмы" title="Богатый набор портов на GEEKOM A5"
    loading="lazy" decoding="async"></p>
<p>Третий плюс — компактность. Вместо большого корпуса под столом теперь на полке стоит аккуратная коробочка, которую легко не заметить.</p>
<p><img src="/images/geekom-a5/geekom-3_hu_85d1cc89fba3f8f2.webp"
    srcset="/images/geekom-a5/geekom-3_hu_92203c5493d377e7.webp 800w, /images/geekom-a5/geekom-3_hu_85d1cc89fba3f8f2.webp 1400w"
    sizes="(max-width: 860px) 100vw, 760px"
    width="1400" height="1050"
    alt="GEEKOM A5 в рабочей обстановке" title="GEEKOM A5 на рабочем месте"
    loading="lazy" decoding="async"></p>
<h2 id="первые-впечатления-от-работы">Первые впечатления от работы</h2>
<p>Первые дни я приглядывался. Работает ли всё стабильно? Не будет ли проблем с производительностью? Справится ли он с теми задачами, которые я на него возложил?</p>
<p>Оказалось, справляется. Система загружается быстро благодаря NVMe-накопителю. Docker-контейнеры запускаются без проблем. Файловое хранилище, подключённое через DAS, работает стабильно. Нет тех глюков и «отвалов» дисков, которые были с XPEnology.</p>
<p>Через неделю я уже забыл, что у меня под столом стоял сервер. Новое решение просто работало. Без лишнего внимания, без проблем.</p>
<h2 id="что-изменилось">Что изменилось</h2>
<p>Иногда меньше — действительно лучше. Вместо громоздкого и прожорливого сервера я получил:</p>
<ul>
<li><strong>Тихую систему</strong> — можно забыть о постоянном гудении</li>
<li><strong>Стабильную работу</strong> — нет неожиданных сбоев и «отвалов»</li>
<li><strong>Меньше костылей</strong> — не нужно обходить баги и искать обходные пути</li>
<li><strong>Больше контроля</strong> — понимаю, что происходит и как это работает</li>
</ul>
<p><img src="/images/geekom-a5/geekom-4_hu_d0cff7f962013eef.webp"
    srcset="/images/geekom-a5/geekom-4_hu_fc54b450e46d77fd.webp 800w, /images/geekom-a5/geekom-4_hu_d0cff7f962013eef.webp 1400w"
    sizes="(max-width: 860px) 100vw, 760px"
    width="1400" height="1050"
    alt="GEEKOM A5 - боковой вид" title="Компактные размеры GEEKOM A5"
    loading="lazy" decoding="async"></p>
<p>GEEKOM A5 оказался отличной базой не только для офисных задач, но и для домашнего сервера. Особенно если вы, как и я, устали от шума, лишнего железа и вечных компромиссов.</p>
<h2 id="-полные-технические-характеристики-geekom-a5">📋 Полные технические характеристики GEEKOM A5</h2>
<h3 id="основные-характеристики">Основные характеристики</h3>
<h4 id="процессор">Процессор</h4>
<ul>
<li><strong>Модель</strong>: AMD Ryzen 7 5825U</li>
<li><strong>Архитектура</strong>: Zen 3</li>
<li><strong>Количество ядер</strong>: 8 ядер</li>
<li><strong>Количество потоков</strong>: 16 потоков</li>
<li><strong>Базовая частота</strong>: 2,0 ГГц</li>
<li><strong>Максимальная частота (Boost)</strong>: 4,5 ГГц</li>
<li><strong>TDP</strong>: 15 Вт</li>
</ul>
<h4 id="оперативная-память">Оперативная память</h4>
<ul>
<li><strong>Объём</strong>: 16 ГБ DDR4</li>
<li><strong>Тип</strong>: DDR4 (двухканальная)</li>
<li><strong>Возможность расширения</strong>: до 64 ГБ</li>
<li><strong>Слоты</strong>: 2 слота SO-DIMM DDR4</li>
</ul>
<h4 id="накопитель-данных">Накопитель данных</h4>
<ul>
<li><strong>Объём</strong>: 512 ГБ SSD</li>
<li><strong>Тип</strong>: NVMe PCIe 3.0 M.2 2280</li>
<li><strong>Возможность расширения</strong>: до 2 ТБ</li>
<li><strong>Слоты</strong>: 1 слот M.2 2280 PCIe 3.0</li>
</ul>
<h4 id="графическая-подсистема">Графическая подсистема</h4>
<ul>
<li><strong>Интегрированная видеокарта</strong>: AMD Radeon Vega 8</li>
<li><strong>Количество GPU ядер</strong>: 8</li>
<li><strong>Поддержка видео</strong>:
<ul>
<li>H.265/HEVC декодирование</li>
<li>4K видеовоспроизведение</li>
<li>Поддержка до 4 мониторов одновременно</li>
</ul>
</li>
</ul>
<h4 id="порты-и-интерфейсы">Порты и интерфейсы</h4>
<h5 id="usb-порты">USB порты</h5>
<ul>
<li><strong>USB-C 3.2 Gen 2</strong>: 1 порт (с поддержкой DisplayPort)</li>
<li><strong>USB-A 3.2 Gen 2</strong>: 4 порта</li>
<li><strong>USB-A 2.0</strong>: нет</li>
</ul>
<h5 id="видеовыходы">Видеовыходы</h5>
<ul>
<li><strong>HDMI 2.0</strong>: 2 порта (поддержка 4K@60Hz)</li>
<li><strong>USB-C DisplayPort</strong>: 1 порт (через USB-C 3.2 Gen 2)</li>
<li><strong>Поддержка подключения</strong>: до 4 мониторов одновременно</li>
</ul>
<h5 id="сетевые-интерфейсы">Сетевые интерфейсы</h5>
<ul>
<li><strong>Ethernet</strong>: 2.5 Gigabit Ethernet (RJ-45)</li>
<li><strong>Wi-Fi</strong>: Wi-Fi 6 (802.11ax)</li>
<li><strong>Bluetooth</strong>: Bluetooth 5.2</li>
</ul>
<h5 id="другие-порты">Другие порты</h5>
<ul>
<li><strong>SD-картридер</strong>: поддержка SD/SDHC/SDXC карт</li>
<li><strong>Аудио выход</strong>: 3.5 мм комбинированный разъём (наушники/микрофон)</li>
</ul>
<h4 id="операционная-система">Операционная система</h4>
<ul>
<li><strong>Предустановленная ОС</strong>: Windows 11 Pro</li>
<li><strong>Лицензия</strong>: Windows 11 Pro (включена в комплект)</li>
</ul>
<h4 id="физические-характеристики">Физические характеристики</h4>
<ul>
<li><strong>Размеры</strong>: 112 × 112 × 38 мм</li>
<li><strong>Вес</strong>: 500 г</li>
<li><strong>Материал корпуса</strong>: металл (алюминий)</li>
<li><strong>Цвет</strong>: чёрный/серебристый</li>
<li><strong>Охлаждение</strong>: активное (вентилятор)</li>
</ul>
<h4 id="питание">Питание</h4>
<ul>
<li><strong>Блок питания</strong>: внешний адаптер питания</li>
<li><strong>Мощность адаптера</strong>: 65 Вт</li>
<li><strong>Разъём питания</strong>: USB-C (PD) или отдельный разъём DC</li>
</ul>
<h4 id="производительность">Производительность</h4>
<h5 id="вычислительная-производительность">Вычислительная производительность</h5>
<ul>
<li>Отличная производительность для офисных задач</li>
<li>Хорошая производительность для веб-браузинга и мультизадачности</li>
<li>Поддержка лёгких задач обработки видео и изображений</li>
<li>Энергоэффективность для длительной работы</li>
</ul>
<h5 id="графическая-производительность">Графическая производительность</h5>
<ul>
<li>Плавное воспроизведение видео 4K</li>
<li>Поддержка лёгких игр и инди-игр</li>
<li>Отличная производительность для мультимедиа контента</li>
</ul>
<h4 id="гарантия-и-поддержка">Гарантия и поддержка</h4>
<ul>
<li><strong>Гарантия</strong>: 3 года</li>
<li><strong>Поддержка</strong>: официальная поддержка GEEKOM</li>
<li><strong>Онлайн-магазин</strong>: <a href="https://www.geekom.ru/geekom-mini-pc-a-5/" target="_blank" rel="noopener">GEEKOM официальный сайт</a></li>
</ul>
<h2 id="-преимущества-geekom-a5">💾 Преимущества GEEKOM A5</h2>
<ul>
<li>✅ <strong>Компактный размер</strong> — занимает минимум места на столе</li>
<li>✅ <strong>Высокая производительность</strong> — процессор AMD Ryzen 7 5825U обеспечивает отличную производительность</li>
<li>✅ <strong>Гибкость подключения</strong> — поддержка до 4 мониторов одновременно</li>
<li>✅ <strong>Быстрая загрузка</strong> — SSD накопитель обеспечивает быструю загрузку системы и приложений</li>
<li>✅ <strong>Современные технологии</strong> — Wi-Fi 6, Bluetooth 5.2, USB-C</li>
<li>✅ <strong>Тихая работа</strong> — эффективная система охлаждения</li>
<li>✅ <strong>Легко обновляем</strong> — доступ к слотам памяти и SSD для апгрейда</li>
</ul>
<h2 id="-области-применения-geekom-a5">🎯 Области применения GEEKOM A5</h2>
<ul>
<li>🏢 <strong>Офисная работа</strong> — идеально подходит для работы с документами, таблицами, презентациями</li>
<li>🎓 <strong>Обучение</strong> — отлично подходит для студентов и образовательных задач</li>
<li>🏠 <strong>Домашний медиа-центр</strong> — поддержка 4K видео и множественных мониторов</li>
<li>💻 <strong>Разработка</strong> — подходит для веб-разработки и лёгкой работы с кодом</li>
<li>🖥️ <strong>Домашний сервер</strong> — отличная база для Docker, виртуалок и файлового хранилища</li>
<li>📺 <strong>Цифровая вывеска</strong> — компактный размер делает его идеальным для рекламных экранов</li>
<li>🎮 <strong>Лёгкий гейминг</strong> — поддержка инди-игр и старых игр</li>
</ul>
<p><strong>Полезные ссылки:</strong></p>
<ul>
<li>🌐 <a href="https://www.geekom.ru/mini-pc/geekom-a5" target="_blank" rel="noopener">Официальная страница устройства</a></li>
<li>📊 <a href="https://www.amd.com/ru/products/ryzen-processors" target="_blank" rel="noopener">Обзор характеристик Ryzen в мини-ПК</a></li>
<li>🌐 <a href="https://www.geekom.ru/" target="_blank" rel="noopener">Официальный сайт GEEKOM</a></li>
<li>🛒 <a href="https://www.geekom.ru/geekom-mini-pc-a-5/" target="_blank" rel="noopener">GEEKOM A5 в магазине</a></li>
<li>📖 <a href="https://www.geekom.ru/" target="_blank" rel="noopener">Документация и поддержка</a></li>
</ul>
<hr>
<p><em>Продолжение следует — в следующих статьях расскажу про DAS, файловую систему и выбранный софт.</em></p>
]]></content:encoded></item></channel></rss>