如何从命令行重新启动Wi-Fi连接?


28

有时,由于各种原因,我的Wi-Fi连接不再起作用。通过网络指示器的图形界面禁用和重新启用Wi-Fi不能解决这些情况下的问题。

如何从命令行完全重新启动Wi-Fi连接,而不必重新启动计算机(可以解决这些问题)?


看一下堆栈交换链接
Nick Sillito

Answers:


35

nmcli是与网络管理器进行交互的非常有用的命令行实用工具。在Ubuntu 16.04 LTS中使用此命令

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

对于15.10之前的版本(即,在过渡到之前systemd),命令将略有不同:

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

这样做的好处-不需要root权限。

重新启动网络管理器本身也是一个好主意。

对于16.04 LTS:

sudo systemctl restart NetworkManager

对于14.04 LTS:

sudo service network-manager restart

而且,如果我们真的愿意,我们甚至可以使用脚本将其自动化以重新启动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

4
.service暗示,因此可以省略sudo systemctl restart NetworkManager
Zanna

1
@Zanna TIL ...我一直都在打字.service
edwinksl

对我来说就像一个魅力。
乔什(Josh)

谢谢,太好了。为什么有2个不同的命令?
neverMind9

1
@TechLord基本上,这是因为从15.04版本开始,Ubuntu已切换到systemdinit系统-在启动时实际上会启动基本服务和守护程序的东西。问题在于,与旧的东西不同,它不仅systemd试图开始东西,而且还要管理 东西。这导致nmcli被重写以与匹配systemd。至少这是我的理解。
Sergiy Kolodyazhnyy

10

我正在考虑的两种选择是

第一种选择,关闭/打开界面

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

第二种选择是,重新启动整个网络管理器。这假定您已安装网络管理器。如果没有,请在终端中使用以下cmd进行安装sudo apt-get install network-manager

sudo service network-manager restart

5

在Ubuntu 15.10和16.04 LTS上,您可以使用以下systemd功能:

 systemctl restart NetworkManager.service

4

使用ifdown+接口名称禁用网络

ifdown IFACE

使用ifup+接口名称启用它

ifup IFACE

替换IFACE为您提供的设备名称ifconfig

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.