LoginSignup
1
0

More than 5 years have passed since last update.

SSHサーバonWi-Fiが応答しなくなることがある

Posted at

TL;DR

現在のところ原因ははっきりとはわかっていないが、SSHサーバが落ちるわけではないのに接続できなくなる現象が発生している。そのため、自動的にネットワークを再起動するスクリプトを動かしている。

状況の列挙

  • サーバはWifiで動いている。
  • 突然接続できなくなり、Pingも通らない。
  • Journalctlのログにもエラーらしいエラーはない。
  • SSHなどで接続していると突然応答がなくなり、復帰できる場合もあるが、復帰できないこともある
  • ルータが落ちることがあるらしく、動かないと思ってルータのコンソールにアクセスすると勝手にルータが再起動する(ただし、ルータが動いていてもだめなケースもある)
  • Wifiの強度はそれほど強くないので環境としてはあまりよくない
  • RaspberryPiなんかを無線で運用する場合に同様の現象が発生するかもしれない
  • ディスクアクセスが増えたときに落ちやすい気がするが、Wifi->Samba on Docker->ZFSとなってるからどこが原因かぱっとはわからない
  • SambaじゃなくてNetatalk使ったら安定してるー>Sambaのバグ?
  • Wicdでアクセスポイントを見つけたら接続する機能を使えば再接続してくれるかも?→してくれなかった

で、結局?

多分無線の強度が弱くて、接続が不安定なのではないかとみられる。

現在の対処

ルータに対してPingが通らなかったらNetworkingを再起動するようにした。
ただし、UbuntuでNetworkingは再起動できないのにハマった。

これはだめ
sudo systemctl restart networking

で、実際に使ったスクリプトはこんなかんじだった。

network-watchdog.sh
#!/bin/bash

while true
do
        ping -A -c 1 192.168.1.1 # ルータのIPにPing
        if test $? -eq 1         # 自分の環境ではPingのリターンコードが1のときタイムアウトエラー
        then
                date >> /var/log/network-watchdog.log # ログは適当
                echo "restart network interfaces." >> /var/log/network-watchdog.log
                sudo systemctl restart wicd >> /var/log/network-watchdog.log
                echo " " >> /var/log/network-watchdog.log
        fi
        sleep 60s
done

自分の環境ではwicdを再起動すればうまく動いてくれたのでとりあえずそれで運用している。
あとはこれをサービスとして登録する。
参考にしました→Systemdを使ってさくっと自作コマンドをサービス化してみる

/etc/systemd/system/network-watchdog.service
[Unit]
Description = watchdog timer of network connection.
Requires = networking.service
After = networking.service

[Service]
ExecStart = /usr/local/bin/network-watchdog.sh
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target

あとは有効にするだけ

# 自動起動on
$ sudo systemctl enable network-watchdog
# 起動
$ sudo systemctl start network-watchdog
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0