Stellen Sie die drahtlose Verbindung automatisch wieder her


13

Die drahtlose Verbindung in meinem Haus verschwindet leider oft und erfordert einen Neustart des drahtlosen Routers.

Erschwerend kommt hinzu, dass sich mein Ubuntu Media-PC nicht automatisch wieder mit dem drahtlosen Netzwerk verbindet, wenn er nicht mehr vorhanden ist, und etwa eine Minute später wieder hochfährt. Das betreffende Netzwerk ist in den Netzwerkeinstellungen als "Automatisch verbinden" eingerichtet.

Wenn ich mein WLAN manuell über das WLAN-Symbol in der rechten Ecke meines Bildschirms auswähle, funktioniert alles einwandfrei, bis das WLAN das nächste Mal ausfällt.

Ich suche nach einem Weg, damit ich nicht daran denken muss, dies die ganze Zeit manuell zu tun.


Ich habe genau das gleiche Problem. Ich bin mit einer Lösung zufrieden, die verwendet wird, z. B. ein Cron-Skript, das alle 5 Minuten nach der Wiederherstellung der Verbindung durch Network Manager fragt, sofern noch keine Verbindung besteht.
Marius Gedminas

@Marius hast du so ein script?
Oli

Bitte fügen Sie Ihrer Frage einige Hardware-Informationen hinzu.
Jorge Castro

@Oli: leider nein.
Marius Gedminas

Antworten:


3

Ich hatte ein ähnliches Problem mit der Intel Wireless WiFi 5100 Half-Height-Karte meines Laptops und dem Treiber iwlagn driver. Dieses Problem ist ein bekanntes Problem mit dem iwlagn-Treiber, und die beste Lösung besteht darin, 802.11n auf der Karte zu deaktivieren.

So deaktivieren Sie 802.11n auf dieser Karte /etc/modprobe.d/options.conf:

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

Und füge das Folgende hinzu.

options iwlagn 11n_disable=1 11n_disable50=1

3

Dies ist eine Alternative mit 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

Dies scheint im ganzen Netz ohne gute Lösungen gepostet zu werden. Ich denke, die beste Lösung ist, die Internetverbindung zu überprüfen und die Verbindung wiederherzustellen, wenn sie nicht vorhanden ist. Ich habe dies über einen Ping-Test bei google.com durchgeführt und dann einfach einen Neustart des Netzwerks durchgeführt. Code wird nicht getestet (der Neustart-Teil und der Cron-Teil, falls die Anweisung getestet wurde), daher warte ich einfach ab, bis die Verbindung getrennt wird. Ich besitze einen Ubuntu Server 12.10, also keine grafische Benutzeroberfläche, und es ist schwierig, Monitor und Tastatur jedes Mal zu verbinden, wenn das drahtlose Netzwerk ausfällt.

Cron Teil via Webmin gemacht, also Idk viel darüber. Das Skript lautet wie folgt:

# 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

Stellen Sie sicher, dass Sie als Root ausgeführt werden und dass das Skript über Ausführungsberechtigungen (u + x) verfügt.

Links:


2

Modernere Version des @DougD-Skripts

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

Erstellen Sie einfach eine neue Datei vi /root/checkwanupund fügen Sie diesen Inhalt hinzu:

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

Dann chmod 555 /root/checkwanupund füge es deiner Crontab hinzu:

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

Quelle: http://sirlagz.net/2013/01/10/script-wifi-checker-script/


hinzufügen LANG=Coder das grep inet\ addrkann fehlschlagen.
Mawi12345

1

Möglicherweise möchten Sie wpa_supplicant anstelle von network-manager verwenden, aber das spielt in einem Media Center keine Rolle. wpa_supplicant ist nicht so flexibel wie der Netzwerkmanager, gibt aber nach drei Versuchen nicht auf. Schau dir diese Antwort an .


1

Hier ist meine Version - sie funktioniert mit 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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.