Jak mogę zrestartować połączenie Wi-Fi z wiersza poleceń?

28

Czasami moje połączenie Wi-Fi nie działa już z różnych powodów. Wyłączenie i ponowne włączenie Wi-Fi za pomocą interfejsu graficznego wskaźnika sieci nie rozwiąże problemów w takich przypadkach.

Jak mogę całkowicie zrestartować połączenie Wi-Fi z wiersza poleceń bez konieczności ponownego uruchamiania komputera (co rozwiązuje te problemy)?

orschiro
źródło

Odpowiedzi:

35

nmclijest bardzo przydatnym narzędziem wiersza polecenia do interakcji z Network Managerem. Użyj tego polecenia w Ubuntu 16.04 LTS

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

W przypadku wersji wcześniejszych niż 15.10 (tj. Przed przejściem do systemd) polecenie wyglądałoby nieco inaczej:

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

Dobrze, że nie wymaga to uprawnień roota.

Ponowne uruchomienie menedżera sieci również jest dobrym pomysłem.

Dla 16.04 LTS:

sudo systemctl restart NetworkManager

i dla 14.04 LTS:

sudo service network-manager restart

A jeśli naprawdę tego chcemy, możemy nawet zautomatyzować go za pomocą skryptu, który zrestartuje twoje Wi-Fi.

#!/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
źródło
4
.servicejest sugerowany, więc można go pominąćsudo systemctl restart NetworkManager
Zanna,
1
@Zanna TIL ... Pisałem .servicecały czas.
edwinksl,
Dla mnie zadziałało jak urok.
Josh
Dzięki, świetnie. Dlaczego są 2 różne polecenia?
neverMind9
1
@TechLord Zasadniczo dzieje się tak dlatego, że od wersji 15.04 Ubuntu przeszedł na systemdsystem init - rzeczy, które faktycznie uruchamiają podstawowe usługi i demony podczas uruchamiania. Problem polega na tym, że w przeciwieństwie do starszych rzeczy, systemdpróbuje nie tylko rozpocząć , ale także zarządzać . Doprowadziło to do nmcliprzepisania w celu dopasowania systemd. Tak przynajmniej rozumiem.
Sergiy Kolodyazhnyy 17.04.18
10

Oto dwie alternatywy, o których myślę,

Pierwsza alternatywa , obniżanie / zwiększanie interfejsu

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

Drugą alternatywą jest zrestartowanie całego menedżera sieci. Zakłada się, że masz zainstalowany menedżer sieci. Jeśli nie, zainstaluj go za pomocą następującego polecenia cmd w terminalu sudo apt-get install network-manager.

sudo service network-manager restart
Mattias
źródło
5

W systemie Ubuntu 15.10 i 16.04 LTS możesz użyć tej systemdfunkcji:

 systemctl restart NetworkManager.service
GAD3R
źródło
4

Użyj ifdown+ nazwy interfejsu, aby wyłączyć sieć

ifdown IFACE

Użyj ifup+ nazwy interfejsu, aby ją włączyć

ifup IFACE

Zamień IFACEna nazwę urządzenia podaną przezifconfig

Abhijith.s
źródło