Не работает вторая сетевая карта ubuntu
Обновлено: 05.07.2024
После утреннего обновления Ubuntu моя сетевая карта была отключена. После перезагрузки машины в Win10 сетевая карта все еще работает, поэтому это конфигурация Ubuntu.
Я решил это следующим образом:
Это перечислило значения "логического имени":
У меня Dell T7400, поэтому я знаю, что это устройство Broadcom NetXtreme BCM5754. Служба поддержки Dell не предоставляет драйверов Ubuntu, но они вам на самом деле не нужны. Каким-то образом мое имя устройства Ethernet было переименовано.
sudo vi / etc / network / interfaces
Добавьте логическое имя в конец файла:
Наконец, включите интерфейс:
Затем активируйте Enable Networking .
Если это не решит, попробуйте запустить
для редактирования любой странной конфигурации в соединениях.
Вы также можете увидеть, что NetworkManager делает с этими командами.
если ваше сетевое устройство говорит unmanaged , это означает, что NetworkManager не будет пытаться использовать это устройство для подключения.
Настроить сеть с помощью netplan
заменить eno1 каким бы ни было ваше устройство (мое было ens33 ). Чтобы увидеть список устройств, запустите ip addr .
Наконец примените новые конфигурации
Я пробовал решения выше, и они не работали.
Что мне помогло, так это отключение Wi-Fi с помощью значка сети в правом верхнем углу графического интерфейса Ubuntu, а затем перезапуск диспетчера сети с помощью:
Я думаю, что наличие работающего проводного соединительного кабеля и подключенной карты WLAN к сети Wi-Fi одновременно создает конфликт.
У меня была та же самая проблема - мой недавно установленный Ubunut 18.04 не обнаруживал мое соединение с Ethernet ни на секунду, хотя светодиод на порту постоянно мигал, как будто это было нормально. Я набрал lshw -C на терминале и среди отображаемых выводов не было eth0 (это относится к соединению Ethernet, отсутствие eth0 означает отсутствие соединения Ethernet). Я искал в Интернете и обнаружил, что конкретный драйвер Ethernet может отсутствовать в Ubuntu.
Я понизил ядро и. лихорадочно потратил более двух дней, пытаясь решить проблему.
Решение: я переустановил Ubuntu 18.04, и это решило мою проблему. Я не знаю, что пошло не так в первой установке.
Подобные проблемы здесь, это может быть связано с этой ошибкой или этой ошибкой в NetworkManager.
Я обхожу эту проблему, используя ifupdown вместе с ifplugd для правильного определения, подключен ли разъем к разъему или нет (я работаю на ноутбуке), и у меня больше нет проблем с подключением.
В 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 из консоли. Я пытался не просто показать команды, с помощью которых это можно сделать, но и объяснить, как это работает. Теперь вы будете знать, что нужно делать, если у вас нет доступа к графическому интерфейсу, но срочно нужно попасть в сеть. Если остались вопросы, пишите в комментариях!
Уникальность ему предоставляет IP-адрес. IP-адрес — это последовательность единиц и нолей, равная 32 знакам (1100100111. ) — страшно и непонятно :).
Для наглядности и удобства эту последовательность разбили на 4 равные части и перевели в десятичную систему исчисления.
То есть максимально возможная группа цифр — это 255.255.255.255.
Маска подсети:
Что такое маска подсети? А это часть ip-адреса. IP-адрес поделили на две неравные части. Первые 24 знака (бита) — маска, а остальные 8 — адрес хоста в подсети.
Маска подсети нужна для определения того, является ли компьютер которому отправляется пакет, компьютером той же подсети, что и наш. Если маска у нас одна, тогда шлем напрямки к компу-получателю, если же нет, то шлем пакет шлюзу (шлюз — это комп, маршрутизатор или программа для сопряжения компьютерных сетей, использующих разные протоколы).
Как работает сеть? Если сказать просто, то так: компьютер отсылает пакет абы куда :), но в пакете есть информация в которой записано кому он предназначен — информация о получателе. Пакет может прийти хосту, для которого он не предназначен. Хост проверит по записанной ключевой информации принадлежность пакета, убедится, что пакет не для него, и выбросит его как ненужный. И так происходит пока пакет не придет к получателю.
Что за информация записана в пакете, по которой хосты определяют принадлежность пакета получателю?
Записаны
MAC-адрес получателя и ip-адрес получателя. MAC-адрес вещь уникальная, в пределах земного шара :).
При тривиальных условиях, то есть когда компьютеры в одной подсети, записывается MAC-адрес получателя и ip-адрес получателя, а когда пакет шлем через шлюз, то в пакете указывается MAC-адрес шлюза (его мы узнаем из ip-адреса шлюза с помощью ARP-запроса) и ip-адрес компьютера-получателя.
DNS-сервер — это компьютер, который знают всё про всех :). Это глобальное определение.
На деле, всё примерно так: есть DNS-серверы национальные (российский, украинский, белорусский, немецкий, . ), под ними DNS-серверы региональные (калининградская область, ленинградская область и т.д.), под региональными — местные DNS-серверы. Национальные серверы знают друг о друге и о серверах которые ниже, региональные знают о серверах которые выше и ниже них. В общем железа хватает, для того, чтобы определить что кому переслать.
Если же DNS-сервер не отвечает, то мы отправляем запрос второму DNS-серверу.
Если у вас не работает интернет, проверьте, может быть не прописаны или прописаны но неправильно DNS-серверы.
IP-адреса есть уникальные (белые, реальные, внешние) и неуникальные (серые, внутренние).
Адреса, относящиеся к подсетям, представленным ниже, не используются в интернете в качестве реальных адресов.
- 10.0.0.0 — 10.255.255.255 (одна сеть класса A)
- 172.16.0.0 — 172.31.255.255 (шестнадцать сетей класса B)
- 192.168.0.0 — 192.168.255.255 (256 сетей класса C)
Это «серые», «внутренние» адреса. Они используются в локальных компьютерных сетях, которые если и имеют выход в интернет, то только через шлюз, у которого есть внешний ip-адрес. Если у этого шлюза вторая сеть — интернет, и адрес внешний, то необходимо настроить на нем технологию транслирования сетевых адресов (network address translation, NAT). Это делается для того, чтобы сетевые пакеты из локальной сети, прошедшие через него в интернет, не имели серого адреса-отправителя, т.к. в этом случае сервер, для которого предназначен пакет, не поймет, кому именно из миллионов локальных сетей возвращать ответный пакет. При использовании NAT, шлюз меняет адрес отправителя на свой внешний адрес, а у себя записывает, что «ответные пакеты с этого сервера перенаправлять такому-то компьютеру. ».
В этом случае используется SNAT (source network address translation).
Если же нам необходимо изменять адрес получателя (например, в нашей локальной сети есть сервер терминалов с серым адресом, а мы бы хотели иметь к нему доступ из интернета), то можно использовать на нашем шлюзе DNAT (destination network address translation) — «проброс портов».
То есть мы указываем в правилах файервола, что пакеты, предназначенные нам и пришедшие на порт 3160, перенаправлять на внутренний серый адрес сервера терминалов.
Определение состояния сетевых устройств и средств.
Если рассматривать самое простое соединение, т.е. компьютер в локальной сети и получает настройки автоматически, то необходимо выполнить команду:
Далее, для изменения настроек нам понадобятся права суперпользователя, по этому будем использовать программу sudo.
sudo dhclient eth0
(команду dhclient надо запускать с правами суперпользователя).
Команда ifconfig (без параметров), отображает информацию только об активных сетевых интерфейсах.
Просмотреть информацию по всем интерфейсам можно командой ifconfig -a, выбрать необходимый из них (eth0, или eth1, или eth0:1) и работать с ним.
В Ubuntu имена сетевых устройств имеют вид ethN, где N — число, означающее номер устройства связи в системе.
Нумерация устройств начинается с нуля. Если в компьютере две сетевых карты, то они будут с идентификаторами eth0 и eth1. Если в сетевую карту ethN вставлен сетевой провод, идущий в модем, роутер или свитч, будет написано «RUNNING», на первом рисунке это видно.
Интерфейс eth0 — это карта Ethernet, к которой можно подключить сетевой кабель. В текущий момент сетевой кабель подключен, поэтому интерфейс активен, и для него отображаются ip-адрес, широковещательный адрес и маска подсети:
Интерфейс eth0 — карта Ethernet. Сетевой кабель подлючен, интерфейс активен, присвоен ip(192.168.1.254) и маска подсети(255.255.255.0):
Интерфейс lo — интерфейс обратной петли и позволяет компьютеру обращатся к самому себе. Интерфейс имеет ip-адрес 127.0.0.1 и необходим для нормальной работы системы:
Команда ifconfig -a удобна в тех случаях, когда надо быстро выяснить состояние интерфейсов, в частности, если необходимо узнать их ip-адреса. Помимо сведений о конфигурации сетевых интерфейсов команда выдает еще много полезной информации, например, количество отправленных и полученных пакетов (параметры RX и TX).
Настройка сетевого интерфейса при помощи ifconfig
Команда ifconfig позволяет конфигурировать сетевой интерфейс по вашему усмотрению и предлагает широкие возможности для этого.
Чтобы получить подробную информацию по команде, пишем в терминале:
man ifconfig
Если компьютер со статическим ip-адресом и не имеет доступа ни к другим сетям ни к интернету, то команда настройки сетевого интерфейса будет такой:
sudo ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up
eth0 — идентификатор сетевого оборудования (сетевая карта).
192.168.1.2 — присваеваемый ip-адрес.
netmask 255.255.255.0 — присваеваемая маска подсети.
up — поднять интерфейс (то есть применить изменения, начать работу сетевой карте).
down — остановить интерфейс.
Команда: sudo ifconfig eth0 down Т.е. остановить работу сетевой карты с eth0 идентификатором.
Сначала выясняем наш старый mac-адрес, выполняем команду ifconfig без параметров.
Допустим он у нас такой: 00:00:00:00:00:01.
Производим следующие действия, то есть выполняем последовательность команд:
1) Отключаем интерфейс: ifconfig eth0 down
2) Изменяем MAC: ifconfig eth0 hw ether 00:00:00:00:00:01
3) Включаем интерфейс: ifconfig eth0 up
Все действия можно выполнить одной командой:
sudo ifconfig eth0 down && ifconfig eth0 hw ether 00:00:00:00:00:01 up
&& — означает, выполнить следующую команду при успешном выполнении предыдущей команды.
Как я писал выше, все эти настройки действительны лишь до перезагрузки системы. Сделаем их постоянными следующим образом:
Редактируем файл /etc/network/interfaces
Теперь приступим к редактированю файла настройки сетевых интерфейсов. Вот эти настройки и будут долговременными :), пока мы их не поменяем в файле снова.
Набираем команду ifconfig -a Видим список всех (активных и неактивных) сетевых устройств, которые именуются как eth0, eth1, eth2 и т.д.
На скриншоте вы видите три устройства:
еth0 — первая сетевая карта.
lo — локальная петля.
Локальная сеть подключена к сетевой карте eth0.
Почти вся информация о настройках сети и методах ее активации, хранится в файле /etc/network/interfaces, именно с ним мы и будем работать, используя редактор.
sudo gedit /etc/network/interfaces
auto lo — говорит о том, что интерфейс lo поднимается автоматически при загрузке системы.
Добавьте в файл строки:
auto eth0 iface eth0 inet static address 192.168.1.254 netmask 255.255.255.0 gateway 192.168.1.1
auto eth0 — сетевая карта eth0 поднимается автоматически во время загрузки системы.
iface eth0 inet static — указывает, что интерфейс (iface) сетевой карты (eth0) находится в диапазоне адресов ipv4 (inet) со статическим ip (static).
address 192.168.1.254 — статический ip адрес, тут пишем свой ip-адрес.
netmask — стандартная маска сети.
gateway — ip-адрес основного шлюза.
Редактирование закончено. Сохраняем и закрываем файл.
Запросите у вашего провайдера услуг Интернет (Internet Service Provider, ISP) адреса основного и вспомогательного серверов DNS и опишите их в файле /etc/resolv.conf.
На примере я укажу адрес DNS-сервер своего провайдера, вы должны ввести свои данные.
Откройте файл для редактирования:
sudo gedit /etc/resolv.conf
Вставьте свои данные:
nameserver 192.168.1.1 nameserver 172.16.0.1
Сохраните и закройте файл.
Для настройки DHCP и получения сетевых параметров автоматически, нужно добавить две строчки (пусть у меня так поднимется карта eth1).
sudo gedit /etc/network/interfaces
Вставьте строчки следующего содержания:
auto eth1 iface eth1 inet dhcp
Ваш файл будет выглядеть так:
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.254 netmask 255.255.255.0 gateway 192.168.1.1 auto eth1 iface eth0 inet dhcp
Если по каким-либо причинам вы хотите чтобы при загрузке у сетевой карты eth0 был другой mac-адрес, для этого нужно дописать строчку hwaddress ether 00:00:00:00:00:01:
auto eth0 iface eth0 inet static address 192.168.1.254 netmask 255.255.255.0 gateway 192.168.1.1 hwaddress ether 00:00:00:00:00:01
Несколько IP-адресов на одной сетевой карте
На одной сетевой карте может быть несколько ip-адресов, это бывает необходимо, если в коммутатор идут два провода от разных сетей и один от компьютера. В этом случае можно настроить на компьютере адреса обоих сетей без использования дополнительной сетевой карты. Для этого необходимо идентифицировать так называемый алиас (alias) к определенному сетевому интерфейсу, и выглядеть это будет так: сетевой_интерфейс:1 или сетевой_интерфейс:2, т.е. eth0:1 или eth1:2. Идентифицировать его можно следующим образом:
ifconfig eth0:1 192.168.0.5 netmask 255.255.255.0 up
Интересно то, что можно настроить основной интерфейс через dhcp (автоматически) dhclient eth0, а алиас eth0:1 в статику, чего я в альтернативных операционных системах не нашел.
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 просты и, надеемся, помогут вам сэкономить время и нервы, когда вы столкнетесь с подобной проблемой.
Читайте также: