
Полнофункциональный WiFi NAT-роутер (а теперь также и WiFi-репитер)
Полнофункциональный WiFi NAT-маршрутизатор (а теперь также WiFi-ретранслятор, он же L2-мост)
НОВИНКА 2026: Спустя 10 лет после первого релиза он наконец стал тем, чем всегда притворялся: настоящим WiFi-ретранслятором. Чтобы не ломать существующую документацию и ссылки, стандартная редакция по-прежнему остаётся известной версией NAT-маршрутизатора со всеми расширенными функциями. Но если вас интересует урезанный настоящий L2-мост, смотрите ниже раздел ESP8266 WiFi Repeater - L2 bridge.
Это реализация WiFi NAT-маршрутизатора на esp8266 и esp8285. Она также включает поддержку межсетевого экрана с фильтрацией пакетов и ACL, проброс портов, формирование трафика, хуки для удалённого мониторинга (или перехвата пакетов), интерфейс управления MQTT, простое взаимодействие с GPIO и управление питанием. Для настройки с несколькими маршрутизаторами в mesh-сети для покрытия большей площади добавлен новый режим «Automesh».
Если вы ищете способ интегрировать функцию NAT в свой проект Arduino — смотрите здесь .
EPS32 NAT Router — это продвинутый проект для ESP32.
Типичные сценарии использования включают:
По умолчанию ESP работает как STA и как soft-AP и прозрачно передаёт любой IP-трафик через себя. Поскольку используется NAT, записи маршрутизации не требуются ни на стороне сети, ни на подключённых станциях. По умолчанию станции настраиваются через DHCP в сети 192.168.4.0/24 и получают адрес DNS-резолвера из существующей WiFi-сети.
Измерения показывают, что он может достигать примерно 5 Мбит/с в обоих направлениях, так что возможна даже потоковая передача.
Некоторые детали объяснены в этом видео.
Для прямой прошивки устройства используйте Web-Installer.
esp_wifi_repeater запускается со следующей конфигурацией по умолчанию:
После первой загрузки (или сброса к заводским настройкам) он будет предлагать WiFi-сеть с открытой точкой доступа и SSID «MyAP». При этом он ещё не пытается автоматически переподключаться к вышестоящей точке доступа (поскольку не знает корректный SSID или пароль).
Подключитесь к этой WiFi-сети и выполните базовую настройку либо через простой веб-интерфейс, либо через консоль — полную настройку со всеми параметрами.
Веб-интерфейс позволяет настраивать все параметры, необходимые для базовой функции пересылки. Спасибо rubfi за основную работу над этим: https://github.com/rubfi/esp_wifi_repeater/ . Укажите в браузере адрес «http://192.168.4.1». Должна появиться эта страница:
Сначала введите подходящие значения для вышестоящей WiFi-сети — «STA Settings». Для открытых сетей используйте пароль «none». Установите флажок «Automesh» только в том случае, если вы действительно хотите использовать режим automesh. Нажмите «Connect». ESP перезагрузится и подключится к вашему WiFi-маршрутизатору. Через несколько секунд светодиод состояния должен начать мигать.
Если вы выбрали automesh, настройка завершена. Настраивать «Soft AP Settings» не требуется, поскольку в режиме automesh эти параметры идентичны «STA Settings». Тот же SSID будет предлагаться всеми подключёнными ESP-ретрансляторами.
Если вы не используете automesh, теперь можно перезагрузить страницу и изменить «Soft AP Settings». Нажмите «Set» — ESP снова перезагрузится. Теперь он готов пересылать трафик через только что настроенный Soft AP. Имейте в виду, что эти изменения также влияют на интерфейс настройки: для дальнейшей настройки подключайтесь к ESP через одну из новонастроенных WiFi-сетей. Для доступа через Soft AP запомните адрес сети Soft AP, если вы его изменили (в этой сети ESP всегда имеет адрес x.x.x.1).
Если хотите, можете отметить флажок «lock» и нажать «Lock». Теперь конфигурацию нельзя изменить, пока вы не разблокируете её паролем вышестоящей WiFi-сети (задайте его, даже если сеть открыта).
Если вы хотите ввести не-ASCII или специальные символы в веб-интерфейсе, вам нужно использовать HTTP-подобное шестнадцатеричное кодирование, например «My%20AccessPoint». В результате получится строка «My AccessPoint». С помощью этого шестнадцатеричного кодирования можно ввести любое байтовое значение, кроме 0 (по внутренним причинам C).
Если вы ошиблись и потеряли всякую связь с ESP, вы всё ещё можете использовать последовательную консоль для восстановления («reset factory», см. ниже).
Расширенная настройка выполняется через командную строку в консольном интерфейсе. Эта консоль доступна либо через последовательный порт со скоростью 115200 бод, либо через TCP-порт 7777 (например, «telnet 192.168.4.1 7777» с подключённой STA).
Используйте следующие команды для первоначальной настройки:
Опять же, если вы хотите ввести не-ASCII или специальные символы, вы можете использовать HTTP-подобное шестнадцатеричное кодирование (например, «My%20AccessPoint») или, только в CLI, в качестве сокращения — C-подобные кавычки с обратной косой чертой (например, «My\ AccessPoint»). Оба метода дадут строку «My AccessPoint».
Командная строка понимает гораздо больше команд:
Достаточно, чтобы заработать почти в любом окружении.
Большинство set-команд вступают в силу только после save и reset.
Любая часть ввода командной строки после одиночного символа «#» до конца строки будет рассматриваться как комментарий и игнорироваться.