題名で結論が出ているのだが、家のルーターが一定時間通信がないとWifi機能の停止をしていた。
たちが悪いのが、らずぱいをディスプレイで映すと無線LANのマークはしっかり繋がっているのだ。
しかしsshはできない...
らずぱい再起動orらずぱいの無線LANをOFF→ONにしたらsshができるようになるので謎だった。
解決策
ここを参考にさせていただいた。コマンドが自分のらずぱいでは動かなったのでちょこっと修正。
一定時間毎にpingを打って返信がなかったら繋ぎ直すというスクリプトを作る。
▶vim reConnectWifi.sh #!/bin/sh # pingの宛先はルーターのIPアドレス(らずぱいのIPではない) ping -c 1 192.168.100.1 test $? -eq 1 && sudo /etc/ifplugd/action.d/action_wpa wlan0 up # crontabにスクリプトを登録 ▶crontab -e # ルーターの設定時間によって頻度を変更してください。 # 家のルーターは10分ごとに停止するようになっていたので5分に1回スクリプトを走らせるよう設定 */5 * * * * ~/reConnectWifi.sh
試したこと
らずぱいの無線LANをコマンドでON/OFF
# 無線LANをOFF ▶sudo iwconfig wlan0 txpower off # 無線LANをON ▶sudo iwconfig wlan0 txpower auto
確かこれをcronに仕込んでもいけたはず。ただなんとなく接続をぶちぶち切るのが嫌だった。
パワーマネジメントをOFFにする
# 最初はファイルがないので新規作成 ▶sudo vim /etc/modprobe.d/8192cu.conf # 以下を書き込む options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1
これは意味がなかった。通信速度が上がることもなかった。
IPを固定化する
これはすでにやっていた。関係なかった。
ルーターを疑う
家のルーターは「Speed Wi-Fi NEXT W03」を使用していた。「speedwifi スリープ」で調べたら以下にたどり着いた。
こ、こいつが、、、!
ハイパフォーマンスモード時は"15分間(※)"、ノーマルモード時は"10分間(※)"、バッテリーセーブモード時は"5分間(※)"無通信状態が続いた場合、Wi-Fi機能の通信を停止します。
こいつがよぉ。。。ありがとうございました。みなさんもらずぱいを疑い尽くしたら根っこのルーターを疑ってみると解決するかもしれません。