Автоматически переподключить беспроводное соединение

К сожалению, беспроводное соединение в моем доме часто пропадает, что требует перезагрузки беспроводного маршрутизатора.

Хуже всего то, что мой Ubuntu Media PC автоматически не подключается к беспроводной сети, когда он отсутствует, а затем появляется примерно через минуту. Рассматриваемая сеть настраивается как «автоматически подключаться» в настройках сети.

Если я вручную выберу беспроводную сеть, используя значок беспроводной сети в правом верхнем углу экрана, все будет работать нормально, пока в следующий раз беспроводное соединение не выйдет из строя.

Я ищу способ, поэтому мне не нужно постоянно делать это вручную.

13
задан 17 September 2010 в 00:57

7 ответов

У меня была похожая проблема с половинной картой Intel Wireless WiFi 5100 моего ноутбука и драйвером iwlagn драйвера. Эта проблема - известная проблема с драйвером iwlagn, и лучший обходной путь - отключить 802.11n на карте.

Чтобы отключить 802.11n на этой карте, создайте / отредактируйте файл /etc/modprobe.d/options.conf:

sudo -H gedit /etc/modprobe.d/options.conf

и добавьте в него следующее.

options iwlagn 11n_disable=1 11n_disable50=1
0
ответ дан 17 September 2010 в 00:57

Это альтернативное использование service network-manager restart:

#!/usr/bin/env bash


# 1. copy this script into
# /usr/bin

# 2. change permissions
# root:/usr/bin# chmod +x checkwifi.sh 

# 3. add to cron as root
# sudo su
# crontab -e

# add this to check your wifi every minute
# * * * * * /usr/bin/checkwifi.sh

is_ok=$(/sbin/ifconfig wlp2s0 | /bin/grep inet\ addr -c)

if [ "$is_ok" -eq 0 ] ; then

    # restart
    /usr/sbin/service network-manager restart

    # wifi is ok
    /bin/echo $(date) "wifi was restarted" >> /user/user/Dropbox/wifi.log
    /bin/echo $(/sbin/ifconfig wlp2s0) >> /home/user/Dropbox/wifi.log

else

    # wifi is ok
    /bin/echo $(date) "wifi is ok" >> /home/user/Dropbox/wifi.log
    /bin/echo $(/sbin/ifconfig wlp2s0) >> /home/user/Dropbox/wifi.log

fi
0
ответ дан 17 September 2010 в 00:57

Это, кажется, опубликовано по всей сети без каких-либо хороших решений. Я думаю, что лучшее исправление / обходной путь - это заставить его проверять подключение к Интернету, а если его там нет, то заново подключиться. Я сделал это с помощью теста ping на google.com, а затем просто перезапустил сеть. Код не проверен (часть перезапуска и часть cron, если оператор проверен), поэтому я просто подожду, пока он не отключится. У меня Ubuntu Server 12.10, поэтому нет графического интерфейса, и каждый раз, когда беспроводная связь перегружается, неудобно подключать монитор и клавиатуру.

Часть Cron сделана через webmin, так что я много об этом. Сценарий выглядит следующим образом:

# edited by dim_voly for networking restart on no pingback every 5 mins

#!/bin/bash
# Name of File: networkingCron
# Purpose: to check if the internet is up (via ping test to google) and if not, restart networking service
# this script is invoked via cron, ideally every 5 mins.

#check if there is internet via ping test
if ! [ "`ping -c 1 google.com`" ]; then #if ping exits nonzero...
   sudo service networking restart #restart the whole thing
   echo Networking service restarted due to no ping response from google.com
fi

echo Script 'networkingCron' completed, if no message above then there was no network restart.

# dunno how to restart the wifi only since that is the only active connection that server uses.

# also I don't think those echos go anywhere

Убедитесь, что запущен от имени пользователя root, и убедитесь, что сценарий имеет права на выполнение (u + x).

ссылки:

0
ответ дан 17 September 2010 в 00:57

Более современная версия скрипта @DougD

#!/bin/bash    
wlan=$(/sbin/ifconfig wlan0 | grep inet\ addr -c)
if [ "$wlan" -eq 0 ]; then    
    /sbin/ifdown wlan0 && /sbin/ifup wlan0
else    
    echo interface is up    
fi
0
ответ дан 17 September 2010 в 00:57

Просто создайте новый файл vi /root/checkwanup и добавьте это содержание:

#!/bin/bash    
wlan=`/sbin/ifconfig wlan0 | grep inet\ addr | wc -l`    
if [ $wlan -eq 0 ]; then    
    /sbin/ifdown wlan0 && /sbin/ifup wlan0
else    
    echo interface is up    
fi

Затем chmod 555 /root/checkwanup и добавьте его к своему crontab:

crontab -e
*/15 * * * * /bin/bash /root/checkwanup

Источник: http://sirlagz.net/2013/01/10/script-wifi-checker-script/

2
ответ дан 17 September 2010 в 00:57

Возможно, вы захотите взглянуть на использование wpa_supplicant вместо network-manager, но это не имеет значения, когда вы находитесь в медиа-центре. wpa_supplicant не так гибок, как сетевой менеджер, но на самом деле он не сдается после трех попыток. взгляните на этот ответ .

0
ответ дан 17 September 2010 в 00:57

Вот моя версия - она ​​работает с NetworkManager:

#!/bin/bash    
wlan=`/sbin/ifconfig wlan0 | grep inet\ addr | wc -l`    
if [ $wlan -eq 0 ]; then   
    /usr/bin/nmcli nm wifi off && /usr/bin/nmcli nm wifi on 
fi
0
ответ дан 17 September 2010 в 00:57

Другие вопросы по тегам:

Похожие вопросы: