Conexión automática de DD-WRT al punto de acceso telefónico cuando esté disponible

Conexión automática de DD-WRT al punto de acceso telefónico cuando esté disponible

Esta es mi situación: mi enrutador,ejecutar dd-wrt está configurado para conectarse al punto de acceso de mi teléfono.

En general está funcionando bien. El pequeño problema es que, obviamente, el punto de acceso del teléfono (4G) no siempre está disponible. (Cuando el punto de acceso no está disponible, no hay otra conexión WAN).

Cuando el punto de acceso del teléfono está disponible (se enciende o se encuentra dentro del alcance), el enrutador no siempre se conecta a él automáticamente. A veces lo hace, a veces tengo que reiniciarlo.

No puse elServicio de vigilancia de proxypara evitar que la interfaz del enrutador se cuelgue o se reinicie cuando el punto de acceso no esté disponible. ¿Hay alguna manera de mejorar la reconexión automática?


* TP-Link TL-WR841N
** La interfaz física inalámbrica está configurada en modo cliente

Respuesta1

Lamentablemente no pude encontrar el script que había personalizado para mi Buffalo N-finity. Probablemente los eliminé cuando actualicé y le di los enrutadores a un amigo.

Este es un script que encontré en los foros de DD-WRT para este propósito.
(Probablemente tendrás que modificar este script para tu modelo de enrutador.)

Un par de cosas a anotar:

  • El enrutador debe tener la hora exacta; asegúrese de configurarlo en la pestaña de configuración principal, en la parte inferior. (Yo uso pool.ntp.org) Es posible que tengas que guardar la aplicación y reiniciar para que surta efecto.
  • Los registros del sistema deben estar encendidos y funcionando bajopestaña de servicios -> registro del sistema -> syslogd habilitado
  • Este script comprueba la carpeta /var/log/messages para determinar la hora y los mensajes de error. telnet o ssh en el enrutador, verifique el registro tail -25 /var/log/messagesy asegúrese de que haya salida del enrutador allí. De lo contrario, es posible que sea necesario reiniciar.
  • Debe cambiar la interfaz inalámbrica en el script para reflejar los nombres de las interfaces de su enrutador. la mayoría de las interfaces Broadcom serán "wl0" y la mayoría de las interfaces de Atheros serán "ath0". Puede encontrar los nombres en la pestaña inalámbrica en la GUI web o en el terminal conifconfig.
  • Cambie los tiempos de espera para reflejar la cantidad de tiempo que realmente necesita para su situación. Creo que 2-3 minutos serían aceptables en su situación.

Por m1st0, 2011 con aportes dehttp://www.dd-wrt.com/wiki/index.php/Buffalo_WZR-HP-G300NH

#! /bin/sh

# Or just put it in the nvram startup
#nvram set rc_startup='{The Rest of this script}'

# set up variable to track waiting times
restarted_wifi=false
# Check interface every minute
logger "Starting to check wifi status"
while sleep 50; do
  restarted_wifi=false
  # Check for the most recent message of WiFi dropping out, unsure if it is the same as the other hang below
  test_time=`date  +"%b %e %H:%M" | cut -c1-11`
  test_message=`grep "$test_time" /var/log/messages`
  test_wifi_down=`echo $test_message | fgrep ff:ff:ff:ff:ff:ff`
  test_beacon_issue=`echo $test_message | fgrep "Resetting; Code: 01"`
  if [ -n $test_wifi_down ];
  # If found then restart the WiFi interface
  then   logger "Wifi hang, restarting";
   ifconfig ath0 down;
        sleep 4;
        ifconfig ath0 up;
        restarted_wifi=true
        test_wifi_down=""
  # Check for the most recent message of WiFi hang, unser if it is the same as the dropping above
  elif [ -n $test_beacon_issue ];
  # If found then restart the WiFi interface
  then
   logger "Wifi becon issue, restarting";
   ifconfig ath0 down;
        sleep 4;
        ifconfig ath0 up;
        restarted_wifi=true
        test_beacon_issue=""
  fi;
  # Wait a long while before we check again since we just restarted
  if [ $restarted_wifi == "true" ]; then
        logger "Will wait 542 seconds before checking wifi again";
        sleep 542;
        restarted_wifi=false;
        logger "Will start to check wifi every 50 seconds again";
  fi
done 

A juzgar por el representante que tiene en Stack Overflow, creo que no tendrá problemas para manipular este script para sus propósitos. Si tienes problemas, envíame un mensaje.

Algunos deestos guionesTambién te puede resultar útil.

información relacionada