Раздача Wi-Fi через Termux: полное руководство с командами и настройками

Мобильный интернет на Android-устройстве можно превратить в полноценную точку доступа Wi-Fi не только через стандартные настройки системы, но и с помощью Termux — мощного терминального эмулятора для Android. Этот метод актуален, когда штатная функция раздачи заблокирована оператором, работает нестабильно или требует root-прав. В отличие от приложений вроде NetShare или PdaNet, Termux позволяет гибко настраивать параметры сети, включая SSID, канал и даже фильтрацию MAC-адресов.

Важно понимать: раздача через Termux — это не просто альтернатива встроенной функции, а инструмент для продвинутых пользователей. Здесь нет графического интерфейса, и все настройки выполняются через командную строку. Однако при правильной конфигурации такой hotspot может оказаться стабильнее стандартного, особенно на устройствах с кастомными прошивками или устаревшими версиями Android (ниже 10-й). В этой статье мы разберём два основных метода: с использованием утилиты hostapd (для устройств с поддержкой Wi-Fi Direct) и через iptables + dnsmasq (универсальный способ).

Подготовка устройства: что нужно сделать до начала

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

  • 📱 Версия Android: 7.0 и выше (на Android 6.0 и ниже могут потребоваться root-права).
  • 🔧 Termux: установлен из F-Droid (версия из Google Play устарела и не поддерживает пакеты).
  • 📶 Модуль Wi-Fi: должен поддерживать режим AP (Access Point). Проверить это можно командой iw list | grep "AP".
  • 🔌 Заряд батареи: не ниже 50% (процесс настройки и раздачи интенсивно расходует энергию).

Если ваше устройство не поддерживает режим AP, раздача через Termux будет невозможна без root или модификации ядра. Также обратите внимание, что некоторые операторы (например, МТС или Билайн) могут блокировать раздачу на тарифах с безлимитным интернетом — в этом случае потребуется обход через VPN или смена TTL.

⚠️ Внимание: На устройствах с процессорами MediaTek (например, Redmi Note 8 Pro или Realme 6) может потребоваться дополнительная настройка драйверов. Проверьте совместимость вашей модели на форумах 4PDA или XDA Developers.

Перед началом работы обновите пакеты в Termux:

pkg update && pkg upgrade -y

pkg install root-repo x11-repo -y # Для расширенных возможностей (не обязательно)

Метод 1: Раздача через hostapd (для устройств с поддержкой AP)

Утилита hostapd (Host Access Point Daemon) — стандартное решение для организации точки доступа в Linux-системах. В Android её можно запустить через Termux, но с некоторыми ограничениями. Этот метод подходит для устройств, где Wi-Fi-адаптер поддерживает режим master (например, большинство снимков на Qualcomm Snapdragon).

Шаги настройки:

  1. Установите необходимые пакеты:
    pkg install hostapd dnsmasq -y
  2. Создайте конфигурационный файл для hostapd:
    mkdir -p ~/wifi-ap
    

    echo 'interface=wlan0

    driver=nl80211

    ssid=MyTermuxAP

    hw_mode=g

    channel=6

    wpa=2

    wpa_passphrase=12345678

    wpa_key_mgmt=WPA-PSK

    rsn_pairwise=CCMP' > ~/wifi-ap/hostapd.conf

    Здесь wlan0 — имя вашего Wi-Fi интерфейса (уточните через ip a), а MyTermuxAP и 12345678 — имя сети и пароль соответственно.

  3. Настройте DHCP-сервер (dnsmasq):
    echo 'interface=wlan0
    

    dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,24h

    dhcp-option=3,192.168.1.1

    dhcp-option=6,192.168.1.1

    server=8.8.8.8

    log-dhcp' > ~/wifi-ap/dnsmasq.conf

После создания конфигов запустите сервисы:

hostapd ~/wifi-ap/hostapd.conf &

dnsmasq -C ~/wifi-ap/dnsmasq.conf -d &

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o rmnet_data -j MASQUERADE

⚠️ Внимание: Если после запуска hostapd вы видите ошибку nl80211: Could not configure driver mode, ваш Wi-Fi-адаптер не поддерживает режим AP. Попробуйте альтернативный метод с iptables или используйте внешний USB-Wi-Fi адаптер с поддержкой SoftAP.

Устройство поддерживает режим AP (проверено через iw list)

Termux имеет доступ к /proc и /sys (нет ошибок при записи в ip_forward)

Пароль для Wi-Fi содержит не менее 8 символов

Интерфейс wlan0 не занят другими процессами (проверьте через netstat -tulnp)-->

Метод 2: Универсальная раздача через iptables и dnsmasq

