Як підключити та відключити мережу вручну в терміналі?


113

Оскільки менеджер мережі мене так сильно турбує, я хочу його замінити (можливо, wicdабо NMз ppa: volanin ).

Я не знаю, як підключити та відключитись до мережі через термінал без використання мережевого менеджера.

Мені б хотілося, щоб командний рядок керував мережею.


2
Якщо ви збираєтеся возитися з менеджером мережевих підключень вашої системи, я рекомендую зробити це під час підключення через дротову мережу, яка рідше втратить зв’язок і легше налаштовуватися з командного рядка, якщо виникне потреба.
Райан Томпсон

Я використовую wicd-curses, що на сьогоднішній день я вважаю найпростішим інтерфейсом користувача. ->Для встановлення конфігурацій потрібно використовувати <kbd> → </kbd> (клавіша зі стрілкою вправо ); все інше очевидно з інструкцій на екрані.
ізоморфізми

Відповіді:


139

Це стосується 12.04+, оскільки це те, що я міг би протестувати, але також можна використовувати у старих версіях. Я розділив цей посібник на кілька частин, які складаються з:

  • Частина 1 Бездротові маршрутизатори без пароля або ключа WEP
  • Частина 2 Бездротові маршрутизатори з ключем захисту WPA або WPA2
    • Частина 2.1 Підключення до маршрутизатора WPA за допомогою wpa_supplicant
    • Частина 2.2 Підключення до маршрутизатора WPA з Менеджером мережі
  • Частина 3 Легке підключення Через nmcli
  • Частина 4 Відключення від бездротового маршрутизатора
  • Частина 5 Видалення з'єднання (включаючи файл конфігурації)
  • Частина 6 Автоматичне з'єднання під час входу
  • Бонус Як знайти ім'я мережевого інтерфейсу через GUI

Наступні командні рядки можуть використовуватися для підключення та відключення в залежності від картки бездротового зв'язку, захисту бездротового зв’язку та бездротового маршрутизатора. Перш ніж продовжити, переконайтеся, що послуга мережі увімкнена (для випадків, коли ви можете запустити Ubuntu в режимі відновлення):

Залежно від версії Ubuntu, запустити її потрібно одним із наступних способів:

Якщо ви використовуєте SystemD (починаючи з 14.10 і новіших):

sudo systemctl start networking

Якщо ви використовуєте Legacy init.d способом: sudo /etc/init.d/networking restart

Якщо ви використовуєте Legacy Upstart спосіб: sudo service network-manager restart

Частина 1: Бездротові маршрутизатори без пароля або ключа WEP

У випадках, коли бездротовий маршрутизатор не має пароля або захисту WEP, виконайте наступне:

  1. Відкрийте термінал і знайдіть бездротове з'єднання:

    iwlist wlan0 s  
    

    ( S призначений для Scan. Wlan0 - це моя бездротова карта, але вона може бути різною для кожного користувача. У деяких є eth0, в інших wlan2 .. Вам потрібно sudoвиконати цю опцію. Щоб дізнатися ім'я бездротової картки, просто введіть iwlist і натисніть TAB. Це повинно автоматично заповнити рядок із назвою мережевої карти. Ви також можете ввести iwconfigта знайти ім'я у списку, який відображатиметься.)

    Якщо ви не знаєте назви бездротових пристроїв, введіть: iwconfigвони покажуть ваші дротові / бездротові пристрої та їх назви. Вони можуть бути чимось на кшталт wlan0, wlan1, eth1, eth2 ..

  2. Під час пошуку буде показано всі видимі вам точки доступу (AP). Коли ви побачите свій маршрутизатор у списку, спробуйте підключитися до нього:

    Якщо у нього немає пароля, виконайте наступне:

    iwconfig wlan0 essid NAME_OF_ACCESS_POINT  
    

    Наприклад

    iwconfig wlan0 essid CYREX  
    

    після цього переконайтеся, що dhclientви використовуєте, щоб отримати динамічну IP-адресу, якщо маршрутизатор не призначить вас. Це повинно залишати вас підключеними до маршрутизатора CYREX.

    Якщо у нього є пароль, тоді виконайте:

    iwconfig wlan0 essid CYREX key PASSWORD
    

    Це слід з'єднати, використовуючи ПАРОЛЬ, яке ви дали там.

    Знову зробіть це dhclientпісля підключення, щоб переконатися, що вам призначено IP-адресу.

  3. Переконайтесь, що ви правильно підключені, завжди добре, тому виконуйте так, iwconfigщоб ваша бездротова карта була підключена до згаданого вище SSID. Він повинен відображати ваш пристрій підключений та призначений вам IP-адресу. Якщо це не так, і ви створюєте помилку, наприклад, інтерфейс не підтримує сканування, спробуйте наступні два варіанти:

    • Перевірте, чи не працює ваш інтерфейс: sudo ifconfig wlan0 up
    • Спробуйте додати sudoпід час сканування:sudo iwlist wlan0 s
    • Спробуйте зняти пристрій, а потім створити резервну копію:

      sudo ifconfig wlan0 down  
      sudo ifconfig wlan0 up
      

