Wie kann ich meine Wi-Fi-Verbindung über die Befehlszeile neu starten?

28

Gelegentlich funktioniert meine WLAN-Verbindung aus verschiedenen Gründen nicht mehr. Durch Deaktivieren und erneutes Aktivieren von Wi-Fi über die grafische Oberfläche der Netzwerkanzeige werden die Probleme in diesen Fällen nicht behoben.

Wie kann ich meine Wi-Fi-Verbindung über die Befehlszeile vollständig neu starten, ohne meinen Computer neu starten zu müssen (wodurch diese Probleme behoben werden)?

Orschiro
quelle

Antworten:

35

nmcliist ein sehr nützliches Befehlszeilenprogramm für die Interaktion mit Network Manager. Verwenden Sie diesen Befehl in Ubuntu 16.04 LTS

nmcli radio wifi off && sleep 5 && nmcli radio wifi on

Für Versionen vor 15.10 (dh vor dem Übergang zu systemd) wäre der Befehl etwas anders:

nmcli nm wifi off && sleep 5 && nmcli nm wifi on

Das Gute daran ist, dass hierfür keine Root-Kräfte erforderlich sind.

Ein Neustart des Netzwerkmanagers selbst ist ebenfalls eine gute Idee.

Für 16.04 LTS:

sudo systemctl restart NetworkManager

und für 14.04 LTS:

sudo service network-manager restart

Und wenn wir es wirklich wollten, könnten wir es sogar mit einem Skript automatisieren, das Ihr WLAN neu startet.

#!/bin/bash
# replace wlan0 with your device name
# as given by ip addr or ifconfig
while true 
do
    # keep checking if we have ip address    
    wifi_info=$(ip -4 -o addr  show wlan0 )
    while [ -n "$wifi_info" ];
    do
       wifi_info=$(ip -4 -o addr  show wlan0 )
       sleep 0.25
    done

    # We get here only if IP address is lost
    # which means we're off-line
    # restart wifi 
    nmcli radio wifi off && sleep 5 && nmcli radio wifi on
done
Sergiy Kolodyazhnyy
quelle
4
.servicewird angedeutet, kann also weggelassen werdensudo systemctl restart NetworkManager
Zanna
1
@Zanna TIL ... Ich habe die .serviceganze Zeit getippt .
Edwinksl
Arbeitete wie ein Zauber für mich.
Josh
Danke, sehr gut. Warum gibt es 2 verschiedene Befehle?
NeverMind9
1
@TechLord Grundsätzlich liegt es daran, dass Ubuntu seit der Version 15.04 auf systemdinit system umgestellt hat - das Zeug, das beim Booten grundlegende Dienste und Dämonen aufruft. Das Problem ist , dass im Gegensatz zu älteren Sachen, systemdversucht einfach nicht starten Sachen, sondern auch verwalten das Zeug. Dies führte dazu, nmclidass es entsprechend umgeschrieben wurde systemd. Zumindest ist dies mein Verständnis.
Sergiy Kolodyazhnyy
10

Zwei Alternativen, über die ich nachdenke, folgen:

Erste Alternative , die Schnittstelle runter / rauf fahren

ifconfig wlan0 down ## assumes your wlan is named wlan0
ifconfig wlan0 up

Zweite Alternative : Starten Sie den gesamten Netzwerkmanager neu. Dies setzt voraus, dass Sie den Netzwerkmanager installiert haben. Wenn nicht, installieren Sie es mit dem folgenden Befehl in Ihrem Terminal sudo apt-get install network-manager.

sudo service network-manager restart
mattias
quelle
5

Auf Ubuntu 15.10 und 16.04 LTS können Sie die systemdFunktion verwenden:

 systemctl restart NetworkManager.service
GAD3R
quelle
4

Verwenden Sie ifdown+ Schnittstellenname, um das Netzwerk zu deaktivieren

ifdown IFACE

Verwenden Sie ifup+ Schnittstellenname, um es zu aktivieren

ifup IFACE

Ersetzen Sie IFACEdurch Ihren Gerätenamen, wie von angegebenifconfig

Abhijith.s
quelle