1. Диагноз
Поднял TFTP на MikroTik. Телефон не забирает конфиг, Netinstall не видит роутер. Или наоборот — роутер не может закачать конфиг с сервера. Знакомо?
TFTP на MikroTik — это три разных сценария в одной аббревиатуре, и половина проблем от того, что их путают:
- RouterOS как TFTP-сервер — раздаёт файлы другим устройствам: конфиги и прошивки IP-телефонам, загрузчик PXE бездисковым машинам, прошивки точкам доступа.
- RouterOS как TFTP-клиент — через /tool fetch тянет файл с внешнего TFTP-сервера.
- Netinstall — переустановка RouterOS на убитом роутере. Здесь MikroTik не сервер, а клиент: его загрузчик RouterBOOT получает адрес по BOOTP и скачивает установщик по TFTP с компьютера, на котором запущен Netinstall.
Что получишь на выходе этой статьи:
- Рабочий TFTP-сервер на MikroTik с раздачей файла нужной подсети
- Связку DHCP + TFTP для сетевой загрузки устройств
- Настроенный TFTP-клиент для скачивания прошивок и конфигов
- Понимание, почему Netinstall не видит роутер и как это чинить
- Список типовых ошибок и как их закрывать без танцев с бубном
Время на настройку: 10-15 минут, если сеть без сюрпризов. Если за фаерволом на три уровня вложенности — закладывай час.
Нужно: MikroTik с RouterOS 7.x, доступ к Winbox или SSH, файл для раздачи (конфиг, прошивка, образ). Для Netinstall — компьютер с проводным Ethernet. На момент обновления статьи (октябрь 2026) актуальна RouterOS 7.24.5 stable. Перед установкой проверь свежие релизы на официальном сайте.
| Компонент | Версия / требование |
|---|---|
| RouterOS | 7.x (проверено на 7.24.5) |
| Netinstall | той же версии, что и устанавливаемый пакет, с mikrotik.com/download |
| ОС для Netinstall | Windows 10/11 или Linux с netinstall-cli |
| Сетевой интерфейс | Ethernet напрямую или через неуправляемый свитч, не Wi-Fi |
2. Причины, почему это ломается
- Firewall режет UDP/69 — drop-правило в цепочке input стоит выше разрешающего, или выключен helper TFTP в /ip firewall service-port, и ответные пакеты с динамических портов не считаются related
- IP клиента не попадает в ip-addresses — сервер MikroTik отдаёт файл только адресам из списка, заданного в записи /ip tftp. Привязки к MAC у TFTP-сервера RouterOS нет
- Имя файла не совпадает с req-filename — клиент просит один путь, в записи прописан другой. Регистр и расширение должны совпадать
- Нет DHCP-опций для сетевой загрузки — устройство не знает, у кого и какой файл просить: не заданы next-server и boot-file-name (опции 66 и 67)
- Netinstall слушает не тот интерфейс — на ПК несколько сетевых карт или включён Wi-Fi, и BOOTP-запросы роутера уходят мимо
- Антивирус или Windows Firewall на ПК с Netinstall — блокирует BOOTP (67/68) и TFTP (69)
- Роутер подключён не тем портом — сетевая загрузка работает только через boot-порт, обычно ether1
3. Рецепт
Подготовка
Зависимости: RouterOS 7.x, физический доступ к порту роутера или management-VLAN без изоляции. Проверь среду перед стартом.
# На MikroTik: версия, интерфейсы, правила firewall, helper TFTP
/system resource print
/interface print
/ip firewall filter print
/ip firewall service-port print where name=tftp
Смотри на вывод: версию RouterOS, список активных интерфейсов, есть ли drop-правила на входящий трафик, которые перехватят UDP/69 раньше, чем он дойдёт до TFTP. Service-port tftp должен быть включён (без флага X) — он помечает пакеты передачи данных как related.
Шаг 1. Положи файл на роутер
Загрузи файл через Winbox (Files, перетаскиванием), FTP или SFTP и проверь, что он на месте.
# На MikroTik: файл должен физически лежать в файловой системе
/file print where name~"phone"
На роутерах с USB или microSD файлы лежат в подкаталоге диска, например usb1/ или sd1/. Этот путь потом пишется в real-filename.
Шаг 2. Создай запись TFTP-сервера
Заходи в раздел IP > TFTP. Отдельного выключателя у сервера нет: он начинает отвечать, как только появляется хотя бы одна активная запись. Каждая запись описывает, какой файл, под каким именем и каким адресам отдавать.
# На MikroTik: раздавать phone.cfg только подсети 10.10.10.0/24, только на чтение
/ip tftp add ip-addresses=10.10.10.0/24 req-filename=phone.cfg real-filename=phone.cfg read-only=yes
/ip tftp print detail
Результат: в выводе /ip tftp print detail запись без флага X, с нужными ip-addresses и путём к файлу.
Шаг 3. Настрой firewall под TFTP
Порт 69/UDP должен быть открыт на приём только для доверенной подсети. Не открывай его в мир — TFTP без аутентификации это подарок для любого, кто окажется в сети.
# На MikroTik: разрешить TFTP из доверенной подсети и запретить остальным, правила наверх списка
/ip firewall filter add chain=input protocol=udp dst-port=69 src-address=10.10.10.0/24 action=accept comment="TFTP allow trusted" place-before=0
/ip firewall filter add chain=input protocol=udp dst-port=69 action=drop comment="TFTP drop others" place-before=1
Порядок правил критичен: RouterOS читает filter сверху вниз, accept должен стоять выше drop. Передача данных идёт с динамических портов, отдельно их открывать не нужно: при включённом service-port tftp и стандартном правиле accept established,related они проходят сами.
Шаг 4. Сетевая загрузка: DHCP + TFTP
Телефоны, тонкие клиенты и PXE-машины сами не знают адрес TFTP-сервера. Его и имя файла им выдаёт DHCP: опция 66 (next-server) и 67 (boot-file-name).
# На MikroTik: DHCP-сеть сообщает клиентам адрес TFTP-сервера и имя загрузочного файла
/ip dhcp-server network set [find address=10.10.10.0/24] next-server=10.10.10.1 boot-file-name=pxelinux.0
/ip tftp add ip-addresses=10.10.10.0/24 req-filename=pxelinux.0 real-filename=pxe/pxelinux.0 read-only=yes
Результат: клиент при загрузке получает адрес, узнаёт next-server и сразу просит у него pxelinux.0. Для IP-телефонов вместо pxelinux.0 укажи имя конфига, которое ждёт модель телефона.
Шаг 5. Настрой TFTP-клиент для скачивания файла
Если роутер должен сам скачать файл с внешнего TFTP-сервера — например конфиг или прошивку с центрального сервера управления — используй tool fetch.
# На MikroTik: скачать файл с TFTP-сервера 192.168.88.1
/tool fetch address=192.168.88.1 mode=tftp src-path=config-backup.rsc dst-path=config-backup.rsc
Результат: файл появится в списке /file print. Проверь размер: если 0 байт, сервер ответил, но файл не найден или путь неверный.
Шаг 6. Автоматизируй через scheduler (опционально)
Для регулярной синхронизации конфигов через TFTP — например для парка одинаковых роутеров в филиалах.
# На MikroTik филиала: каждую ночь забирать и применять конфиг с центрального сервера
/system scheduler add name=tftp-sync interval=1d start-time=03:00:00 on-event="/tool fetch address=10.10.10.5 mode=tftp src-path=configs/branch.rsc dst-path=branch.rsc; /import branch.rsc"
Схема раздачи файла с MikroTik
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["Клиент: телефон, PXE, роутер"] --> B["DHCP: next-server и boot-file-name"]
B --> C["Запрос RRQ на порт 69"]
C --> D["MikroTik: проверка ip-addresses и req-filename"]
D --> E["Отдача файла блоками"]
E --> F["Клиент собирает файл"]
style A fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style B fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style D fill:#f8fafc,stroke:#f97316,stroke-width:2px,color:#9a3412
style F fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
Netinstall: где тут TFTP
При Netinstall роли меняются. Сервер — компьютер с Netinstall: он отвечает на BOOTP и отдаёт загрузчик по TFTP. Роутер — клиент: его RouterBOOT грузится по сети через boot-порт, обычно ether1.
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#f8fafc',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'noteBkgColor': '#fefce8',
'noteTextColor': '#713f12',
'noteBorderColor': '#fbbf24',
'actorBkg': '#f8fafc',
'actorBorder': '#94a3b8',
'actorTextColor': '#1e293b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'sequence': {'mirrorActors': false, 'messageAlign': 'center', 'actorMargin': 120}
}}%%
sequenceDiagram
participant R as Роутер (RouterBOOT)
participant N as ПК с Netinstall
R->>N: BOOTP-запрос с ether1
N->>R: IP-адрес и имя загрузчика
R->>N: TFTP-запрос загрузчика
N->>R: Загрузчик Netinstall
N->>R: Пакеты RouterOS
Note over R,N: Роутер ставит систему и перезагружается
Роутер в режим сетевой загрузки переводится двумя способами. Если он жив и доступен — командой ниже и перезагрузкой. Если нет — зажми reset, подай питание и держи кнопку, пока роутер не появится в списке Netinstall (обычно 15-20 секунд).
# На MikroTik (если ещё доступен): один раз загрузиться по сети, потом снова с NAND
/system routerboard settings set boot-device=try-ethernet-once-then-nand
/system reboot
На Linux Netinstall запускается консольной утилитой. Компьютеру задай статический адрес в той же подсети, что и адрес для роутера в параметре -a.
# На Linux-ПК с netinstall-cli: переустановить RouterOS со сбросом конфигурации
sudo ./netinstall-cli -r -a 192.168.88.3 routeros-7.24.5-arm64.npk
Таблица портов
| Порт | Протокол | Назначение | Доступен снаружи? |
|---|---|---|---|
| 69 | UDP | TFTP: запрос файла | Нет, только LAN |
| от 1024 и выше | UDP (динамический) | TFTP: передача данных, проходит как related через service-port tftp | Нет |
| 67/68 | UDP | DHCP/BOOTP: сетевая загрузка и Netinstall | Нет |
4. Проверка
После настройки проверяй сразу, не жди пока кто-то напишет «у меня не грузится».
# На MikroTik: записи сервера, лог и соединения TFTP
/ip tftp print detail
/log print where topics~"tftp"
/ip firewall connection print where dst-address~":69"
Если после запроса клиента в connection появилась запись с портом 69, пакет дошёл до роутера. Если записи нет — проблема на уровне сети, не MikroTik.
Тест передачи с внешней машины на Linux — curl умеет TFTP:
# На Linux-машине в подсети 10.10.10.0/24: скачать файл с MikroTik по TFTP
curl -o /tmp/phone.cfg tftp://10.10.10.1/phone.cfg
ls -l /tmp/phone.cfg
5. Осложнения
| Ошибка | Причина | Решение |
|---|---|---|
| Netinstall не видит роутер | Роутер не в режиме сетевой загрузки, подключён не через boot-порт, Netinstall слушает другой интерфейс | Подключись к ether1, отключи Wi-Fi и лишние сетевые карты на ПК, держи reset при включении до появления роутера в списке |
| Timeout при /tool fetch mode=tftp | Ответ сервера приходит с нового порта и отбрасывается firewall | Включи /ip firewall service-port tftp и проверь, что правило accept established,related стоит выше drop |
| Клиент получает отказ или File not found | IP клиента не входит в ip-addresses или req-filename не совпадает с запросом | Сверь адрес клиента и имя файла посимвольно, включая регистр, смотри /log print where topics~»tftp» |
| Передача обрывается на середине | Крупные блоки фрагментируются или нестабильный линк | Уменьши размер блока: /ip tftp settings set max-block-size=1400 |
| Netinstall видит роутер, но прошивка не заливается | Несовместимая архитектура пакета (arm vs arm64 vs mipsbe) | Скачай пакет под архитектуру из поля architecture-name в /system resource print |
6. Альтернативы
TFTP — не единственный способ передать файл на MikroTik или с него. Вот варианты и когда что выбирать.
- FTP — есть аутентификация, но нужна работающая RouterOS. Для восстановления мёртвого роутера не подходит
- SCP/SFTP — шифрование и безопасность, отличный вариант для регулярной синхронизации конфигов между рабочими роутерами
- Сброс кнопкой reset или через serial console — если система загружается, а пароль забыт, часто хватает сброса конфигурации без переустановки RouterOS
- WinBox drag-and-drop файлов — удобно вручную, но не автоматизируется через scheduler
TFTP остаётся единственным вариантом там, где у устройства ещё нет операционной системы: загрузчик RouterBOOT при Netinstall, PXE-загрузка, первичная настройка IP-телефонов. Для регулярного обмена файлами между живыми устройствами используй SFTP, он безопаснее.
7. Профилактика
Мониторинг: Netwatch проверяет только ping, работу самого TFTP он не покажет. Надёжнее периодически скачивать тестовый файл с сервера мониторинга.
# На сервере мониторинга (Linux): проверка, что TFTP на MikroTik отдаёт файл, код 0 - всё в порядке
curl -s -m 10 -o /dev/null tftp://10.10.10.1/phone.cfg; echo $?
Бэкап: перед любыми манипуляциями с прошивкой делай экспорт конфига и бинарный бэкап.
# На MikroTik: текстовый экспорт и бинарный бэкап
/export file=before-tftp-backup
/system backup save name=before-tftp-backup
Записи /ip tftp хранятся в конфигурации роутера и после перезагрузки начинают работать сразу, дополнительных действий не требуется.
Безопасность
- Всегда заполняй ip-addresses конкретной подсетью: пустое поле означает раздачу любому адресу
- Ставь read-only=yes, чтобы через TFTP нельзя было записать файл на роутер
- Отключай записи сразу после задачи: /ip tftp disable [find]
- SSH hardening на самом MikroTik — отдельный пользователь без full-доступа для задач автоматизации через scheduler
- Никогда не пробрасывай UDP/69 через NAT наружу в интернет
8. FAQ
Почему TFTP не работает после настройки на MikroTik?
Чаще всего дело в firewall: drop стоит выше accept для UDP/69. Вторая причина — IP клиента не входит в ip-addresses записи или имя файла не совпадает с req-filename. Проверь /ip firewall filter print, /ip tftp print detail и лог с topics~»tftp».
Как проверить, что TFTP-сервер на MikroTik работает правильно?
Запусти /ip tftp print detail: запись должна быть без флага X. Затем скачай файл с другой машины в разрешённой подсети: curl -o /tmp/test tftp://IP-роутера/имя-файла. Ошибки смотри в /log print where topics~»tftp».
Что делать, если Netinstall не видит роутер?
Подключи роутер к ПК через boot-порт (обычно ether1), отключи на ПК Wi-Fi и лишние сетевые карты, разреши Netinstall в Windows Firewall. Зажми reset, подай питание и держи кнопку, пока роутер не появится в списке. Если роутер ещё доступен, проще задать boot-device=try-ethernet-once-then-nand и перезагрузить его.
Чем TFTP отличается от FTP на MikroTik?
TFTP работает по UDP без аутентификации и нужен там, где у устройства ещё нет системы: Netinstall, PXE, первичная загрузка телефонов. FTP работает по TCP, требует логин и пароль и подходит для обмена файлами между уже рабочими устройствами.
Можно ли использовать TFTP на MikroTik для регулярного бэкапа конфигов?
Технически да, через tool fetch и scheduler, но TFTP не шифрует трафик и не проверяет целостность файла. Для регулярных задач лучше SFTP — он безопаснее и надёжнее при разрывах связи.
9. Прогноз
Настроил TFTP-сервер на MikroTik, ограничил раздачу доверенной подсетью, связал его с DHCP для сетевой загрузки и закрыл лишний доступ через firewall. Теперь роутер раздаёт конфиги и загрузчики устройствам в сети, сам забирает файлы с центрального сервера по расписанию, а убитый MikroTik ты поднимешь через Netinstall.
Дальше — дело привычки. Первое восстановление через Netinstall займёт минут двадцать с нервами, десятое — три минуты на автомате. Если не заработало — пиши в комментарии, разберёмся.
Оставайтесь на связи
Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.
Подписаться на IT-Аптеку →




