DD-WRT stellt automatisch eine Verbindung zum Telefon-Hotspot her, wenn verfügbar

DD-WRT stellt automatisch eine Verbindung zum Telefon-Hotspot her, wenn verfügbar

Hier ist meine Situation: Mein Router,dd-wrt ist so eingerichtet, dass es eine Verbindung zum Hotspot meines Telefons herstellt.

Im Allgemeinen funktioniert es gut. Das kleine Problem ist, dass der Hotspot des Telefons (4G) offensichtlich nicht immer verfügbar ist. (Wenn der Hotspot nicht verfügbar ist, gibt es keine andere WAN-Verbindung).

Wenn der Hotspot des Telefons verfügbar wird (eingeschaltet oder in Reichweite ist), stellt der Router nicht immer automatisch eine Verbindung her. Manchmal funktioniert es, manchmal muss ich ihn neu starten.

Ich habe nicht dieProxy-Watchdog-Dienstum zu verhindern, dass die Router-Schnittstelle hängt oder neu startet, wenn der Hotspot nicht verfügbar ist. Gibt es eine Möglichkeit, die automatische Wiederverbindung zu verbessern?


* TP-Link TL-WR841N
** Die drahtlose physische Schnittstelle ist auf Client-Modus eingestellt

Antwort1

Leider konnte ich das Skript, das ich für meine Buffalo N-Finity angepasst hatte, nicht finden. Wahrscheinlich habe ich es beim Upgrade gelöscht und die Router an einen Freund weitergegeben.

Dies ist ein Skript, das ich zu diesem Zweck in den DD-WRT-Foren gefunden habe.
(Sie müssen wahrscheinlich an diesem Skript für Ihr Routermodell herumbasteln)

Ein paar Dinge sind zu beachten:

  • Der Router muss über eine genaue Uhrzeit verfügen. Achten Sie darauf, dass Sie diese unter der Hauptregisterkarte „Setup“ ganz unten einrichten. (Ich verwende pool.ntp.org) Möglicherweise müssen Sie die Anwendung speichern und neu starten, damit sie wirksam wird.
  • Die Systemprotokolle müssen eingeschaltet sein und funktionieren unterRegisterkarte „Dienste“ -> Systemprotokoll -> Syslogd aktiviert
  • Dieses Skript überprüft den Ordner /var/log/messages, um Zeit- und Fehlermeldungen zu ermitteln. Melden Sie sich per Telnet oder SSH beim Router an, überprüfen Sie das Protokoll tail -25 /var/log/messagesund stellen Sie sicher, dass dort eine Ausgabe vom Router enthalten ist. Wenn nicht, ist möglicherweise ein Neustart erforderlich.
  • Sie müssen die drahtlose Schnittstelle im Skript ändern, um die Schnittstellennamen Ihres Routers widerzuspiegeln. Die meisten Broadcom-Schnittstellen lauten "wl0" und die meisten Atheros-Schnittstellen werden "ath0". Die Namen finden Sie unter dem Reiter „Wireless“ in der Web-Oberfläche oder im Terminal mitifconfig.
  • Passen Sie die Wartezeiten so an, dass sie der Zeit entsprechen, die Sie in Ihrer Situation tatsächlich benötigen. Ich denke, 2–3 Minuten wären in Ihrer Situation akzeptabel.

Von m1st0, 2011 mit Beiträgen vonhttp://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 

Gemessen an Ihrem Ruf bei Stack Overflow denke ich, dass Sie keine Probleme haben werden, dieses Skript für Ihre Zwecke zu bearbeiten. Wenn Sie auf Probleme stoßen, schreiben Sie mir einfach eine Nachricht.

Einigediese Skriptekönnte auch für Sie nützlich sein.

verwandte Informationen