Linux 的 Wifi 斷線自動連線 Script

Linux 在 Xwindow 開著電腦,有時候 Wifi 會自動斷線,要怎麼自動重新連線?

Linux 的 Wifi 斷線自動連線 Script

一般 Wifi 斷線,最常見的就是網卡進入省電模式,然後另一個就是靠程式自動做重新連線了~

讓 Wifi 網卡不進入省電模式

  1. cat /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
    • 預設值 3
    • NetworkManager supports WiFi powersaving but the function is rather undocumented.
    • From the source code: wifi.powersave can have the following value:
    • NM_SETTING_WIRELESS_POWERSAVE_DEFAULT (0): use the default value
    • NM_SETTING_WIRELESS_POWERSAVE_IGNORE (1): don't touch existing setting
    • NM_SETTING_WIRELESS_POWERSAVE_DISABLE (2): disable powersave
    • NM_SETTING_WIRELESS_POWERSAVE_ENABLE (3): enable powersave
  2. vim /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
    • 將 wifi.powersave = 3
    • 改成 wifi.powersave = 2
  3. 這樣子就完成

寫自動重新連線的 Script

註:下述程式的兩個 wlan0,請自行換成 Wifi 網卡的代號

  1. vim wifi-reconnct.sh
    #!/bin/bash
    while true
    do
        i=$(cat /sys/class/net/wlan0/carrier)
        if test "$i" = 1
        then
            true
            # echo `date` " connected"
        else
            echo `date` " reconnecting"
            nmcli c down WIFI-AP-SSID
            nmcli c up WIFI-AP-SSID
            # systemctl restart networking.service
            # dhclient wlan0
            echo `date` " reconnected successfully"
        fi
    sleep 2
    done
    
  2. chmod +x ./wifi-reconnect.sh
  3. 有需要就將此程式加入 Cron 或 SystemCtl 進入背景執行

註:最後主要是靠後面這 Script 自動連線解決~

Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post
whatsapp
line