Частина 2: Бездротові маршрутизатори з ключем захисту WPA або WPA2

У випадках, коли бездротовий маршрутизатор має пароль WPA / WPA2, є кілька способів зробити це. Я згадаю 2 найпопулярніших:

  1. Відкрийте термінал і знайдіть бездротове з'єднання:

    iwlist wlan0 s  
    

    ( S призначений для Scan. Wlan0 - це моя бездротова карта, але вона може бути різною для кожного користувача. У деяких є eth0, в інших wlan2 .. Вам потрібно sudoвиконати цю опцію. Щоб дізнатися ім'я бездротової картки, просто введіть iwlist і натисніть TAB. Це повинно автоматично заповнити рядок із назвою мережевої карти. Ви також можете ввести iwconfigта знайти ім'я у списку, який відображатиметься.)

    Якщо ви не знаєте назви бездротових пристроїв, введіть: iwconfigвони покажуть ваші дротові / бездротові пристрої та їх назви. Вони можуть бути чимось на кшталт wlan0, wlan1, eth1, eth2 ..

  2. Під час пошуку буде показано всі видимі вам точки доступу (AP). Коли ви побачите свій маршрутизатор у списку, спробуйте підключитися до нього:

Частина 2.1. Керівництво WPA-SUPPLICANT: Підключення до маршрутизатора WPA за допомогою wpa_supplicant

  1. Введіть наступне в термінал (якщо припустити, що у вас встановлений wpasupplicantпакет, який встановлює всі необхідні команди, які ми тут використовуватимемо):

    wpa_passphrase SSID PASSWORD > CONFIG_FILE
    

    Приклад: wpa_passphrase Virus LinuxFTW > wpa.conf

    Де Virus - це ім'я мого маршрутизатора, LinuxFTW - це мій пароль, і wpa.confце файл, в якому я хочу зберігати всю цю інформацію. Зауважте, що ви можете зберегти файл в іншому місці, багато користувачів зберігають файл /etc/wpa_supplicant.confзамість цього wpa.conf. Дані файлу wpa.conf мають бути приблизно подібними:

    network={  
            ssid="Virus"  
            #psk="LinuxFTW"  
            psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
    }  
    
  2. До цього моменту нам слід знати назву інтерфейсу бездротової карти (наприклад: Wlan0, eth2, Wlan2 ...). Тепер нам потрібно знати, який драйвер використовується. для цього ми набираємо:

    wpa_supplicant
    

    Він повинен містити нам багато інформації, але буде розділ під назвою ** Драйвери *, де відображаються всі наявні драйвери (вони доступні при компілюванні wpa_supplicant). У моєму випадку це так:

    drivers:  
      wext = Linux wireless extensions (generic)  
      nl80211 = Linux nl80211/cfg80211  
      wired = Wired Ethernet driver  
      none = no driver (RADIUS server/WPS ER)  
    

    Весь список - hostap, hermes, madwifi, wext, broadcom, wired, roboswitch, bsd, ndis. Це може змінюватися залежно від того, як wpa_supplicantбуло складено, але той, який відображається для мене, має бути схожим на той, який у вашій системі. Більшість користувачів вибере wextдрайвер.

  3. Отож, коли у нас є ім’я карти бездротового інтерфейсу та ім'я драйвера, ми переходимо до підключення до неї за допомогою вже створеного файлу конфігурації у такому форматі:

    wpa_supplicant -iINTERFACE_NAME -cCONFIGURATION_FILE -DDRIVER_NAME
    

    Наприклад:

    wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -Dwext
    

    Звідки -iназва вашої інтерфейсної картки, -cде ваш файл конфігурації та -Dім’я драйвера, який ви будете використовувати для підключення. Якщо він підключений правильно, тоді ми натискаємо CTRL+, Cщоб скасувати його, а потім знову виконаємо рядок, але на цей раз ми надішлемо його на задній план, -Bщоб ми могли продовжувати використовувати термінал:

    wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext  
    

    Після цього просто зробіть, sudo dhclient wlan0щоб отримати IP від ​​маршрутизатора.

  4. Деякі користувачі повідомили про видалення Hash та залишили лише пароль у конфігурації, наприклад:

         network={  
                ssid="Virus"  
                psk="LinuxFTW"  
        }  
    

    Інші додали ssid_scan у файл налаштування:

        network={  
                ssid="Virus"
                scan_ssid=1  
                #psk="LinuxFTW"  
                psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
        }  
    

    Або навіть додати тип ключа:

        network={  
                ssid="Virus"
                scan_ssid=1  
                key_mgmt=WPA-PSK
                #psk="LinuxFTW"  
                psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
        }  
    

    Детальніше про це в man wpa_supplicant.conf

