Linux нет сетевых интерфейсов
Обновлено: 08.07.2024
В Ubuntu подключение к сети настраивается с помощью сервиса Network Manager. Чтобы подключиться к сети, достаточно пару раз кликнуть мышкой, выбрать соединение - и готово. То же самое, и даже ещё проще, при использовании проводного соединения - тут интернет подключается автоматически, как только загрузился апплет.
Но не всегда доступен графический интерфейс: после неудачной установки драйвера или очередного обновления не запускается графическая оболочка, а на серверах она и вовсе не используется. В этой небольшой инструкции будет разобрана настройка сети Ubuntu из консоли. Мы поговорим о том, как настроить получение IP-адреса по DHCP, а также настроить работу DNS. Рассмотрим ручную и автоматическую настройку, также попробуем сделать это через системные конфигурационные файлы.
Как работает сеть?
Перед тем, как перейти к самим командам, давайте немного разберёмся в теории работы сети. Это нужно, чтобы вы не просто выполнили какие-то непонятные команды, а поняли всю суть того, что мы будем делать и как выполняется настройка локальной сети Ubuntu.
Компьютеры обмениваются между собой информацией с помощью пакетов. Все данные в сети интернет передаются с помощью пакетов небольшого размера. Если не углубляться в подробности, то каждый пакет содержит адрес отправителя, адрес получателя и сами данные. Эти адреса есть не что иное, как привычные нам IP-адреса. Кроме IP, у компьютера есть физический адрес, который используется для общения между компьютерами в локальной сети. Это MAC-адрес? и задается он производителем сетевой карты.
Как только компьютер подключился к сети, независимо от того проводное это соединение или беспроводное, он может общаться только с компьютерами в локальной сети и только по физическим адресам. Для того, чтобы получить доступ в Глобальную сеть, машине в ней нужно получить IP-адрес. Для этого используется протокол DHCP. Если кратко: наш компьютер спрашивает все компьютеры в локальной сети, кто здесь DHCP-сервер, DHCP ему отвечает и выдаёт IP-адрес. Таким же образом компьютер узнаёт IP маршрутизатора, через который он может получить доступ к Сети, а затем пытается найти DNS-серверы или узнать стандартные у маршрутизатора. С теорией разобрались, перейдем к практике.
Настройка сети через терминал в Ubuntu
Тут мы рассмотрим автоматическую настройку сети для Ubuntu 16.04 без Network Manager с помощью стандартных скриптов системы, которые остались от Upstart и пока всё ещё используются. Давайте сначала определим, какие шаги нам нужно предпринять, чтобы всё заработало:
- Включаем сетевой интерфейс и подключаемся к сети;
- Устанавливаем IP-адрес;
- Получаем адреса DNS-серверов.
Собственно, готово. Эти шаги очень символичны, потом что система всё сделает за нас сама. Нам нужно только выполнить нужные настройки. Но сначала давайте посмотрим, какие сетевые интерфейсы подключены к системе. Мне нравится команда:
Но если хотите, можете использовать ifconfig:
В нашей системе только один интерфейс - это enp0s3, есть еще lo, но он виртуальный и указывает на эту машину.
Настройки сети находятся в файле /etc/network/interfaces.
Нас будут интересовать в этом файле строчки auto и iface. Первая указывает, что нужно активировать интерфейс при загрузке, вторая же определяет настройки самого интерфейса.
Настройка динамического получения IP-адреса
Добавьте в этот файл такие строки, чтобы запускать интерфейс при загрузке и получать IP-адрес автоматически по DHCP:
auto enp0s3
iface enp0s3 inet dhcp
Синтаксис строки auto прост. Он состоит из самой команды и имени сетевого интерфейса. Рассмотрим подробнее:
$ iface интерфейс inet тип
Тип получения IP-адреса может иметь несколько значений, но нас в этой статье будут интересовать только два: dhcp и static.
После завершения настройки сохраните файл и перезапустите сетевой сервис:
sudo service networking restart
Всё, если сетевой кабель подключён, и вы всё сделали правильно, Сеть будет работать.
Настройка статического адреса Ubuntu
При настройке статического IP-адреса компьютер не будет связываться с DHCP-сервером, поэтому здесь придётся указать намного больше параметров.
Содержимое нашего конфигурационного файла будет выглядеть вот так:
auto eth0
iface eth0 inet static
address 192.168.1.7
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
С первыми двумя строчками все понятно, а следующие задают параметры настройки интерфейса:
- address - наш IP-адрес;
- gateway - шлюз, через который будем получать доступ в интернет;
- netmask - маска сети;
- network - адрес сети, имеет тот же адрес, что и шлюз, только с нулем вместо единицы;
- broadcast - широковещательный адрес сети, отправленный на него пакет придет всем компьютерам локальной сети.
Как видите, network и broadcast - это первый и последний IP-адреса сети. Теперь сохраните файл и перезапустите сеть:
sudo service networking restart
Если все параметры были указаны правильно, всё будет работать. Но если допущена хоть одна ошибка, доступ к сети вы не получите.
Это была автоматическая настройка локальной сети Гbuntu, но я ещё расскажу, как всё сделать вручную, без конфигурационных файлов.
Ручная настройка сети в Ubuntu
Предыдущий вариант хорош, если вы собираетесь его использовать постоянно, но если нужно только один раз настроить сеть через терминал, то редактировать конфигурационные файлы необязательно. Мы можем всё сделать с помощью команды ip. Дальше будет рассмотрена настройка сети вручную Ubuntu.
Эта команда используется для управления сетью и входит во все дистрибутивы по умолчанию.
Как и в предыдущем примере, смотрим сетевые интерфейсы:
После того, как мы узнали интерфейс, можно переходить к настройке.
Получение IP-адреса по DHCP
Сначала включаем интерфейс:
sudo ip link set enp0s3 up
Затем с помощью команды dhclient запрашиваем ip:
sudo dhclient enp0s3
Всё, настройка сети Ubuntu 16.04 завершена, у нас есть IP-адрес, и осталось только настроить DNS, но это мы рассмотрим ниже.
Настройка статического IP
sudo ip link set enp0s3 up
Устанавливаем IP-адрес, маску сети и broadcast-адрес для нашего интерфейса:
sudo ip addr add 192.168.1.7/255.255.255.0 broadcast 192.168.1.255 dev enp0s3
Указываем IP-адрес шлюза:
sudo ip route add default via 192.168.1.1
Здесь 192.168.1.7 - наш IP-адрес, 255.255.255.0 - маска сети, 192.168.1.255 - широковещательный адрес. Замените эти значения на свои.
Как видите, сеть работает. Если хотите поэкспериментировать на машине с рабочей сетью, её можно сбросить командой:
sudo ip -4 addr flush dev enp0s3
Настройка DNS
Служба DNS используется для преобразования доменных имен сайтов в IP-адреса. При получении IP-адреса автоматически через DHCP мы используем правильные DNS-серверы, но если мы выбрали статический IP, то DNS можно и не получить, поэтому придётся сделать всё вручную.
Если вам нужно настроить DNS так, чтобы он не сбивался после перезагрузки, необходимо использовать систему настройки сети Ubuntu. Для этого откройте файл /etc/network/interfaces и добавьте в него строчку после директив для нужного интерфейса:
dns-nameservers 8.8.8.8 4.4.4.4
Здесь 8.8.8.8 и 4.4.4.4 это IP-адреса DNS серверов, можете заменить их на свои. И можно использовать один, а не два. Дальше сохраните файл и перезапустите сеть:
sudo service networking restart
Если же вам нужно настроить DNS только для этого сеанса, то добавьте строчку в /etc/resolv.conf
sudo vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 4.4.4.4
После сохранения файла сеть будет работать полностью так, как нужно. Но последний способ пригоден только до перезагрузки, поскольку файл /etc/resolv.conf генерируется автоматически.
Выводы
В этой статье была рассмотрена настройка сети Ubuntu из консоли. Я пытался не просто показать команды, с помощью которых это можно сделать, но и объяснить, как это работает. Теперь вы будете знать, что нужно делать, если у вас нет доступа к графическому интерфейсу, но срочно нужно попасть в сеть. Если остались вопросы, пишите в комментариях!
У меня проблемы с подключением компьютера с Ubuntu 10.04 (Sony Vaio VGN-SR490) к Интернету через кабель Ethernet, подключенный непосредственно к маршрутизатору.
Я могу подключиться к Интернету с помощью того же кабеля с помощью компьютера с Windows, поэтому что-то не так с настройкой Linux.
Как мне понять, в чем проблема и решить ее?
Вот мои настройки сети в Linux:
Вот мои настройки сети в Windows (Vista):
Я подверг цензуре свой IP-адрес из этих результатов. Если эта информация нужна, просто дайте мне знать.
Вот содержание /etc/network/interfaces :
После добавления auto eth0 вот последние результаты:
Вот результаты запуска modprobe:
Я удалил Linux с моего компьютера и установил Windows XP по просьбе некоторых людей, комментирующих этот вопрос. Я установил и запустил программу, чтобы узнать подробности о сетевой карте. Вот эта информация:
Похоже, список сетевых адаптеров пуст. Теперь я установлю двойную загрузку Windows XP и Ubuntu Linux. Я до сих пор не могу получить доступ к Интернету, даже через Windows. Интересно, это может быть аппаратная проблема с компьютером или проблема с самим роутером. Другие компьютеры могут подключаться к этому же маршрутизатору и нормально работать. (Вот так я и публикую это!)
Спасибо, что остались со мной. Я постарался немного укоротить ваш пост, чтобы нам было понятнее (вы также можете удалить несколько комментариев, если хотите). Похоже, что ваша ошибка очень распространена в Ubuntu и VMware. Вы на самом деле работаете Ubuntu себя в качестве виртуальной машины? Или на компьютере установлена Ubuntu? Поисковый запрос SIOCSIFADDR в Интернете: ни одно такое устройство не вызывает никаких проблем , но, похоже, оно связано с Ubuntu как виртуальной машиной. Не могли бы вы опубликовать результаты dmesg | grep eth, а также посмотрите, перечислены ли какие-либо сетевые интерфейсы с помощью lspci @slhck Нет, Ubuntu не работает как виртуальная машина. Я установил Ubuntu в качестве операционной системы на моем компьютере. VMware установлен, но в данный момент не работает. Интересно, что я только что загрузил свой компьютер с Ubuntu LiveCD, и у меня точно такая же проблема, даже после того, как вы следовали инструкциям на LiveCD. Я начинаю сильно подозревать, что это аппаратная проблема. @ Linker3000 Результаты запуска dmesg | grep eth были пустыми, и я не вижу никаких сетевых интерфейсов, перечисленных с использованием lspci Можете ли вы опубликовать mke / модель машины или, если это DIY, производитель и модель материнской платы ИЛИ если вы можете загрузить Windows, посмотрите, какой сетевой интерфейс указан в диспетчере устройствПрежде всего, ваш Ethernet не управляется Ubuntu. Попробуйте ifconfig -a вместо просто ifconfig , чтобы вы могли видеть все ваши сетевые устройства, управляемые или нет. Если вы делаете см ethX в ifconfig -a списке, то решение должно быть простым, и вы , казалось, получили половину. Следующее должно войти в ваш /etc/network/interfaces файл:
Первая строка «активирует» управление интерфейсом, а вторая строка устанавливает для него DHCP и IP.
Однако, если вы даже не видите никаких интерфейсов ethX ifconfig -a , это проблема с драйверами (Ubuntu даже не видит интерфейс). Чтобы решить эту проблему, либо проверить из диспетчера устройств Windows' для PCI Vendor ID и Device ID вашей сетевой карты, которую вы можете Перекрестная ссылка здесь и посмотреть , если вы можете найти драйвер для этого (Vendor ID является производителем, Device ID это точная модель сетевой карты). Альтернативный способ in-linux сделать это через lspci .
В Windows 7 получение идентификаторов поставщиков / устройств осуществляется через диспетчер устройств - откройте узел «Сетевые интерфейсы», дважды щелкните свою сетевую карту, нажмите «Сведения» и выберите «Идентификаторы оборудования» в раскрывающемся списке. Идентификатор поставщика - это 4 шестнадцатеричные цифры после VEN_ префикса, а идентификатор устройства - это 4 шестнадцатеричные цифры после &DEV_ сразу после поставщика.
Всем привет! На ноуте HP стоит Win10 и Linux 19.10. Интернет проводной, но работает только у Винды. В Линуксе IP, DNS, gateway прописаны. К локалке он подключается легко. А вот ipconfig - a машина оставляет без ответа. lspci | ergrep -1 –color ‘network|ethernet’ аналогично
В Интернете пишут, что Винда не отдает карту при отключении и загрузке Линукса. Release.bat файлик для Винды не принес успеха. Принудительно у Винды сетевую не отключаю, чтобы не остаться без связи с форумом. Что не так делаю?
Какой вообще адаптер? Внешний usb? Или внутренний?
А, понятно, внутренний. Извиняюсь. lspci -k | grep Ethernet
Учти, unix-системы регистрозависимы. Так сложилось. Поэтому, ethernet и Ethernet для команды grep — разные строки.
ipconfig существует в природе :) Другое дело, что у него не будет сетевого интерфейса без драйвера. Нужно понять, какая сетевуха, и какой нужен драйвер.
Точнее, lspci -k | grep -C1 Ethernet
Ubuntu 19.10 (Eoan Ermine) reaches End of Life on July 17 2020
В Линуксе IP, DNS, gateway прописаны
И в чём тогда проблема?
ipconfig - a машина оставляет без ответа
Попробуй без опечаток,
В grep есть ключ -i для игнорирования регистра.
Да. Но по умолчанию поведение именно такое.
ТС даже попытался его использовать. Но, видимо, инструкцию читал в виде фотографии, снятой алкоголиком на нокию 2600, и у него получилось egrep -1 вместо egrep -i
Они постоянно совершают странные ошибки при использовании Linux, сталкиваются с крайне необычными проблемами на Linux из-за первого, пытаются решить проблемы еще более странными способами, при этом крайне сложно понять, насколько они понимают советы на форуме, и обычно уходят с форума на середине обсуждения, и остается только гадать как и решена ли их проблема.
Они постоянно совершают странные ошибки при использовании Linux, сталкиваются с крайне необычными проблемами на Linux из-за первого, пытаются решить проблемы еще более странными способами, при этом крайне сложно понять, насколько они понимают советы на форуме, и обычно уходят с форума на середине обсуждения, и остается только гадать как и решена ли их проблема
Это точно. Бесит эта манера. Даже если уходишь обратно на винду, то так и напиши. Зачем бросать на полпути? Люди сидят и думают как тебе помочь, а ты уже на все плюнул.
Network Manager - удобная утилита для управления сетевыми подключениями в Linux, используется по умолчанию во всех основных графических оболочках, что предоставляет пользователю простой и единообразный интерфейс настройки сети. Также Network Manager поддерживает Wi-Fi, 3G и VPN подключения, позволяя легко создавать их в графическом режиме. Но бывают ситуации, когда Network Manager неожиданно ломается, оставляя непривычного к консоли пользователя буквально без связи с внешним миром. В данной статье мы рассмотрим некоторые типовые проблемы, которые достаточно легко устраняются, но при этом могут серьезно испортить жизнь начинающим.
Network Manager - устройство не управляется
Достаточно простая неисправность, точнее даже не неисправность, которая проявляется в том, что Network Manager не может управлять вашим сетевым устройством.
Причина такого поведения лежит в том, что Network Manager не является единственным способом управления сетевыми подключениями в Linux и если он видит, что сетевой адаптер был настроен другим методом, то перестает управлять им. Это вполне корректное поведение, предоставляющее администратору всю полноту власти над системой и обеспечивающее приоритет ручных настроек над автоматическими.
Удалим из этого файла все строки кроме:
На скриншоте выше как раз видны ручные настройки для сетевого адаптера ens33, которые и блокировали работу Network Manager с этим интерфейсом.
После чего перезапустим службу командой:
После чего Network Manager снова возьмет контроль над сетевым интерфейсом.
Для недопущения подобной ситуации в дальнейшем следует внимательно относиться к ручным настройкам сети и не допускать подобных изменений, если вы желаете и далее использовать Network Manager.
Network Manager не видит сеть
Более сложная неисправность, которая заключается в том, что Network Manager вообще не видит сетевых адаптеров, причины ее возникновения нам неизвестны, но приходилось достаточно часто сталкиваться с ней на промежуточных выпусках Ubuntu.
Кстати, данная неисправность может послужить причиной ручной настройки сетевого интерфейса, которое в последствии будет блокировать работу Network Manager, но ее также несложно вылечить, для этого нужно создать пустой файл:
И перезапустить службу:
Для дальнейшей работы Network Manager наличие данного файла необязательно, т.е. вы можете его удалить, но Network Manager продолжит работать нормально.
Как видим, предложенные нами способы восстановления здоровья Network Manager просты и, надеемся, помогут вам сэкономить время и нервы, когда вы столкнетесь с подобной проблемой.
Читайте также: