Автоматичне відновлення бездротового з'єднання


13

На жаль, бездротове з'єднання в моєму будинку, на жаль, часто зникає, що вимагає перезавантаження бездротового маршрутизатора.

Погіршення цього полягає в тому, що мій ПК на ubuntu media не підключається автоматично до бездротової мережі, коли його вже немає, а потім з’являється приблизно через хвилину. Мережа, про яку йдеться, налаштовується як "підключення автоматично" в мережевих налаштуваннях.

Якщо я вручну виберу свою бездротову мережу, використовуючи піктограму бездротового зв’язку вгорі екрана, то все буде добре, до наступного моменту, коли цей бездротовий зв’язок вийде з ладу.

Я шукаю спосіб, тому мені не потрібно пам’ятати робити це вручну весь час.


У мене точно така ж проблема. Я був би задоволений використовуваним рішенням, наприклад, сценарій cron кожні 5 хвилин з проханням відновити Менеджер мережі, якщо він уже не підключений.
Маріус Гедмінас

@Marius у тебе такий сценарій?
Олі

Будь ласка, додайте трохи технічної інформації до свого питання.
Хорхе Кастро

@Oli: на жаль, ні.
Маріус Гедмінас

Відповіді:


3

У мене була схожа проблема з карткою половини висоти 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

3

Це альтернатива, використовуючи 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

3

Здається, це розміщено по всій мережі, не маючи хороших рішень. Я думаю, що найкраще виправити / вирішити, це перевірити наявність підключення до Інтернету, а якщо його немає, то знову підключіться. Я зробив це за допомогою тесту ping на google.com, а потім просто змусив його перезапустити мережу. Код не перевіряється (частина перезапуску та частина cron, якщо випробування перевірено), тому я просто зачекаю, коли він відключиться в якийсь момент. У мене є Ubuntu Server 12.10, тому немає графічного інтерфейсу, і це болісно підключати монітор і клавіатуру щоразу, коли бездротовий зв’язок вмикається.

Частина Cron робиться через webmin, тому Idk багато про це. Сценарій такий:

# 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) дозволи.

посилання:


2

Більш сучасна версія сценарію @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

2

Просто створіть новий файл 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/


додати LANG=Cабо grep inet\ addrможе не вдатися.
Mawi12345

1

Ви можете поглянути на використання wpa_supplicant замість мережевого менеджера, але це не дуже важливо, коли ви перебуваєте в медіа-центрі. wpa_supplicant не такий гнучкий, як мережевий менеджер, але afaik від нього не здається після триразової спроби. подивіться на цю відповідь .


1

Ось моя версія - вона працює з 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.