ฉันจะเริ่มการเชื่อมต่อ Wi-Fi จากบรรทัดคำสั่งได้อย่างไร


28

ในบางครั้งการเชื่อมต่อ Wi-Fi ของฉันไม่สามารถทำงานได้ด้วยเหตุผลหลายประการ การปิดใช้งานและเปิดใช้งาน Wi-Fi อีกครั้งผ่านอินเทอร์เฟซแบบกราฟิกของตัวบ่งชี้เครือข่ายไม่สามารถแก้ปัญหาในกรณีเหล่านี้ได้

ฉันจะเริ่มการเชื่อมต่อ Wi-Fi ใหม่จากบรรทัดคำสั่งได้อย่างสมบูรณ์โดยไม่ต้องรีสตาร์ทเครื่อง (ซึ่งแก้ไขปัญหาเหล่านี้)


ดูได้ที่ลิงค์
Nick Sillito

คำตอบ:


35

nmcliเป็นอรรถประโยชน์บรรทัดคำสั่งที่มีประโยชน์มากสำหรับการโต้ตอบกับ Network Manager ใช้คำสั่งนี้ใน 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

สิ่งที่ดีเกี่ยวกับเรื่องนี้ - ไม่ต้องใช้พลังของรูท

การรีสตาร์ทตัวจัดการเครือข่ายนั้นเป็นความคิดที่ดีเช่นกัน

สำหรับ 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 ได้เปลี่ยนไปsystemdใช้ระบบ init - สิ่งที่นำเสนอบริการพื้นฐานและดีมอนเมื่อคุณบูต ปัญหาคือสิ่งที่แตกต่างจากของเก่าsystemdพยายามที่จะไม่เพียงแค่เริ่มต้นสิ่งต่างๆ แต่ยังจัดการ สิ่งต่างๆ นำไปสู่การนี้ถูกเขียนใหม่เพื่อการแข่งขันกับnmcli systemdอย่างน้อยนี่คือความเข้าใจของฉัน
Sergiy Kolodyazhnyy

10

สองทางเลือกที่ฉันคิดเกี่ยวกับดังนี้

ทางเลือกแรกดึงอินเทอร์เฟซขึ้น / ลง

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

ทางเลือกที่สองรีสตาร์ททั้งเครือข่าย - ผู้จัดการ สิ่งนี้ถือว่าคุณมีผู้จัดการเครือข่ายติดตั้งไว้ ถ้าไม่ได้ติดตั้งด้วยคำสั่งต่อไปนี้ใน sudo apt-get install network-managerterminal

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.