Включение SSH-доступа на роутерах Xiaomi открывает широкие возможности для тонкой настройки сети, установки альтернативных прошивок или автоматизации задач. Однако по умолчанию производитель блокирует этот протокол из соображений безопасности — и не зря. Неправильные действия через SSH могут привести к полной потере работоспособности устройства, особенно если вы пытаетесь изменить системные файлы или конфигурации ядра. В этой статье мы разберём легальные способы активации SSH на популярных моделях (Mi Router 4A, 4C, AX3000, AX6000 и других), а также расскажем, как минимизировать риски при работе с консолью.
Важно понимать: Xiaomi не предоставляет официальной документации по разблокировке SSH, поэтому все манипуляции вы выполняете на свой страх и риск. Тем не менее, сообщество энтузиастов давно разработало надёжные методы, которые работают на большинстве устройств с прошивками на базе OpenWRT или модифицированного MiWiFi ROM. Если вы новичок, рекомендуем сначала изучить основы работы с командной строкой Linux — это сэкономит вам часы на восстановление роутера после неудачных экспериментов.
Почему Xiaomi блокирует SSH по умолчанию?
Производитель отключает SSH (Secure Shell) на своих роутерах не из желания усложнить жизнь пользователям, а по нескольким объективным причинам:
- 🔒 Безопасность: открытый SSH-порт (обычно
22) становится мишенью для ботнетов, которые сканируют сети в поиске уязвимых устройств. Даже слабый пароль может привести к компрометации всей локальной сети. - 🛠️ Поддержка: Xiaomi не хочет отвечать за последствия неквалифицированных действий пользователей, которые через SSH могут сломать маршрутизатор или нарушить лицензионные соглашения.
- 📦 Прошивка: многие модели работают на закрытых модификациях
OpenWRT, где доступ к системным файлам ограничен для предотвращения пиратства (например, обхода региональных блокировок).
Тем не менее, для опытных пользователей SSH — это незаменимый инструмент. Через него можно:
- 🔧 Настраивать
iptablesдля продвинутого фаервола. - 📡 Оптимизировать параметры Wi-Fi (например, изменить
txpowerдля увеличения дальности). - 🖥️ Устанавливать дополнительные пакеты (например,
AdGuard HomeилиWireGuard). - 🔄 Автоматизировать задачи через
cron.
⚠️ Внимание: Активация SSH может привести к потере гарантии. Некоторые модели (Mi Router 4A Gigabit Edition) имеют аппаратную защиту, и попытка разблокировки может заблокировать загрузчик.
Подготовка к включению SSH: что нужно сделать заранее
Прежде чем приступать к разблокировке, выполните обязательные подготовительные шаги:
- Проверьте модель роутера. Способы активации SSH отличаются для устройств на
MT7628(Mi Router 4A/4C) иQualcomm IPQ6000(AX6000). Уточните версию чипсета на наклейке снизу корпуса. - Обновите прошивку. Устаревшие версии ПО могут содержать уязвимости или не поддерживать современные методы разблокировки. Перейдите в
Настройки → Общие → Обновление прошивки. - Создайте резервную копию настроек. В веб-интерфейсе (
192.168.31.1) экспортируйте конфигурацию черезНастройки → Дополнительно → Резервное копирование. - Подготовьте ПК. Вам понадобится:
- 🖥️ Компьютер с
Windows 10/11илиLinux. - 🔌 Кабель
Ethernet(Wi-Fi может отключиться во время процедуры). - 🛠️ Утилиты:
PuTTY(для Windows) или встроенный терминал (для Linux/macOS).
- 🖥️ Компьютер с
Если вы используете Mi Router AX6000 или новую прошивку MiWiFi ROM 3.x, возможно, потребуется предварительно активировать Telnet через уязвимость в веб-интерфейсе. Об этом мы расскажем в следующем разделе.
Способ 1: Включение SSH через веб-интерфейс (для прошивок до 2023 года)
На старых версиях ПО (MiWiFi ROM 2.x) можно включить SSH без сложных манипуляций. Этот метод работает для Mi Router 4A, 3G/3C и некоторых ревизий Mi Router 4C:
- Подключитесь к роутеру по кабелю или Wi-Fi.
- Откройте браузер и перейдите по адресу
http://192.168.31.1(илиmiwifi.com). - Авторизуйтесь под учётной записью администратора.
- Перейдите в
Настройки → Дополнительно → Разработчику(на некоторых прошивках путь может отличаться:Настройки → Система → Для разработчиков). - Активируйте переключатель
Включить SSHи сохраните настройки. - 🔍 Добавить в конце URL строку
?form=develop(пример:http://192.168.31.1/cgi-bin/luci?form=develop). - 🔄 Перезагрузить роутер и повторить попытку.
- 🔌
USB-TTLадаптер (например,CP2102илиCH340G). - 🔧 Отвёртка для разборки корпуса.
- 🖥️ Терминальная программа (
PuTTY,ScreenилиTera Term). - 🔌
GND→GND(чёрный провод). - 🔌
TXадаптера →RXроутера. - 🔌
RXадаптера →TXроутера. - 🔌
3.3V— не подключайте (питание берём от роутера).
Если раздел Для разработчиков отсутствует, попробуйте:
После активации SSH будет доступен по адресу 192.168.31.1:22 с логин/паролем от веб-интерфейса. Однако на новых прошивках этот метод не работает — производитель убрал опцию из меню.
☑️ Подготовка к подключению по SSH
Способ 2: Разблокировка SSH через Telnet (для новых прошивок)
На прошивках MiWiFi ROM 3.x и newer SSH по умолчанию отключён, но можно сначала активировать Telnet, а затем через него включить SSH. Этот метод подходит для Mi Router AX3000, AX6000 и других современных моделей.
Шаг 1: Активация Telnet через уязвимость
1. Подключитесь к роутеру по Wi-Fi или кабелю.
2. Откройте браузер и перейдите по адресу:
http://192.168.31.1/cgi-bin/luci/;stok=TOKEN/api/misystem/c_startup
Замените TOKEN на актуальный stok, который можно получить из cookies браузера (ищите параметр stok после авторизации в веб-интерфейсе).
3. В теле запроса отправьте JSON:
{
"log_level": "1",
"telnet": "1"
}
Для этого удобно использовать расширение браузера ModHeader или утилиту curl:
curl -X POST "http://192.168.31.1/cgi-bin/luci/;stok=YOUR_TOKEN/api/misystem/c_startup" \
-H "Content-Type: application/json" \
-d '{"log_level":"1","telnet":"1"}'
4. Если запрос прошёл успешно, Telnet будет доступен на порту 23.
Шаг 2: Подключение по Telnet и включение SSH
1. Откройте терминал (или PuTTY) и выполните:
telnet 192.168.31.1
2. Авторизуйтесь с логином root и паролем от веб-интерфейса.
3. Введите команды для включения SSH:
uci set dropbear.@dropbear[0].enable='1'
uci commit
/etc/init.d/dropbear start
/etc/init.d/dropbear enable
4. Проверьте статус SSH:
ps | grep dropbear
Если в выводе есть процесс dropbear, SSH успешно запущен. Теперь можно подключаться по протоколу SSH на порт 22.
⚠️ Внимание: На некоторых моделях (AX6000) после перезагрузки SSH снова отключается. Чтобы закрепить изменения, добавьте команду/etc/init.d/dropbear startв автозагрузку черезcrontab -e.
Что делать, если Telnet не включается?
Если после отправки JSON-запроса Telnet не активируется, проверьте:
1. Правильность токена (stok должен быть актуальным).
2. Версию прошивки — на некоторых моделях уязвимость закрыта.
3. Попробуйте альтернативный метод через exploit для MT7628 (см. раздел ниже).
Способ 3: Разблокировка SSH через exploit (для чипсетов MT7628)
Для роутеров на базе MediaTek MT7628 (Mi Router 4A, 4C, 3G) существует аппаратный exploit, позволяющий получить root-доступ без авторизации. Этот метод работает даже на заблокированных устройствах, но требует физического доступа к роутеру.
Необходимые инструменты
Пошаговая инструкция
1. Разберите роутер и найдите контакты UART (обычно это 4 пина: GND, TX, RX, 3.3V). На плате они могут быть подписаны или расположены рядом с микросхемой flash-памяти.
2. Подключите USB-TTL адаптер:
3. Откройте терминал на скорости 57600 бод и включите роутер. В логах загрузки найдите строку Hit any key to stop autoboot — нажмите любую клавишу, чтобы остановить автозагрузку.
4. Введите команды для загрузки в UBoot:
setenv bootargs "console=ttyS0,57600n8 root=/dev/mtdblock6 init=/bin/sh"
bootm 0x9f020000
5. После загрузки оболочки монтируем файловую систему и редактируем конфиг:
mount -t jffs2 /dev/mtdblock6 /mnt
vi /mnt/etc/dropbear/dropbear.conf
Найдите строку DROPBEAR_OPTIONS="-p 22" и раскомментируйте её. Сохраните изменения (:wq в vi).
6. Перезагрузите роутер:
reboot
После перезагрузки SSH будет доступен. Этот метод сбрасывает пароль root на пустой, поэтому сразу после подключения установите новый пароль командой:
passwd
| Модель роутера | Чипсет | Поддерживаемый метод | Примечания |
|---|---|---|---|
| Mi Router 4A | MT7628 |
Exploit через UART | Требует разборки корпуса |
| Mi Router 4C | MT7628 |
Telnet → SSH | Работает на прошивках до 3.0.21 |
| Mi Router AX3000 | Qualcomm IPQ6000 |
JSON-exploit | Нужно получить токен stok |
| Mi Router AX6000 | Qualcomm IPQ8072 |
Telnet + crontab | SSH сбрасывается после перезагрузки |
Настройка безопасности после включения SSH
Открытый SSH-порт — это потенциальная дыра в безопасности вашей сети. Чтобы минимизировать риски, выполните следующие действия:
- Смените стандартный порт. Отредактируйте файл
/etc/dropbear/dropbear.confи измените строкуDROPBEAR_PORT=22на нестандартный порт (например,2222). Затем перезапустите службу: - Отключите вход по паролю. Сгенерируйте SSH-ключи на вашем ПК и добавьте публичный ключ в
/etc/dropbear/authorized_keys. Затем вdropbear.confустановитеDROPBEAR_PASSWORD_AUTH=off. - Ограничьте доступ по IP. В файле
/etc/firewall.userдобавьте правило, разрешающее подключение только с вашего локального IP: - Настройте fail2ban. Установите пакет для блокировки брутфорс-атак:
uci set dropbear.@dropbear[0].Port='2222'
uci commit
/etc/init.d/dropbear restart
iptables -A INPUT -p tcp --dport 22 -s 192.168.31.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
opkg update
opkg install fail2ban
Также рекомендуем:
- 🔄 Регулярно обновлять прошивку (даже если вы используете кастомную).
- 📡 Отключать SSH, когда он не нужен.
- 🔐 Использовать сложные пароли (минимум 12 символов с цифрами и спецсимволами).
⚠️ Внимание: Если вы планируете открывать SSH из интернета (например, для удалённого администрирования), обязательно настройтеWireGuardилиOpenVPNдля шифрованного туннеля. Подключение напрямую через порт22— это верный способ стать жертвой атаки.
Распространённые ошибки и их решения
При разблокировке SSH пользователи часто сталкиваются с типичными проблемами. Вот самые частые из них и способы их устранения:
| Ошибка | Возможная причина | Решение |
|---|---|---|
Connection refused на порту 22 |
SSH не запущен или заблокирован фаерволом | Проверьте статус службы: ps | grep dropbear. Если не запущен — выполните /etc/init.d/dropbear start. |
Permission denied (publickey) |
Неправильные права на ключи или отключён вход по паролю | Проверьте /etc/dropbear/authorized_keys и настройки dropbear.conf. |
| Роутер не отвечает после перезагрузки | Повреждение конфигурации или прошивки | Восстановите прошивку через TFTP или UART (требуется разборка). |
Invalid stok token при активации Telnet |
Устаревший или неверный токен | Обновите токен: авторизуйтесь в веб-интерфейсе и скопируйте новый stok из cookies. |
Если после включения SSH роутер начал тормозить или перегреваться, проверьте загрузку CPU командой top. Возможно, в системе запущены лишние процессы (например, cron-задачи от предыдущих экспериментов). Удалите их командой:
crontab -e
И удалите все ненужные строки.
Ещё одна частая проблема — сброс настроек после обновления прошивки. Чтобы этого избежать, перед апдейтом сохраните конфигурацию:
tar -czvf /tmp/backup.tar.gz /etc
А после обновления восстановите её:
tar -xzvf /tmp/backup.tar.gz -C /
FAQ: Частые вопросы по SSH на роутерах Xiaomi
Можно ли включить SSH на роутере Xiaomi без разборки корпуса?
Да, на большинстве моделей (Mi Router 4A/4C/AX3000) SSH включается через веб-интерфейс или exploit с Telnet. Разборка требуется только для устройств с заблокированным загрузчиком или на кастомных прошивках, где стандартные методы не работают.
Какой пароль по умолчанию для SSH после разблокировки?
На большинстве прошивок логин/пароль совпадают с данными от веб-интерфейса. Если вы использовали exploit через UART, пароль может быть пустым — сразу после подключения установите новый через команду passwd.
Почему после перезагрузки SSH снова отключается?
Это особенность прошивок MiWiFi ROM 3.x. Чтобы SSH сохранялся после ребута, добавьте команду /etc/init.d/dropbear start в автозагрузку через crontab -e или отредактируйте скрипт /etc/rc.local.
Можно ли включить SSH на роутере Xiaomi, подключённом к провайдеру через PPPoE?
Да, методы разблокировки не зависят от типа подключения к интернету. Однако если провайдер блокирует исходящие соединения на порт 22, вам придётся использовать нестандартный порт или VPN.
Как отключить SSH, если он больше не нужен?
Выполните команды:
uci set dropbear.@dropbear[0].enable='0'
uci commit
/etc/init.d/dropbear stop
Или отключите службу через веб-интерфейс (если опция доступна).