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

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

私の状況はこうです: 私のルーターは、dd-wrtを実行すると、携帯電話のホットスポットに接続するように設定されます

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

携帯電話のホットスポットが利用可能になったとき(電源がオンになったか範囲内に入ったとき)、ルーターが必ずしも自動的に接続するとは限りません。接続できるときもありますが、再起動が必要なときもあります。

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


* TP-Link TL-WR841N
** ワイヤレス物理インターフェースはクライアントモードに設定されています

答え1

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

これは、この目的のために DD-WRT フォーラムで見つけたスクリプトです。
(おそらく、このスクリプトをルーターのモデルに合わせて調整する必要があるでしょう。

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

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

m1st0、2011年、入力者: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 

Stack Overflow でのあなたの評判から判断すると、このスクリプトを目的に合わせて操作するのに問題はないと思います。問題が発生した場合は、私にメッセージを送ってください。

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

関連情報