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:

net

В нашей системе только один интерфейс - это enp0s3, есть еще lo, но он виртуальный и указывает на эту машину.

Настройки сети находятся в файле /etc/network/interfaces.

net1

Нас будут интересовать в этом файле строчки 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.

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

Как и в предыдущем примере, смотрим сетевые интерфейсы:

net

После того, как мы узнали интерфейс, можно переходить к настройке.

Получение 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

net2

Здесь 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-not-working-001.jpg

Причина такого поведения лежит в том, что Network Manager не является единственным способом управления сетевыми подключениями в Linux и если он видит, что сетевой адаптер был настроен другим методом, то перестает управлять им. Это вполне корректное поведение, предоставляющее администратору всю полноту власти над системой и обеспечивающее приоритет ручных настроек над автоматическими.

Удалим из этого файла все строки кроме:

network-manager-not-working-002.jpg

На скриншоте выше как раз видны ручные настройки для сетевого адаптера ens33, которые и блокировали работу Network Manager с этим интерфейсом.

После чего перезапустим службу командой:

После чего Network Manager снова возьмет контроль над сетевым интерфейсом.

network-manager-not-working-003.jpg

Для недопущения подобной ситуации в дальнейшем следует внимательно относиться к ручным настройкам сети и не допускать подобных изменений, если вы желаете и далее использовать Network Manager.

Network Manager не видит сеть

Более сложная неисправность, которая заключается в том, что Network Manager вообще не видит сетевых адаптеров, причины ее возникновения нам неизвестны, но приходилось достаточно часто сталкиваться с ней на промежуточных выпусках Ubuntu.

network-manager-not-working-004.jpg

Кстати, данная неисправность может послужить причиной ручной настройки сетевого интерфейса, которое в последствии будет блокировать работу Network Manager, но ее также несложно вылечить, для этого нужно создать пустой файл:

И перезапустить службу:

Для дальнейшей работы Network Manager наличие данного файла необязательно, т.е. вы можете его удалить, но Network Manager продолжит работать нормально.

network-manager-not-working-005.jpg

Как видим, предложенные нами способы восстановления здоровья Network Manager просты и, надеемся, помогут вам сэкономить время и нервы, когда вы столкнетесь с подобной проблемой.

Читайте также: