Automatycznie podłącz ponownie połączenie bezprzewodowe


13

Połączenie bezprzewodowe w moim domu niestety często znika, co wymaga ponownego uruchomienia routera bezprzewodowego.

Co gorsza, mój komputer z mediami Ubuntu nie łączy się automatycznie z siecią bezprzewodową po jej zniknięciu, a następnie pojawia się około minutę później. Sieć, o której mowa, jest skonfigurowana jako „połącz automatycznie” w ustawieniach sieci.

Jeśli ręcznie wybiorę sieć bezprzewodową, używając ikony sieci bezprzewodowej w prawym górnym rogu ekranu, wszystko działa dobrze, aż do następnego wyłączenia sieci bezprzewodowej.

Szukam sposobu, więc nie muszę cały czas robić tego ręcznie.


Mam dokładnie ten sam problem. Byłbym zadowolony z zastosowanego rozwiązania, np. Skryptu cron co 5 minut z prośbą o ponowne nawiązanie połączenia przez Network Managera, jeśli jeszcze nie jest podłączony.
Marius Gedminas,

@Marius, czy masz taki skrypt?
Oli

Dodaj informacje o sprzęcie do swojego pytania.
Jorge Castro,

@Oli: niestety nie.
Marius Gedminas

Odpowiedzi:


3

Miałem podobny problem z kartą Intel Wireless WiFi 5100 do połowy wysokości mojego laptopa i sterownikiem iwlagn. Ten problem jest znanym problemem ze sterownikiem iwlagn, a najlepszym rozwiązaniem jest wyłączenie 802.11n na karcie.

Aby wyłączyć 802.11n na tej karcie, utwórz / edytuj /etc/modprobe.d/options.confplik:

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

I dodaj do tego następujące.

options iwlagn 11n_disable=1 11n_disable50=1

3

Jest to alternatywa polegająca na 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

Wydaje się, że jest to opublikowane w sieci bez dobrych rozwiązań. Wydaje mi się, że najlepszym rozwiązaniem / obejściem jest sprawdzenie połączenia internetowego, a jeśli go nie ma, podłącz go ponownie. Zrobiłem to za pomocą testu ping na google.com, a następnie po prostu ponownie uruchomiłem sieć. Kod nie jest testowany (część restartu i część cron, jeśli instrukcja została przetestowana), więc po prostu poczekam, aż się rozłączy. Mam Ubuntu Server 12.10, więc nie mam GUI i trudno jest podłączyć monitor i klawiaturę za każdym razem, gdy sieć bezprzewodowa się ładuje.

Część Crona wykonana za pośrednictwem webmina, więc wiele o tym wiem. Skrypt wygląda następująco:

# 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

Uruchom jako root i upewnij się, że skrypt ma uprawnienia do wykonywania (u + x).

spinki do mankietów:


2

Bardziej nowoczesna wersja skryptu @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

Po prostu utwórz nowy plik vi /root/checkwanupi dodaj tę treść:

#!/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

Następnie chmod 555 /root/checkwanupdodaj go do swojego crontab:

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

Źródło: http://sirlagz.net/2013/01/10/script-wifi-checker-script/


dodaj LANG=Club grep inet\ addrmoże się nie powieść.
Mawi12345,

1

Możesz rzucić okiem na użycie wpa_supplicant zamiast menedżera sieci, ale tak naprawdę nie ma to znaczenia, gdy jesteś w centrum medialnym. wpa_supplicant nie jest tak elastyczny jak menedżer sieci, ale afaik nie poddaje się po trzech próbach. spójrz na tę odpowiedź .


1

Oto moja wersja - działa z 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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.