Частина 2.2 Посібник з управління мережею: підключення до маршрутизатора WPA з Менеджером мережі

Хороша річ у мережевому менеджері, що він постачається з парою приємних сценаріїв та інструментів. Два з них - nmcliі create_connection(чистий сценарій Python 3), який ми використаємо в даному випадку.

  1. Виконуючи вищезазначені дії, щоб знайти ім'я SSID вашого маршрутизатора (запам'ятайте частину про iwlistвище), ми робимо наступне:

    sudo /usr/share/checkbox/scripts/create_connection -S SECURITY_TYPE -K PASSWORD SSID_NAME
    

    Якщо SECURITY - це тип захисту, який використовує маршрутизатор (WPA, WEP), PASSWORD є .. ну .. пароль і SSID_NAME - це SSID ім'я маршрутизатора. Наприклад:

    sudo /usr/share/checkbox/scripts/create_connection -S wpa -K LinuxFTW Virus
    

    Буде створено зв’язок для Менеджера мережі, який повинен виглядати приблизно так:

      $ sudo /usr/share/checkbox/scripts/create_connection -S wpa -K LinuxFTW Virus
      [sudo] password for cyrex: 
      Connection Virus registered
      Connection Virus activated.
    
  2. Після цього слід отримати IP-адреса, присвоєну маршрутизатору. Якщо не просто так sudo dhclient wlan0(припустимо, що wlan0 - це назва вашого інтерфейсу). Ви також можете перевірити підключення вашого менеджера мережі за допомогою nmcli, як це: nmcli cякий повинен показувати щось подібне:

     $ nmcli c
      NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
      Xcentral                  f51a5a64-8a91-47d6-897c-28efcd84d2b0   802-11-wireless   Fri 22 Mar 2013 02:25:54 PM VET   
      Realtek                   9ded7740-ad29-4c8f-861f-84ec4da87f8d   802-3-ethernet    Tue 05 Mar 2013 01:18:31 AM VET   
      Intel                     e25b1fd8-c4ff-41ac-a6bc-22620296f01c   802-3-ethernet    Fri 05 Apr 2013 10:04:05 PM VET   
      Virus                     3f8ced55-507b-4558-a70b-0d260441f570   802-11-wireless   Tue 09 Apr 2013 06:31:10 AM VET   
    

