Comment redémarrer ma connexion Wi-Fi depuis la ligne de commande?

28

Parfois, ma connexion Wi-Fi ne fonctionne plus pour diverses raisons. La désactivation et la réactivation du Wi-Fi via l'interface graphique de l'indicateur de réseau ne résout pas les problèmes dans ces cas.

Comment puis-je redémarrer complètement ma connexion Wi-Fi à partir de la ligne de commande sans avoir à redémarrer ma machine (ce qui résout ces problèmes)?

orschiro
la source

Réponses:

35

nmcliest un utilitaire de ligne de commande très utile pour interagir avec Network Manager. Utilisez cette commande dans Ubuntu 16.04 LTS

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

Pour les versions antérieures à 15.10 (c'est-à-dire avant la transition vers systemd), la commande serait légèrement différente:

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

Une bonne chose à ce sujet - cela ne nécessite pas de pouvoirs root.

Le redémarrage du gestionnaire de réseau lui-même est également une bonne idée.

Pour 16.04 LTS:

sudo systemctl restart NetworkManager

et pour 14.04 LTS:

sudo service network-manager restart

Et si nous le voulions vraiment, nous pourrions même l'automatiser avec un script qui redémarrera votre wifi.

#!/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
la source
4
.serviceest implicite, donc peut être omissudo systemctl restart NetworkManager
Zanna
1
@Zanna TIL ... J'ai tapé .servicetout ce temps.
edwinksl
A fonctionné à merveille pour moi.
Josh
Merci, excellent. Pourquoi y a-t-il 2 commandes différentes?
neverMind9
1
@TechLord Fondamentalement, c'est parce que depuis la version 15.04, Ubuntu est passé au systemdsystème init - ce qui fait réellement apparaître des services et des démons de base lorsque vous démarrez. Le problème est que, contrairement aux trucs plus anciens, systemdessaie non seulement de démarrer des trucs, mais aussi de gérer les trucs. Cela a conduit à nmcliêtre réécrit pour correspondre avec systemd. C'est du moins ce que je comprends.
Sergiy Kolodyazhnyy
10

Deux alternatives auxquelles je pense suivent,

Première alternative , faire tomber / monter l'interface

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

Deuxième alternative , redémarrez l'intégralité du gestionnaire de réseau. Cela suppose que vous avez installé le gestionnaire de réseau. Sinon, installez-le avec la cmd suivante dans votre terminal sudo apt-get install network-manager.

sudo service network-manager restart
mattias
la source
5

Sur Ubuntu 15.10 et 16.04 LTS, vous pouvez utiliser la systemdfonctionnalité:

 systemctl restart NetworkManager.service
GAD3R
la source
4

Utilisez ifdown+ nom d'interface pour désactiver le réseau

ifdown IFACE

Utilisez ifup+ nom d'interface pour l'activer

ifup IFACE

Remplacez IFACEpar le nom de votre appareil comme indiqué parifconfig

Abhijith.s
la source