Linux 在 Xwindow 開著電腦,有時候 Wifi 會自動斷線,要怎麼自動重新連線?
Linux 的 Wifi 斷線自動連線 Script
一般 Wifi 斷線,最常見的就是網卡進入省電模式,然後另一個就是靠程式自動做重新連線了~
讓 Wifi 網卡不進入省電模式
- 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
- vim /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
- 將 wifi.powersave = 3
- 改成 wifi.powersave = 2
- 這樣子就完成
寫自動重新連線的 Script
註:下述程式的兩個 wlan0,請自行換成 Wifi 網卡的代號
- 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
- chmod +x ./wifi-reconnect.sh
- 有需要就將此程式加入 Cron 或 SystemCtl 進入背景執行
註:最後主要是靠後面這 Script 自動連線解決~