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

87

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

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

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

    
задан user7048 07.12.2010 в 21:59
источник

4 ответа

112

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

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

Часть 2 - Беспроводные маршрутизаторы с ключом WPA

  • Часть 2.1 . Подключение к WPA-маршрутизатору с помощью wpa_supplicant.
  • Часть 2.2 . Подключение к маршрутизатору WPA с помощью Network Manager.

Часть 3 - Простое подключение через nmcli

Часть 4 - Отключение от беспроводного маршрутизатора

Часть 5 - Удаление соединения (включая файл конфигурации)

Часть 6 - Автоматическое подключение при входе в систему

Бонус . Как найти имя сетевого интерфейса с помощью графического интерфейса.

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

В зависимости от вашей версии Ubuntu вам необходимо запустить ее, используя один из следующих способов:

Если вы используете Legacy init.d: ​​

sudo /etc/init.d/networking restart

Если вы используете метод Legacy Upstart:

sudo service network-manager restart

Если вы используете SystemD:

sudo systemctl start networking

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 варианта:

    • Проверьте, что ваш интерфейс UP: sudo ifconfig wlan0 up

    • Попробуйте добавить sudo при выполнении сканирования: sudo iwlist wlan0 s

    • Попробуйте подключить устройство, а затем выполнить резервное копирование:

      sudo ifconfig wlan0 down  
      sudo ifconfig wlan0 up
      

2. БЕСПРОВОДНЫЙ МАРШРУТ (WPA или WPA2 SECURITY)

В случаях, когда беспроводной маршрутизатор имеет пароль 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-SUPPLICANT

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

    wpa_passphrase SSID PASSWORD > CONFIG_FILE
    

    Пример: wpa_passphrase Virus LinuxFTW > wpa.conf

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

         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 РУКОВОДСТВО ПО УПРАВЛЕНИЮ СЕТИ

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

  1. После выполнения описанных выше шагов для определения имени SSID вашего маршрутизатора (помните, что часть iwlist выше), мы делаем следующее:

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

    Где БЕЗОПАСНОСТЬ - это тип безопасности, которую использует маршрутизатор (WPA, WEP), ПАРОЛЬ : .. .. пароль и SSID_NAME - это имя SSID Router. Например:

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

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

      [email protected]:~$ 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 , который должен показывать что-то вроде этого:

     [email protected]:~$ 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 password ESSID_PASSWORD ifname WIRELESS_DEVICE_NAME

Например, в моем случае имя устройства составляет wlp9s0 , поэтому я бы использовал эту строку, чтобы указать устройство, с которым я буду использовать для подключения:

Более подробную информацию о nmcli можно получить с помощью параметра help. Например, если вы хотите узнать о nmcli dev , вы должны набрать nmcli dev help . Если вы хотите узнать больше о nmcli dev wifi , вы должны набрать nmcli dev wifi help и т. Д.

4. ОТКЛЮЧЕНИЕ ОТ БЕСПРОВОДНОГО МАРШРУТА

Существует несколько способов сделать это:

  • Отсоедините «force»: sudo ifconfig wlan0 down

    Это отключит интерфейс беспроводной карты (драйвер выключится). Для включения просто введите ifconfig wlan0 up , а затем sudo dhclient wlan0 . Он по-прежнему будет отображаться как подключенный, если его просмотрит Network Manager, но на самом деле соединение с маршрутизатором не будет.Попытка ping будет вызывать ошибку connect: Network is unreachable .

  • Отпустите IP-адрес DHCP: sudo dhclient -r wlan0

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

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

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

Чтобы увидеть статус типа Network Manager nmcli nm , он должен показать что-то похожее на это:

      [email protected]:~$ 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

Он выведет что-то вроде этого:

[email protected]:~$ 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

После этого он должен выглядеть примерно так:

[email protected]:~$ nmcli c delete id Xcentral
[email protected]:~$ 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/

Если бы я сейчас смотрел в эту папку, я бы увидел следующие файлы:

[email protected]:~$ 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. Сохраните файл и перезагрузите компьютер. Обратите внимание, что это будет сохранено в текстовом файле, доступ к которому можно получить с того же компьютера.

BONUS

Найдите имя вашего беспроводного соединения GUI Style

  1. Нажмите «Сетевой менеджер» и перейдите в Информация о подключении

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

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

Еще один способ быстро найти имя, набрав iwconfig , который покажет всю доступную беспроводную сетевую карту.

    
ответ дан Luis Alvarado 07.12.2010 в 22:26
30

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

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

nmcli dev wifi

Соединение с точкой доступа:

nmcli dev wifi connect $ACCESS_POINT password $PASSWORD
    
ответ дан Ikem Krueger 13.09.2014 в 14:44
12

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

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

I think , имеющий несколько сетевых разделов, позволит подключать несколько сетей по приоритету.

    
ответ дан Philippe 31.12.2012 в 05:33
4

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

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

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

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

    
ответ дан isomorphismes 19.05.2015 в 16:45