Как включить SSH на роутере Xiaomi: полное руководство с командами и советами по безопасности

Включение 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: что нужно сделать заранее

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

  1. Проверьте модель роутера. Способы активации SSH отличаются для устройств на MT7628 (Mi Router 4A/4C) и Qualcomm IPQ6000 (AX6000). Уточните версию чипсета на наклейке снизу корпуса.
  2. Обновите прошивку. Устаревшие версии ПО могут содержать уязвимости или не поддерживать современные методы разблокировки. Перейдите в Настройки → Общие → Обновление прошивки.
  3. Создайте резервную копию настроек. В веб-интерфейсе (192.168.31.1) экспортируйте конфигурацию через Настройки → Дополнительно → Резервное копирование.
  4. Подготовьте ПК. Вам понадобится:
    • 🖥️ Компьютер с Windows 10/11 или Linux.
    • 🔌 Кабель Ethernet (Wi-Fi может отключиться во время процедуры).
    • 🛠️ Утилиты: PuTTY (для Windows) или встроенный терминал (для Linux/macOS).

Если вы используете Mi Router AX6000 или новую прошивку MiWiFi ROM 3.x, возможно, потребуется предварительно активировать Telnet через уязвимость в веб-интерфейсе. Об этом мы расскажем в следующем разделе.

📊 Какую модель роутера Xiaomi вы используете?
Mi Router 4A
Mi Router 4C
Mi Router AX3000
Mi Router AX6000
Другая модель

Способ 1: Включение SSH через веб-интерфейс (для прошивок до 2023 года)

На старых версиях ПО (MiWiFi ROM 2.x) можно включить SSH без сложных манипуляций. Этот метод работает для Mi Router 4A, 3G/3C и некоторых ревизий Mi Router 4C:

  1. Подключитесь к роутеру по кабелю или Wi-Fi.
  2. Откройте браузер и перейдите по адресу http://192.168.31.1 (или miwifi.com).
  3. Авторизуйтесь под учётной записью администратора.
  4. Перейдите в Настройки → Дополнительно → Разработчику (на некоторых прошивках путь может отличаться: Настройки → Система → Для разработчиков).
  5. Активируйте переключатель Включить SSH и сохраните настройки.
  6. Если раздел Для разработчиков отсутствует, попробуйте:

    • 🔍 Добавить в конце URL строку ?form=develop (пример: http://192.168.31.1/cgi-bin/luci?form=develop).
    • 🔄 Перезагрузить роутер и повторить попытку.

    После активации SSH будет доступен по адресу 192.168.31.1:22 с логин/паролем от веб-интерфейса. Однако на новых прошивках этот метод не работает — производитель убрал опцию из меню.

    ☑️ Подготовка к подключению по SSH

    Выполнено: 0 / 4

    Способ 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-доступ без авторизации. Этот метод работает даже на заблокированных устройствах, но требует физического доступа к роутеру.

    Необходимые инструменты

    • 🔌 USB-TTL адаптер (например, CP2102 или CH340G).
    • 🔧 Отвёртка для разборки корпуса.
    • 🖥️ Терминальная программа (PuTTY, Screen или Tera Term).

    Пошаговая инструкция

    1. Разберите роутер и найдите контакты UART (обычно это 4 пина: GND, TX, RX, 3.3V). На плате они могут быть подписаны или расположены рядом с микросхемой flash-памяти.

    2. Подключите USB-TTL адаптер:

    • 🔌 GNDGND (чёрный провод).
    • 🔌 TX адаптера → RX роутера.
    • 🔌 RX адаптера → TX роутера.
    • 🔌 3.3V — не подключайте (питание берём от роутера).

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-порт — это потенциальная дыра в безопасности вашей сети. Чтобы минимизировать риски, выполните следующие действия:

  1. Смените стандартный порт. Отредактируйте файл /etc/dropbear/dropbear.conf и измените строку DROPBEAR_PORT=22 на нестандартный порт (например, 2222). Затем перезапустите службу:
  2. uci set dropbear.@dropbear[0].Port='2222'
    

    uci commit

    /etc/init.d/dropbear restart

  3. Отключите вход по паролю. Сгенерируйте SSH-ключи на вашем ПК и добавьте публичный ключ в /etc/dropbear/authorized_keys. Затем в dropbear.conf установите DROPBEAR_PASSWORD_AUTH=off.
  4. Ограничьте доступ по IP. В файле /etc/firewall.user добавьте правило, разрешающее подключение только с вашего локального IP:
  5. iptables -A INPUT -p tcp --dport 22 -s 192.168.31.100 -j ACCEPT
    

    iptables -A INPUT -p tcp --dport 22 -j DROP

  6. Настройте fail2ban. Установите пакет для блокировки брутфорс-атак:
  7. 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

Или отключите службу через веб-интерфейс (если опция доступна).