Я згадую спосіб Менеджера мережі, тому що є кілька випадків, коли використання wpa_supplicantпросто не спрацює (Проблеми між маршрутизатором та бездротовою картою, проблеми із безпекою тощо). У моєму випадку всі спроби використання wpa_supplicantна одному ПК не спрацювали, але в іншому це спрацювало в перший раз, коли я спробував. Тому я розміщую обидва способи, щоб допомогти у кожному конкретному випадку та полегшити користувачам вирішити, який саме вони хочуть.

Частина 3: Легке з'єднання через nmcli

Хоча ми говорили про способи підключення до нього без мережевого менеджера, є також випадок використання nmcli (версія CLI менеджера мережі), коли вона застосовується. Для цього робимо наступне:

  1. Перевірте, який ESSID ми можемо бачити:

    nmcli dev wifi
    
  2. Перевірте ім'я ESSID і ми продовжимо його використання в наступному рядку, включаючи необхідний для нього пароль (сюди входять паролі типу WEP та WPA):

    nmcli dev wifi connect ESSID_NAME password ESSID_PASSWORD
    

    Ось приклад підключення до ESSID Linux5G

    скріншот

    Якщо у вас на комп’ютері кілька бездротових пристроїв, ви можете вказати, який з них використовувати, використовуючи такий ifnameпараметр:

    nmcli dev wifi підключити пароль ESSID_NAME ESSID_PASSWORD ifname WIRELESS_DEVICE_NAME

    Наприклад, у моєму випадку ім'я пристрою є wlp9s0таким, я б використовував цей рядок, щоб вказати пристрій, з яким я буду використовувати для з'єднання:

    скріншот

Більше інформації про nmcli можна отримати за допомогою параметра довідки. Наприклад, якщо ви хочете дізнатися про nmcli devвас, ви наберете nmcli dev help. Якби ви хотіли дізнатися більше про те nmcli dev wifi, ви б набрали nmcli dev wifi helpтощо.

Частина 4: Відключення від бездротового маршрутизатора

Існує кілька способів цього досягти:

  • Відключіть за допомогою "сили": sudo ifconfig wlan0 down

    Це вимкне інтерфейс бездротової картки (драйвер відключається). Щоб увімкнути, просто введіть, ifconfig wlan0 upпісля чого натисніть a sudo dhclient wlan0. Він все ще відображатиметься як підключений, якщо його переглядає Менеджер мережі, але насправді не буде з'єднання з маршрутизатором. Намагання pingпризведе до connect: Network is unreachableпомилки.

  • Відпустіть протокол DHCP: sudo dhclient -r wlan0

    Не забудьте зробити, sudo dhclient wlan0щоб призначити собі IP знову.

  • Відключіться за допомогою Менеджера мереж: nmcli nm enable false

    Де nm - параметр nmcli, який керує та встановлює стани Network Manager. Опція enableможе бути істинною або помилковою , тобто якщо встановлено значення false , всі мережеві з'єднання, якими керує Менеджер мережі, будуть відключені. зауважте, що nmcli не потребує кореневих дозволів.

Щоб побачити статус типу Менеджер мережі nmcli nm, він повинен відображати щось подібне до цього:

      $ nmcli nm
      RUNNING         STATE           WIFI-HARDWARE   WIFI       WWAN-HARDWARE   WWAN      
      running         connected       enabled         enabled    enabled         enabled   

Інший спосіб увімкнення або вимкнення підключення (підключення / відключення) полягає в наступному:

nmcli c down id NAME` - Will disconnect the connection NAME  

nmcli c up id NAME` - Will connect the connection NAME

Частина 5: Видалення з'єднання

Видалити наявне з'єднання досить просто. Перший тип в терміналі:

nmcli c

Він виведе щось подібне:

$ nmcli c
NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
Realtek                   9ded7740-ad29-4c8f-861f-84ec4da87f8d   802-3-ethernet    Tue 05 Mar 2013 01:18:31 AM VET   
PrivateSys                86b2b37d-4835-44f1-ba95-46c4b747140f   802-11-wireless   Sun 21 Apr 2013 07:52:57 PM VET   
pepe                      9887664b-183a-45c0-a81f-27d5d0e6d9d8   802-11-wireless   Thu 18 Apr 2013 02:43:05 AM VET   
Virus                     3f8ced55-507b-4558-a70b-0d260441f570   802-11-wireless   Tue 16 Apr 2013 11:33:24 AM VET   
Intel                     e25b1fd8-c4ff-41ac-a6bc-22620296f01c   802-3-ethernet    Sun 21 Apr 2013 08:12:29 PM VET   
Xcentral                  f51a5a64-8a91-47d6-897c-28efcd84d2b0   802-11-wireless   Fri 22 Mar 2013 02:25:54 PM VET  

Тепер скажемо, що ми хочемо видалити Xcentral , тоді переходимо до наступної команди:

nmcli c delete id Xcentral

Після цього він повинен виглядати приблизно так:

$ nmcli c delete id Xcentral
$ nmcli c
NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
Realtek                   9ded7740-ad29-4c8f-861f-84ec4da87f8d   802-3-ethernet    Tue 05 Mar 2013 01:18:31 AM VET   
PrivateSys                86b2b37d-4835-44f1-ba95-46c4b747140f   802-11-wireless   Sun 21 Apr 2013 07:52:57 PM VET   
pepe                      9887664b-183a-45c0-a81f-27d5d0e6d9d8   802-11-wireless   Thu 18 Apr 2013 02:43:05 AM VET   
Virus                     3f8ced55-507b-4558-a70b-0d260441f570   802-11-wireless   Tue 16 Apr 2013 11:33:24 AM VET   
Intel                     e25b1fd8-c4ff-41ac-a6bc-22620296f01c   802-3-ethernet    Sun 21 Apr 2013 08:12:29 PM VET   

Усі з'єднання зберігаються в /etc/NetworkManager/system-connections/

Якби я зараз заглянув у цю папку, я побачив би такі файли:

$ ls /etc/NetworkManager/system-connections
Intel  pepe  PrivateSys  Realtek  Virus

Це лише в тому випадку, якщо ви бажаєте відредагувати / видалити / додати з'єднання вручну.

Частина 6: Автоматичне з'єднання під час входу

Для випадків, коли ви хочете автоматично увійти до бездротового маршрутизатора, ось такі дії:

  1. Відкрийте interfaceфайл:

    sudo nano /etc/network/interfaces
    
  2. Додайте таку інформацію (якщо ваш інтерфейс називається wlan0):

    auto wlan0
    iface wlan0 inet static
    address ASSIGNED_IP
    netmask 255.255.255.0
    gateway THE_GATEWAY
    wireless-essid YOURSSID
    wireless-key WIRELESSKEY_HERE
    
  3. Збережіть файл та перезавантажте комп'ютер. Зауважте, що це буде збережено у звичайному текстовому файлі, до якого можна отримати доступ з одного комп’ютера.

Бонус: знайдіть назву вашого інтерфейсу бездротового зв'язку GUI Style

  1. Клацніть Менеджер мережі та перейдіть до Інформація про підключення

    скріншот

  2. Перейдіть на вкладку, в якій зберігається ваша бездротова карта

    скріншот

На цьому зображенні ця мережева карта має назву eth1 (Всередині дужок), але це може бути різним для кожного користувача. Зазвичай це буде wlan (як wlan0, wlan1, wlan2 ...), але це також може бути eth1, eth2 і т. Д. Тому вам потрібно побачити, яке ім'я воно має.

Ще один спосіб швидко знайти ім’я - це введення, iwconfigякий відображатиме всі наявні бездротові мережеві карти.


3
Якщо ви знайшли інший спосіб командного рядка, щоб знайти ім'я бездротового інтерфейсу. після введення iwlistнатискання клавіші двічі, і термінал автоматично набере ім'я інтерфейсу післяiwilst
Suhaib