Если hostapd не работает, можно организовать раздачу через мост между Wi-Fi и мобильным интернетом (tethering). Этот способ менее стабилен, но работает на большинстве устройств, включая те, где Wi-Fi-адаптер не поддерживает режим AP. Принцип действия: Android создаёт виртуальный интерфейс, а iptables перенаправляет трафик.

Инструкция:

  • 🔄 Активируйте режим модема в настройках Android (Настройки → Беспроводные сети → Режим модема).
  • 📡 Установите необходимые пакеты:
    pkg install iptables dnsmasq -y
  • 🔧 Настройте NAT (перенаправление трафика):
    iptables -t nat -A POSTROUTING -o rmnet_data -j MASQUERADE
    

    iptables -A FORWARD -i wlan0 -o rmnet_data -j ACCEPT

    echo 1 > /proc/sys/net/ipv4/ip_forward

    Здесь rmnet_data — интерфейс мобильного интернета (может называться rmnet0 или ccmni0; уточните через ifconfig).

  • 🌐 Запустите DHCP-сервер:
    dnsmasq -i wlan0 --dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,24h

После выполнения команд подключитесь к сети MyTermuxAP (или другому указанному SSID) с другого устройства. Если интернет не работает, проверьте:

  • 🔌 Правильно ли указан интерфейс мобильного интернета (rmnet_data).
  • 🔒 Нет ли блокировки раздачи со стороны оператора (попробуйте подключиться через VPN).
  • 📵 Не отключён ли режим модема в настройках Android.
📊 Какой метод раздачи вы пробовали ранее?
Стандартный режим модема в Android
Приложения типа NetShare
Termux (hostapd/iptables)
Никогда не пробовал

Решение распространённых ошибок

При настройке раздачи через Termux пользователи часто сталкиваются с типичными проблемами. Ниже — таблица самых частых ошибок и способы их устранения:

Ошибка Причина Решение
Could not configure driver mode Wi-Fi-адаптер не поддерживает режим AP Используйте метод с iptables или внешний USB-адаптер
Device or resource busy Интерфейс wlan0 занят системой Отключите Wi-Fi в настройках Android или перезагрузите устройство
Подключение к сети есть, но интернета нет Неправильные правила iptables или блокировка оператора Проверьте правила NAT и попробуйте изменить TTL (например, iptables -t mangle -A POSTROUTING -j TTL --ttl-set 65)
dnsmasq: failed to create listening socket Порт 53 занят или нет прав Запускайте dnsmasq с флагом -p 5353 или от имени суперпользователя

Если ни один из методов не сработал, проверьте:

  • 🛠️ Версию ядра Android: на старых ядрах (ниже 3.4) может не хватать поддержки netfilter.
  • 📋 Политики SELinux: в режиме enforcing некоторые операции блокируются. Проверьте статус через getenforce.
  • 🔄 Конфликты с VPN: отключите все VPN-приложения перед настройкой.
Что делать, если Termux просит root-права?

Если команды требуют root, но его нет, попробуйте:

1. Использовать proot-distro для изоляции среды:

pkg install proot-distro

proot-distro install ubuntu

proot-distro login ubuntu

2. Запускать Termux в Linux Deploy (требует root только для установки).

3. На некоторых устройствах помогает команда termux-setup-storage для доступа к системным файлам.

Оптимизация скорости и стабильности соединения

По умолчанию раздача через Termux может работать медленнее стандартной функции Android. Чтобы улучшить производительность:

  • 📈 Измените канал Wi-Fi: в файле hostapd.conf попробуйте каналы 1, 6 или 11 (они менее загружены).
  • 🔄 Отключите энергосбережение Wi-Fi:
    settings put global wifi_sleep_policy 2

    (где 2 — режим "никогда не отключать").

  • 🛡️ Увеличьте MTU (если пинги высокие):
    ifconfig wlan0 mtu 1400
  • 📡 Используйте 5 GHz (если адаптер поддерживает): в hostapd.conf замените hw_mode=g на hw_mode=a и укажите канал из диапазона 36-165.

Для мониторинга трафика и подключённых устройств используйте:

watch -n 1 "iw dev wlan0 station dump"  # Просмотр подключённых клиентов

nethogs wlan0 # Мониторинг трафика по процессам

Безопасность: как защитить свою точку доступа

По умолчанию раздача через Termux использует WPA2-PSK, но есть риски:

  • 🔓 Слабые пароли: легко подбираются брутфорсом.
  • 🕵️ Утечка MAC-адресов: клиенты могут быть отслежены.
  • 📡 Прослушивание трафика: без шифрования данные передаются открыто.

