Как подключиться и отключиться от сети вручную в терминале?

113

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

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

Я хотел бы командной строки для управления сетью.

user7048
источник
2
Если вы собираетесь возиться с диспетчером сетевых подключений вашей системы, я рекомендую вам делать это при подключении через проводной Ethernet, который с меньшей вероятностью потеряет соединение и будет проще в настройке из командной строки в случае необходимости.
Райан Томпсон
Я использую wicd-curses, который я считаю самым простым пользовательским интерфейсом на сегодняшний день. Вам нужно использовать <kbd> → </ kbd> (клавиша со стрелкой вправо ->), чтобы установить конфигурации; все остальное очевидно из экранных инструкций.
изоморфизм

Ответы:

139

Это относится к 12.04+, так как это те, которые я мог протестировать, но также может использоваться в более старых версиях. Я разделил это руководство на несколько частей, которые состоят из:

  • Часть 1 Беспроводные маршрутизаторы без пароля или ключа WEP
  • Часть 2. Беспроводные маршрутизаторы с ключом безопасности WPA или WPA2
    • Часть 2.1. Подключение к маршрутизатору WPA с помощью wpa_supplicant
    • Часть 2.2. Подключение к маршрутизатору WPA с помощью Network Manager
  • Часть 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 для сканирования. 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-адрес. Если это не так и выдает ошибку, например, Интерфейс не поддерживает сканирование, попробуйте следующие 2 варианта:

    • Проверьте, работает ли ваш интерфейс: 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 для сканирования. Wlan0 - моя беспроводная карта, но может отличаться для каждого пользователя. У некоторых есть eth0, у других wlan2 ... Вам нужно sudoвыполнить эту опцию. Чтобы узнать имя вашей беспроводной карты, просто введите iwlist и нажмите TAB. Это должно автоматически заполнить строку с именем сетевой карты. Вы также можете ввести iwconfigи найти имя в списке, который будет отображаться.)

    Если вы не знаете название вашего беспроводного устройства, введите: iwconfigкоторое покажет вам ваши проводные / беспроводные устройства и их названия. Это могут быть что-то вроде wlan0, wlan1, eth1, eth2 ..

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

Часть 2.1 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ WPA: Подключение к маршрутизатору 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
    

    Он должен показать нам много информации, но будет раздел под названием ** Drivers *, в котором показаны все доступные драйверы (они доступны при компиляции wpa_supplicant). В моем случае это так:

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

    Весь список хоста, 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. Некоторые пользователи сообщают об удалении хэша и оставлении в конфигурации только пароля, например:

         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 с помощью Network Manager

Хорошая вещь о сетевом менеджере состоит в том, что он поставляется с парой хороших сценариев и инструментов. Два из них nmcliи create_connection(Neat Python 3 script), которые мы будем использовать в этом случае.

  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
    

    Создаст соединение для Network Manager, которое должно выглядеть примерно так:

      $ 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   
    

Я упоминаю способ Network Manager, потому что есть пара случаев, когда использование 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 connect ESSID_NAME пароль ESSID_PASSWORD если имя 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а затем sudo dhclient wlan0. Он все равно будет отображаться как подключенный, если он просматривается Network Manager, но на самом деле соединение с маршрутизатором отсутствует. Попытка pingвыдаст connect: Network is unreachableошибку.

  • Освободите DHCP IP: sudo dhclient -r wlan0

    Не забудьте сделать, sudo dhclient wlan0чтобы назначить себе IP снова.

  • Отключиться с помощью Network Manager: nmcli nm enable false

    Где nm - это параметр nmcli, который управляет состояниями Network Manager и устанавливает их. Параметр enableможет иметь значение true или false , означая, что если установлено значение false , все сетевые подключения, управляемые Network Manager, будут отключены. обратите внимание, что nmcli не требует корневых разрешений.

Чтобы увидеть статус типа Network Manager 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

  1. Нажмите на Диспетчер сети и перейдите к информации о подключении

    Скриншот

  2. Перейдите на вкладку, которая содержит вашу беспроводную карту

    Скриншот

На этом изображении эта сетевая карта называется eth1 (внутри скобок), но она может отличаться для каждого пользователя. Обычно это будет wlan (например, wlan0, wlan1, wlan2 ...), но это также может быть eth1, eth2 и т. Д. Так что вам нужно посмотреть, какое у него имя.

Другой способ быстро найти имя - ввести текст, iwconfigкоторый покажет все доступные карты беспроводной сети.

Луис Альварадо
источник
3
Если нашли другую командную строку, способ найти имя беспроводного интерфейса. после ввода iwlistдважды нажмите tab и терминал автоматически iwilst
наберет
2
Я мог правильно угадать автора, глядя на полноту ответа.
Jobin
1
@douglaswalrath Вы бы использовали кавычки, как в «сахарной фее»
Луис Альварадо,
Спасибо за обширное руководство! Интересно, есть ли другие способы подключения к беспроводной сети при запуске без ввода пароля в виде простого текста в файле ... У вас есть идеи?
Мишель
1
@Michele этот другой ответ дает руководство о том, как предотвратить сохранение пароля в истории askubuntu.com/a/279333/237654
Гектор Корреа,
36

Это довольно легко, если вы знаете, как это сделать.

Показать доступные точки доступа WLAN:

nmcli dev wifi

Подключиться к точке доступа:

nmcli dev wifi connect $ACCESS_POINT password $PASSWORD
Икем Крюгер
источник
2
Это гораздо лучше, чем ответ Альварадо, за который проголосовали против, но в моем случае это не сработало (Linux Mint 17.1). Но это довольно просто и просто работает!
Торбен
1
работал для меня на Linux Mint 17
Дэвид Окви
Это победный ответ для меня. Просто быстро, легко и безопасно. Спасибо!.
GTRONICK
3
@ Торбен ИМХО, это не принятый ответ, потому network manager command line interfaceчто не отвечает на оригинальный вопрос How to connect without a network manager.
Vorac
+1, потому что этот ответ, хотя и не относится к вопросу, поможет кому-то в режиме восстановления и сэкономит время. Отличная работа user82110.
Луис Альварадо
13

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

wicd-cli -y -c -m MY_NETWORK_SSID

Также вы можете просто настроить wpa_supplicant что-то вроде:

/ etc / network / interface:

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 может позволить вам представить зашифрованный или, может быть, просто зашифрованный ключ, проверьте страницу руководства), а также делает этот файл принадлежащим и доступным только для чтения. корнем является смягчение.

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

Philippe
источник
wicd не установлен по умолчанию, не уверен, что он совместим с сетевым менеджером.
Гюнтберт
это несовместимо. Вы можете следить за help.ubuntu.com/community/WICD
tr33hous
5

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

WICD-проклятье

Вы должны использовать (клавиша со стрелкой вправо ->), чтобы установить конфигурации; все остальное очевидно из экранных инструкций.

Конечно, вам нужно найти какой-нибудь способ попасть в Интернет без wicd; Я предполагаю, что вы уже решили это, иначе вы не будете публиковать.

(Это не своевременно для ОП, просто пост для потомков, так как этот вопрос все еще задается в Google. Для тех, кто ищет Google: если вы читаете это с компьютера в кафе или на компьютере друга или чего-то еще, возможно, вы можете использовать провод где-нибудь чтобы wicd-cursesустановить его, а sudo apt-get install wicd-cursesзатем убедитесь, что вы проверили его в сети, которая, как известно, работает, прежде чем уйти!)

isomorphismes
источник