Se stai usando OpenWrt su un modem/router ZTE MF286D, saprai già che uno dei vantaggi principali è la possibilità di personalizzare il comportamento del sistema tramite script automatizzati. Uno degli script più utili in questo contesto è quello sviluppato da Me su GitHub, pensato per monitorare e ripristinare automaticamente la connessione dati quando necessario. Questo script è valido sopratutto per le sim Very Mobile e WindTre che cambiano IP ogni 4 ore.
In questa guida vedremo:
- Cosa fa lo script
- Come installarlo sul tuo ZTE MF286D con OpenWrt
- Come automatizzarne l’esecuzione periodica

Configurazione:
Accedi all’interfaccia LuCI di default l’ip è:
http://192.168.1.1Nel caso lo avete sostituito inserite il vostro.
Vai su System > Startup, in alto trova la scritta Local Startup, e aggiungi questo script prima di exit 0:
LOG_TAG="WWAN-RESET"
LOCK_FILE="/var/run/wwan-reset.lock"
log() {
logger -t "$LOG_TAG" "$1"
echo "[$LOG_TAG] $1"
}
# Prevent double execution
if [ -e "$LOCK_FILE" ]; then
log "Script already running. Exiting."
exit 0
fi
touch "$LOCK_FILE"
trap "rm -f $LOCK_FILE" EXIT
check_iface_up() {
ping -c 5 -W 3 8.8.8.8 > /dev/null 2>&1
return $?
}
restart_iface() {
log "Shutting down WAN interface..."
ifdown wan
sleep 60
log "Starting WAN interface..."
ifup wan
sleep 30
}
main_loop() {
log "Script started at system boot."
log "Waiting 150 seconds for boot completion and interface initialization..."
sleep 150
log "Checking connectivity without touching WAN..."
ATTEMPTS=0
while ! check_iface_up; do
ATTEMPTS=$((ATTEMPTS + 1))
log "Attempt #$ATTEMPTS: ping failed. Rebooting system..."
sleep 10
reboot
sleep 120
done
log "Internet active. Starting 3-hour reset cycle."
while true; do
sleep 10800 # 3 hours
log "=== STARTING RESET CYCLE ==="
restart_iface
ATTEMPTS=0
while ! check_iface_up; do
ATTEMPTS=$((ATTEMPTS + 1))
log "Attempt #$ATTEMPTS: ping failed after reset. Rebooting system..."
sleep 10
reboot
sleep 120
done
log "Internet OK after reset. Next in 3 hours."
done
}
main_loop &
exit 0




Premete <<Save>> e poi <<Save & Apply>>. Questo carica lo script all’avvio comportandosi in questa maniera:
Lo script serve a monitorare automaticamente la connettività internet su un dispositivo OpenWrt (in questo caso un modem/router ZTE MF286D) e a intervenire in autonomia in caso di malfunzionamenti della rete mobile.
Monitoraggio della connettività:
- Lo script verifica periodicamente se la connessione internet è attiva.
- Questo avviene tentando di contattare un server esterno molto affidabile (come i server DNS pubblici di Google).
- Se non si riceve risposta, si presume che la connessione sia persa o bloccata.
La connettività di rete può sembrare attiva (l’interfaccia è su), ma la trasmissione dati può essere interrotta. I test di ping servono per misurare la reale raggiungibilità di internet, non solo lo stato “fisico” dell’interfaccia.
Intervento automatico:
Quando la rete risulta non funzionante, lo script:
- Riavvia l’interfaccia WAN (cioè la rete mobile)
- Se questo non basta, riavvia l’intero sistema
I modem LTE/4G possono entrare in stati di errore o congestione dove l’unico modo per ripristinare la connessione è un riavvio dell’interfaccia o del dispositivo.
Questo comportamento simula ciò che farebbe manualmente un tecnico: spegnere/riaccendere la rete o il router.
Automazione periodica (manutenzione preventiva):
Anche se la rete funziona, lo script esegue ogni 3 ore un reset “programmato” dell’interfaccia WAN per evitare problemi futuri.
Le connessioni mobili prolungate possono degradare nel tempo (NAT congestionato, stack TCP impantanato, sessioni PPPoE bloccate, ecc.).
Un riavvio periodico dell’interfaccia WAN è una forma di manutenzione automatica, che riduce il rischio di malfunzionamenti improvvisi.
Sicurezza dell’esecuzione (lock file):
Lo script include un meccanismo per evitare che venga eseguito più volte contemporaneamente.
In ambienti embedded come OpenWrt, esecuzioni multiple dello stesso script possono causare conflitti, blocchi o riavvii ripetuti.
Il file di lock garantisce che una sola istanza dello script sia attiva alla volta.
Log e tracciabilità:
Ogni azione eseguita dallo script viene registrata nei log di sistema.
Il logging è fondamentale per il debugging, il monitoraggio remoto e la manutenzione. In caso di problemi, è importante poter risalire a cosa è successo, quando e perché lo script ha preso una certa decisione.
In sostanza:
Questo script rappresenta una forma di autogestione della rete basata su tre principi fondamentali:
- Rilevamento attivo dei guasti: verifica se internet è raggiungibile, non solo se è connesso.
- Intervento autonomo: riavvia l’interfaccia o l’intero sistema se necessario.
- Manutenzione preventiva: esegue cicli regolari di reset per mantenere la rete in stato ottimale.
Questa logica è spesso usata anche in sistemi industriali, IoT o server headless, dove non c’è un operatore umano pronto a intervenire. Automazioni così semplici possono garantire alta disponibilità e resilienza di rete, con impatto minimo sulle risorse del sistema.
Lo script funziona con:
- Tutte le SIM 4G
- Router con OpenWrt
- È stato testato sul ZTE MF286D
Perché è importante?
Alcune SIM italiane (in particolare Very Mobile e WindTre) possono scendere da 4G a 3G dopo un cambio di IP, specialmente se gestite con il pacchetto qmi.
Comportamento delle SIM italiane basate su WindTre:
- SIM con APN
internet.it(Very Mobile, WindTre)- Usano NAT
- Cambiano IP ogni 4 ore
- Più inclini a degradare da 4G a 3G
- SIM “Denat” con APN
myinternet.wind- Cambiano IP ogni 24 ore
- Più stabili
Cosa fa lo script, in breve:
- Controlla costantemente se internet è attivo (ping a 8.8.8.8)
- Se la connessione non funziona:
- Riavvia la WAN (WWAN)
- Se ancora non va: riavvia tutto il router
- Ogni 3 ore, esegue un reset della WAN anche se tutto funziona
- Questo aiuta a prevenire cadute su 3G o blocchi di connessione
- Il tempo di attesa tra i reset si può modificare cambiando la riga:
sleep 10800 # 10800 secondi = 3 oreSe utilizzate SIM Very Mobile o WindTre, potete modificare il valore dello sleep da 10800 a 13800. In questo modo, lo script eseguirà il reset dell’interfaccia WAN ogni 3 ore e 50 minuti. Questa operazione anticipa il cambio IP che avviene ogni 4 ore su queste SIM, evitando così la disconnessione o il passaggio automatico da 4G a 3G, problema comune con SIM Very Mobile e WindTre.

