ネットワークカードの機能に問題があります。Wi-Fi接続レベルが変わらないのに、インターネットがしばらくすると消えます。同じWi-Fiスポットに再接続すると、この問題が解決します。
インターネット接続を継続的にチェックする回避策スクリプト(たとえば、10秒ごとに1回のチェック)を作成し、それが消えた場合、スクリプトはWi-Fiに再接続します。 ping
を使用したかったのですが、そのマニュアルには、自動スクリプト中にping
を使用するのは賢明ではないと書かれています。
$ uname -a
Linux NS-COMP 4.11.0-13-generic #19~16.04.1-Ubuntu SMP Wed Aug 2 20:06:21 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ lspci -knn | grep Net -A2
03:00.0 Network controller [0280]: Ralink corp. RT3290 Wireless 802.11n 1T/1R PCIe [1814:3290]
Subsystem: Foxconn International, Inc. RT3290 Wireless 802.11n 1T/1R PCIe [105b:e055]
Kernel driver in use: rt2860
Wi-Fiが切断され続ける理由:
debianドキュメント によると、現在ロードされているrt2800pci
の代わりにrt2860
を使用する必要があります。魔女は、再接続するスクリプトを実行せずに問題を解決します。
サンプルbashスクリプト
Wi-Fi接続が失われたときに接続するためにbashスクリプトを実行する必要がある場合(カーネルモジュールのリロード+再接続)、これはサンプルのbashスクリプトreconnect
:
#!/bash/bash
if ! [ "$(ping -c1 8.8.8.8)" ]
then
modprobe -r rt2860
modprobe rt2800pci
ip link set wlan0 down
ip link set wlan0 up
fi
reconnect
スクリプトを10秒ごとに実行するには:
while true ; do ./reconnect & sleep 10 ; done &
数時間後にwifiがドロップした場合は、1時間ごとにスクリプトを実行するcronジョブを作成することをお勧めします: ここにいくつかの例