How can I restart my Wi-Fi connection from the command-line?

nmcli is very useful command-line utility for interacting with Network Manager. Use this command in Ubuntu 16.04 LTS

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

For versions prior to 15.10 ( i.e. before transition to systemd ) the command would be slightly different:

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

Good thing about it - this doesn't require root powers.

Restarting network manager itself is a good idea as well.

For 16.04 LTS:

sudo systemctl restart NetworkManager

and for 14.04 LTS:

sudo service network-manager restart

And if we really wanted to, we could even automate it with a script that will restart your 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

Two alternatives I'm thinking about follows,

First alternative, bring down/up the interface

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

Second alternative, restart the entire network-manager. This assumes you have network-manager installed. If not, install it with the following cmd in your terminal sudo apt-get install network-manager.

sudo service network-manager restart

On Ubuntu 15.10 and 16.04 LTS you can use the systemd feature:

 systemctl restart NetworkManager.service

Use ifdown + interface name to disable network

ifdown IFACE

Use ifup + interface name to enable it

ifup IFACE

Replace IFACE with your device name as given by ifconfig