Самый надежный и правильный способ заставить лампочку гореть при наличии интернета в OpenWrt — использовать встроенный механизм `netdev` для триггеров. Он работает на уровне ядра, не тратит ресурсы процессора (в отличие от скриптов с бесконечным циклом) и автоматически отслеживает состояние интерфейса.

Однако если вам нужен именно кастомный скрипт (например, чтобы проверять доступность конкретного сайта через туннель VPN), ниже приведены оба варианта.

### Вариант 1: Правильный системный способ (через UCI)
Этот метод использует штатные средства системы. Лампочка будет загораться, как только WAN-интерфейс получит IP-адрес и поднимется.

**1. Узнайте имя вашего WAN-интерфейса**
Обычно это `wan`, но может быть `eth0.2`, `pppoe-wan` или другое. Выполните:
`ifstatus wan | grep '"up"'`
Если в ответе `"up": true`, значит это нужный интерфейс.

**2. Посмотрите доступные светодиоды**
Зайдите в веб-интерфейс LuCI -> Система -> LED Configuration. Там будут перечислены все физические светодиоды роутера (обычно они называются `green:lan`, `blue:wifi`, `amber:wan` и т.д.). Запомните точное имя того, который хотите использовать.

**3. Настройте триггер через консоль**
Выполните следующие команды, заменив `phy0-led` на реальное имя вашего светодиода из предыдущего шага:

```bash
# Устанавливаем триггер на активность сетевого устройства
uci set system.led_wan.trigger='netdev'
# Привязываем к нашему WAN-интерфейсу
uci set system.led_wan.dev='wan'
# Зажигаем при линке (поднятии интерфейса)
uci set system.led_wan.mode='link'
# Можно добавить 'tx rx', чтобы лампочка мигала при передаче данных:
# uci set system.led_wan.mode='link tx rx'
uci commit system
/etc/init.d/led restart
```
*Примечание: вместо секции `system.led_wan` можно использовать любое уникальное имя, например `system.internet_led`. Если вы настраиваете светодиод впервые, перед командами `set` может потребоваться создать секцию командой `uci add system led_wan`.*

Теперь, как только кабель провайдера подключен и интернет поднят, лампочка загорится.

### Вариант 2: Скрипт с проверкой реального интернета (пинг до 8.8.8.8)
Этот вариант подходит, если у вас сложная схема подключения (например, L2TP/PPTP сессия поднята, но провайдер не пускает в сеть, или трафик идет через VPN). Скрипт будет пинговать Google DNS и зажигать лампочку только при успешном ответе.

**1. Создайте файл скрипта:**
Подключитесь по SSH и выполните:
`vi /etc/check_internet.sh`

Нажмите `i` для входа в режим редактирования и вставьте код:

```bash
#!/bin/sh

# Имя светодиода (посмотрите в /sys/class/leds/)
LED="зеленая:система"
# Интерфейс, который должен быть поднят (необязательно, но полезно)
WAN_IF="wan"
# Что пингуем
TARGET="8.8.8.8"
# Количество пакетов
COUNT=2

# Проверяем, есть ли физический линк на WAN-порту
if ! ip link show "$WAN_IF" up >/dev/null 2>&1; then
    # Выключаем светодиод, если кабеля нет
    echo "none" > "/sys/class/leds/$LED/trigger"
    echo "0" > "/sys/class/leds/$LED/brightness"
    exit 0
fi

# Пингуем интернет
if ping -c $COUNT -W 2 -q $TARGET >/dev/null 2>&1; then
    # Интернет есть, включаем светодиод
    echo "default-on" > "/sys/class/leds/$LED/trigger"
else
    # Интернета нет, выключаем
    echo "none" > "/sys/class/leds/$LED/trigger"
    echo "0" > "/sys/class/leds/$LED/brightness"
fi
```
Чтобы сохранить файл в редакторе `vi`: нажмите `Esc`, введите `:wq` и нажмите `Enter`.

*Обязательно замените значение переменной `LED` на актуальное имя папки из `/sys/class/leds/` (например, `tp-link:blue:wps` или `ath9k-phy0`).*

**2. Сделайте его исполняемым:**
`chmod +x /etc/check_internet.sh`

**3. Добавьте скрипт в автозагрузку и планировщик (cron):**
Скрипт нужно запускать периодически. Откройте планировщик:
`crontab -e`

Добавьте строку, которая будет запускать проверку каждые 30 секунд (планировщик cron в OpenWrt поддерживает шаг */30):
`*/1 * * * * /etc/check_internet.sh`
Или, если версия busybox старая и не поддерживает шаги меньше минуты, используйте цикл внутри самого скрипта, добавив в конец файла `/etc/rc.local` перед строкой `exit 0` такую конструкцию для запуска в фоне:
`(while :; do /etc/check_internet.sh; sleep 30; done) &`

### Как узнать точное имя светодиода?
Зайдите в систему по SSH и выполните команду:
`ls /sys/class/leds/`
Вы увидите список папок, например: `tp-link:green:system`, `ath9k-phy0`, `orange:wan`. Используйте одно из этих имен в переменной `LED` в скрипте выше.