Linux

在後台不斷檢查網際網路連接的最佳方法是什麼?

  • October 2, 2017

我的網卡有功能問題 - 網際網路在一段時間內消失,而 wifi 連接級別沒有改變。重新連接到同一個 Wi-Fi 點可解決此問題。

我想編寫一個解決方法腳本,持續檢查網際網路連接(例如,每 10 秒檢查一次),如果它消失,腳本會重新連接 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

為什麼wifi總是斷開連接:

根據debian 文件,您應該使用rt2800pci而不是rt2860目前載入的。女巫無需執行腳本即可重新連接即可解決您的問題。

一個範例 bash 腳本

如果您在斷開 wifi 連接(重新載入核心模組 + 重新連接)時需要執行 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

每 10 秒執行reconnect一次腳本:

while true ; do ./reconnect & sleep 10 ; done &

如果幾個小時後 wifi 掉線,最好創建一個 cron 作業以每 1 小時執行一次腳本:這裡有一些範例

引用自:https://unix.stackexchange.com/questions/395377