2
Я міг правильно здогадатися, автор дивиться на повноту відповіді.
приєднатися

1
@douglaswalrath Ви б використовували цитати, як у "цукровій феї"
Луїс Альварадо

Дякуємо за велике керівництво! Цікаво, чи є інші способи підключення до бездротового зв'язку при запуску, не маючи пароля, написаного простим текстом у файлі ... У вас є ідеї?
Мікеле

1
@Michele Ця інша відповідь дає вказівки, як запобігти збереженню пароля в історії askubuntu.com/a/279333/237654
Гектор Корреа,

36

Це досить просто, якщо ви знаєте, як це зробити.

Показати доступні точки доступу:

nmcli dev wifi

Підключення до точки доступу:

nmcli dev wifi connect $ACCESS_POINT password $PASSWORD

2
Це набагато краще, ніж відповідь Алварадо, яка не працює в моєму випадку (Linux Mint 17.1). Але це досить просто і просто ПРАЦЮЄ!
Торбен

1
працював для мене на Linux Mint 17
David Okwii

Це виграшна відповідь для мене. Просто швидко, легко та безпечно. Дякую!.
GTRONICK

3
@Thorben IMHO це не прийнята відповідь, оскільки network manager command line interfaceне відповідає на початкове запитання How to connect without a network manager.
Ворак

+1, оскільки ця відповідь, хоч і не стосується цього питання, допоможе комусь у режимі відновлення та заощадить час. Відмінна робота користувача82110.
Луїс Альварадо

13

wicd постачається з двома утилітами командного рядка: wicd-curses та wicd-cli (вони можуть вимагати окремої установки) wicd-curse дозволяє налаштувати / підключити відключення до мереж (дротових чи бездротових) інтерактивно, wicd-cli пропонує той же функціонал, але через Тільки параметри командного рядка (корисно для сценаріїв) Я використовую його в роботі cron, щоб обходити деякі помилки автоматичного підключення:

wicd-cli -y -c -m MY_NETWORK_SSID

Також ви можете "просто" мати конфігурацію wpa_supplicant приблизно на кшталт:

/ і т.д. / мережа / інтерфейс:

auto wlan0 
iface wlan0 inet dhcp 
wpa-conf /etc/wpa.conf

і (як приклад WPA) /etc/wpa.conf:

network={
  ssid="MY_NETWORK_SSID"
  proto=RSN
  key_mgmt=WPA_PSK
  pairwise=CCMP_TKIP
  group=CCMP_TKIP
  psk="my network key in the clear"
}

до цього існує багато міркувань, серед яких питання безпеки наявності попереднього ключа чітким текстом (wpa_supplicant може дозволити вам представити зашифрований або, можливо, просто затуманений ключ, перевірити сторінку man), а також зробити цей файл належним і читабельним лише за коренем - пом'якшення.

Я думаю, що наявність декількох мережевих секцій дозволила б підключити декілька мереж за черговістю.


wicd не встановлений за замовчуванням, не впевнений, чи сумісний він із мережевим менеджером.
guntbert

це несумісне ВИ можете слідувати help.ubuntu.com/community/WICD
tr33hous

5

Я використовую wicd-curses, що на сьогоднішній день я вважаю найпростішим інтерфейсом користувача.

відмовки

Для встановлення конфігурацій потрібно використовувати (клавіша зі стрілкою праворуч ->); все інше очевидно з інструкцій на екрані.

Звичайно, вам потрібно знайти якийсь спосіб потрапляння в Інтернет, без цього wicd; Я припускаю, що ви вже вирішили це, інакше ви не надсилали б повідомлення.

(Це не вчасно до ОП, просто розміщуйте для нащадків, оскільки це питання все ще виникає в Google. До шукачів google: якщо ви читаєте це з комп’ютера кафе чи друга чи щось, можливо, ви можете десь використати провід щоб wicd-cursesвстановити sudo apt-get install wicd-curses, тоді переконайтесь, що ви протестуєте його в мережі, яка, як відомо, працює до виїзду!)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.