Рекомендации по защите:

  1. Используйте сложный пароль (минимум 12 символов, с цифрами и спецсимволами).
  2. Ограничьте количество подключённых устройств:
    hostapd ~/wifi-ap/hostapd.conf --max_num_sta=3 &
  3. Включите фильтрацию по MAC:
    echo 'macaddr_acl=1
    

    accept_mac_file=/sdcard/allowed_mac.txt' >> ~/wifi-ap/hostapd.conf

    В файле allowed_mac.txt перечислите разрешённые адреса (по одному на строку).

  4. Отключите SSID-вещание (скроет сеть от посторонних):
    echo 'ignore_broadcast_ssid=1' >> ~/wifi-ap/hostapd.conf
⚠️ Внимание: Фильтрация по MAC и скрытие SSID не являются надёжной защитой — их легко обойти. Для критичных задач используйте VPN на клиентских устройствах.

Автоматизация запуска: скрипты для быстрой раздачи

Чтобы не вводить команды вручную при каждом запуске, создайте скрипт:

#!/data/data/com.termux/files/usr/bin/bash

Скрипт для автоматической раздачи Wi-Fi через hostapd

Проверка root (опционально)

if [ "$(id -u)" -ne 0 ]; then

echo "Запуск без root: некоторые функции могут не работать"

fi

Настройка сети

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o rmnet_data -j MASQUERADE

iptables -A FORWARD -i wlan0 -o rmnet_data -j ACCEPT

Запуск hostapd и dnsmasq

hostapd ~/wifi-ap/hostapd.conf &

dnsmasq -C ~/wifi-ap/dnsmasq.conf -d &

echo "Точка доступа запущена! SSID: MyTermuxAP, Пароль: 12345678"

Сохраните файл как start_ap.sh и сделайте исполняемым:

chmod +x start_ap.sh

./start_ap.sh

Для остановки раздачи используйте:

pkill hostapd

pkill dnsmasq

iptables -t nat -D POSTROUTING -o rmnet_data -j MASQUERADE

iptables -D FORWARD -i wlan0 -o rmnet_data -j ACCEPT

echo "0" > /proc/sys/net/ipv4/ip_forward

FAQ: Ответы на частые вопросы

Можно ли раздавать Wi-Fi через Termux без root?

Да, но с ограничениями. Без root вы не сможете:

  • Изменять системные файлы в /proc или /sys (потребуется su).
  • Использовать некоторые режимы Wi-Fi-адаптера (например, AP на MediaTek).
  • Настраивать iptables для всех интерфейсов (только для тех, к которым есть доступ).

Однако метод с iptables + dnsmasq часто работает и без root, если оператор не блокирует раздачу.

Почему скорость раздачи через Termux ниже, чем через стандартный hotspot?

Это связано с:

  • Отсутствием аппаратного ускорения (драйверы Wi-Fi оптимизированы для стандартного режима).
  • Дополнительной нагрузкой на CPU ( Termux эмулирует многие функции программно).
  • Неоптимальными настройками по умолчанию (например, маленький beacon_int).

Чтобы улучшить скорость:

  • Уменьшите MTU до 1400.
  • Используйте каналы 5 GHz (если поддерживаются).
  • Отключите фоновые процессы в Android (Настройки → Батарея → Оптимизация).
Как раздавать Wi-Fi через Termux на Android 12+?

Начиная с Android 12, Google ужесточил ограничения на доступ к системным интерфейсам. Чтобы раздача работала:

  1. Используйте Termux из F-Droid (версия из Google Play не обновляется).
  2. Активируйте режим разработчика и включите Отладка по USB.
  3. Для iptables может потребоваться патч Magisk (модуль iptables for Android 12+).
  4. Если hostapd не запускается, попробуйте create_ap:
    pkg install create_ap
    

    create_ap wlan0 eth0 MyTermuxAP 12345678

Можно ли раздавать Wi-Fi через Termux на iPhone?

Нет. Termux доступен только для Android. На iOS аналогичных терминальных эмуляторов с полным доступом к системным функциям не существует из-за ограничений Apple. Альтернативы:

  • Используйте стандартный Режим модема в настройках iPhone.
  • Установите Personal Hotspot через Настройки → Сотовая связь.
  • Для продвинутых настроек потребуется jailbreak и инструменты вроде TetherMe.
Как раздавать интернет с ПК через Termux?

Termux работает только на Android, но вы можете:

  1. Подключить Android-устройство к ПК по USB и раздавать интернет с него (режим USB-tethering).
  2. Использовать Windows или Linux для раздачи:
    • На Windows: netsh wlan set hostednetwork mode=allow ssid=MyNet key=password.
    • На Linux: nmcli dev wifi hotspot ifname wlan0 ssid MyNet password "12345678".