web-dev-qa-db-ja.com

DD-WRTは、利用可能な場合、電話のホットスポットに自動接続します

これが私の状況です:私のルーター実行中のdd-wrtは私の電話のホットスポットに接続するように設定されています

一般的に、それはうまく機能しています。小さな問題は、明らかに電話(4G)のホットスポットが常に利用できるとは限らないことです。 (ホットスポットが利用できない場合、他のWAN接続はありません)。

電話機のホットスポットが使用可能になったとき(電源がオンになったとき、または範囲内に入ったとき)、ルータは常に自動的にホットスポットに接続するとは限りません。時々それはします、時々私はそれを再起動しなければなりません。

ホットスポットが利用できないときにルーターインターフェイスがハングしたり再起動したりしないように、プロキシウォッチドッグサービスを設定しませんでした。自動再接続を改善する方法はありますか?


* TP-Link TL-WR841N
**
1
c0der

残念ながら、バッファローのN-finity用にカスタマイズしたスクリプトが見つかりませんでした。アップグレードしてルーターを友達に渡したときに、おそらく削除しました。

これは、この目的のためにDD-WRTフォーラムで見つけたスクリプトです。
ルーターモデル用にこのスクリプトをいじくり回す必要があるでしょう

注意すべき点がいくつかあります。

  • ルーターには正確な時刻が必要です。メインの[設定]タブの一番下にあることを確認してください。 (私はpool.ntp.orgを使用しています)適用を保存して再起動する必要がある場合があります。
  • システムログをオンにして、[サービス]タブ-> [システムログ]-> [syslogdを有効にする]で機能する必要があります
  • このスクリプトは、/ var/log/messagesフォルダーをチェックして、時間とエラーメッセージを判別します。ルーターにtelnetまたはsshで接続し、tail -25 /var/log/messagesでログをチェックして、ルーターからの出力がそこにあることを確認します。そうでない場合は、再起動が必要になる場合があります。
  • ルーターのインターフェース名を反映するように、スクリプトのワイヤレスインターフェースを変更する必要があります。ほとんどのBroadcomインターフェイスは "wl0"になり、ほとんどのAtherosインターフェイスは "ath0」。名前は、Web-GUIの[ワイヤレス]タブ、またはifconfigを使用して端末で見つけることができます。
  • 状況に実際に必要な時間を反映するように待機時間を変更します。私はあなたの状況で2〜3分が許容できると思います。

2011年m1st0までに http://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 

スタックオーバーフローで終わった担当者から判断すると、このスクリプトを目的に合わせて操作するのに問題はないと思います。問題が発生した場合は、私にメッセージを送ってください。

これらのスクリプト のいくつかもあなたに役立つかもしれません。

2
Tim_Stewart