Как подключиться и отключиться от сети вручную в терминале?
Так как сетевой менеджер беспокоит меня так сильно, я хочу заменить его (возможно, wicd
или жеNM
из ппа: воланин).
Я не знаю, как подключиться и отключиться от сети через терминал без использования диспетчера сети.
Я хотел бы командной строки для управления сетью.
5 ответов
Это относится к 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, выполните следующие действия:
Откройте терминал и найдите беспроводное соединение:
iwlist wlan0 s
(S для сканирования. Wlan0 - моя беспроводная карта, но может отличаться для каждого пользователя. У некоторых есть eth0, у других wlan2.. Вам нужно
sudo
выполнить эту опцию. Чтобы узнать имя вашей беспроводной карты, просто введите iwlist и нажмите клавишу TAB. Это должно автоматически заполнить строку с именем сетевой карты. Вы также можете ввестиiwconfig
и найдите имя в списке, который будет отображаться.)Если вы не знаете название вашего беспроводного устройства, введите:
iwconfig
который покажет вам ваши проводные / беспроводные устройства и их имена. Это могут быть что-то вроде wlan0, wlan1, eth1, eth2..Поиск покажет вам все возможные точки доступа (AP), видимые для вас. После того, как вы увидите свой маршрутизатор в списке, попробуйте подключиться к нему:
Если у него нет пароля, сделайте следующее:
iwconfig wlan0 essid NAME_OF_ACCESS_POINT
Например
iwconfig wlan0 essid CYREX
после этого обязательно используйте
dhclient
так что вы можете получить динамический IP-адрес, если вам не назначен маршрутизатор. Это должно оставить вас подключенным к маршрутизатору CYREX.Если у него есть пароль, выполните:
iwconfig wlan0 essid CYREX key PASSWORD
Это должно соединиться, используя ПАРОЛЬ, который вы дали там.
Опять делаю
dhclient
после подключения, чтобы убедиться, что вы получили IP-адрес.Убедиться, что вы правильно подключены, всегда хорошо, поэтому выполните
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 самых популярных из них:
Откройте терминал и найдите беспроводное соединение:
iwlist wlan0 s
(S для сканирования. Wlan0 - моя беспроводная карта, но может отличаться для каждого пользователя. У некоторых есть eth0, у других wlan2.. Вам нужно
sudo
выполнить эту опцию. Чтобы узнать имя вашей беспроводной карты, просто введите iwlist и нажмите TAB. Это должно автоматически заполнить строку с именем сетевой карты. Вы также можете ввестиiwconfig
и найдите имя в списке, который будет отображаться.)Если вы не знаете название вашего беспроводного устройства, введите:
iwconfig
который покажет вам ваши проводные / беспроводные устройства и их имена. Это могут быть что-то вроде wlan0, wlan1, eth1, eth2..Поиск покажет вам все возможные точки доступа (AP), видимые для вас. После того, как вы увидите свой маршрутизатор в списке, попробуйте подключиться к нему:
Часть 2.1 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ WPA: Подключение к маршрутизатору WPA с помощью wpa_supplicant
Введите в терминале следующее (при условии, что у вас есть
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 }
До этого момента мы должны знать имя интерфейса нашей беспроводной карты (например: 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
Водитель.Итак, теперь, когда у нас есть имя карты беспроводного интерфейса и имя драйвера, мы приступаем к подключению к нему, используя уже созданный файл конфигурации в следующем формате:
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 от роутера.Некоторые пользователи сообщают об удалении хэша и оставлении в конфигурации только пароля, например:
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
(Аккуратный скрипт Python 3), который мы будем использовать в этом случае.
После выполнения шагов, упомянутых ранее, чтобы найти имя 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.
После этого вы должны получить 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-версия сетевого менеджера), когда это применимо. Для этого мы делаем следующее:
Проверьте, какой ESSID мы можем видеть:
nmcli dev wifi
Проверьте имя 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 Managernmcli 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: Автоматическое подключение при входе
Для случаев, когда вы хотите автоматически подключиться к беспроводному маршрутизатору, выполните следующие действия:
Открой
interface
файл:sudo nano /etc/network/interfaces
Добавьте следующую информацию (при условии, что ваш интерфейс называется 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
Сохраните файл и перезагрузите компьютер. Обратите внимание, что это будет сохранено в текстовом файле, доступ к которому можно получить с того же компьютера.
Бонус: найдите имя вашего беспроводного соединения в стиле GUI
Нажмите на Диспетчер сети и перейдите кинформации о подключении
Перейдите на вкладку, которая содержит вашу беспроводную карту
На этом изображении эта сетевая карта называется eth1 (внутри скобок), но она может отличаться для каждого пользователя. Обычно это будет wlan (например, wlan0, wlan1, wlan2...), но это также может быть eth1, eth2 и т. Д. Так что вам нужно посмотреть, какое у него имя.
Другой способ быстро найти имя - набрать iwconfig
который покажет все доступные карты беспроводной сети.
Это довольно легко, если вы знаете, как это сделать.
Показать доступные точки доступа WLAN:
nmcli dev wifi
Подключиться к точке доступа:
nmcli dev wifi connect $ACCESS_POINT password $PASSWORD
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 может позволить вам представить зашифрованный или, может быть, просто зашифрованный ключ, проверьте страницу руководства), а также делает этот файл доступным и доступным только для чтения. корнем является смягчение.
Я думаю, что наличие нескольких сетевых секций позволило бы соединить несколько сетей в порядке приоритета.
Я использую wicd-curses
, который я считаю самым простым пользовательским интерфейсом на сегодняшний день.
Вы должны использовать → (стрелка вправо ->
) устанавливать конфигурации; все остальное очевидно из экранных инструкций.
Конечно, вам нужно найти способ попасть в интернет без wicd
; Я предполагаю, что вы уже решили это, иначе вы не будете публиковать.
(Это не своевременно для ОП, просто пост для потомков, так как этот вопрос все еще задается в Google. Для тех, кто ищет Google: если вы читаете это с компьютера в кафе или на компьютере друга или чего-то еще, возможно, вы можете использовать провод где-нибудь получить wicd-curses
установлен с sudo apt-get install wicd-curses
; затем убедитесь, что вы проверили его в сети, которая, как известно, работает, прежде чем уйти!)
Решение для Ubuntu 18.04+ без использования NetworkManager
Работа на RasPi со свежеустановленным Ubuntu Server 20.04: NetworkManager (
nmcli
/
nmtui
и т. д.) еще не установлен, поэтому ручной подход может быть полезен, по крайней мере, для начала.
Базовая сеть Ubuntu, похоже, обрабатывается
netplan
начиная с версии 18.04, так что это то, что необходимо настроить для этих версий. Полезное прохождение дает ответ; короче (например),
Определите имя вашего интерфейса Wi-Fi,
(обычно это - ищите это в выводе из
ip a
). Теперь редактировать
/etc/netplan/50-cloud-init.yaml
,
$ sudo vi /etc/netplan/50-cloud-init.yaml
(доступны другие редакторы и т. д.) и добавьте
wifis:
раздел, как показано ниже,
network:
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
wifis:
wlan0:
optional: true
access-points:
"network-name-here":
password: "wifi-password-here"
dhcp4: true
включить это с помощью
$ sudo netplan apply
наконец, проверьте, работает ли ваш Wi-Fi, выполнив поиск
wlan0
интерфейс и соответствующие IP-адреса,
$ ip a