В Ubuntu подключение к сети настраивается с помощью сервиса Network Manager. Чтобы подключиться к сети, достаточно пару раз кликнуть мышкой, выбрать соединение - и готово. То же самое, и даже ещё проще, при использовании проводного соединения - тут интернет подключается автоматически, как только загрузился апплет.
Но не всегда доступен графический интерфейс: после неудачной установки драйвера или очередного обновления не запускается графическая оболочка, а на серверах она и вовсе не используется. В этой небольшой инструкции будет разобрана настройка сети Ubuntu из консоли. Мы поговорим о том, как настроить получение IP-адреса по DHCP, а также настроить работу DNS. Рассмотрим ручную и автоматическую настройку, также попробуем сделать это через системные конфигурационные файлы.
Содержание статьи
- Как работает сеть?
- Настройка сети через терминал в Ubuntu
- Ручная настройка сети в Ubuntu
- Настройка DNS
- Выводы
Как работает сеть?
Перед тем, как перейти к самим командам, давайте немного разберёмся в теории работы сети. Это нужно, чтобы вы не просто выполнили какие-то непонятные команды, а поняли всю суть того, что мы будем делать и как выполняется настройка локальной сети Ubuntu.
Компьютеры обмениваются между собой информацией с помощью пакетов. Все данные в сети интернет передаются с помощью пакетов небольшого размера. Если не углубляться в подробности, то каждый пакет содержит адрес отправителя, адрес получателя и сами данные. Эти адреса есть не что иное, как привычные нам IP-адреса. Кроме IP, у компьютера есть физический адрес, который используется для общения между компьютерами в локальной сети. Это MAC-адрес и задается он производителем сетевой карты.
Как только компьютер подключился к сети, независимо от того проводное это соединение или беспроводное, он может общаться только с компьютерами в локальной сети и только по физическим адресам. Для того, чтобы получить доступ в глобальную сеть, машине в ней нужно получить IP-адрес. Для этого используется протокол DHCP. Если кратко: наш компьютер спрашивает все компьютеры в локальной сети, кто здесь DHCP-сервер, DHCP ему отвечает и выдаёт IP-адрес. Таким же образом компьютер узнаёт IP маршрутизатора, через который он может получить доступ к Сети, а затем пытается найти DNS-серверы или узнать стандартные у маршрутизатора. С теорией разобрались, перейдем к практике.
Настройка сети через терминал в Ubuntu
Тут мы рассмотрим автоматическую настройку сети для Ubuntu 16.04 без Network Manager с помощью стандартных скриптов системы, которые остались от Upstart и пока всё ещё используются. Давайте сначала определим, какие шаги нам нужно предпринять, чтобы всё заработало:
- Включаем сетевой интерфейс и подключаемся к сети;
- Устанавливаем IP-адрес;
- Получаем адреса DNS-серверов.
Собственно, готово. Эти шаги очень символичны, потому что система всё сделает за нас сама. Нам нужно только выполнить нужные настройки. Но сначала давайте посмотрим, какие сетевые интерфейсы подключены к системе. Мне нравится команда:
ip link show
Но если хотите, можете использовать ifconfig:
ifconfig
В нашей системе только один интерфейс - это enp0s3, есть еще lo, но он виртуальный и указывает на эту машину.
Настройки сети находятся в файле /etc/network/interfaces.
Нас будут интересовать в этом файле строчки auto и iface. Первая указывает, что нужно активировать интерфейс при загрузке, вторая же определяет настройки самого интерфейса.
Настройка динамического получения IP-адреса
Добавьте в этот файл такие строки, чтобы запускать интерфейс при загрузке и получать IP-адрес автоматически по DHCP:
Синтаксис строки auto прост. Он состоит из самой команды и имени сетевого интерфейса. Рассмотрим подробнее:
$ iface интерфейс inet тип
Тип получения IP-адреса может иметь несколько значений, но нас в этой статье будут интересовать только два: dhcp и static.
После завершения настройки сохраните файл и перезапустите сетевой сервис:
sudo service networking restart
Всё, если сетевой кабель подключён, и вы всё сделали правильно, Сеть будет работать.
Настройка статического адреса Ubuntu
При настройке статического IP-адреса компьютер не будет связываться с DHCP-сервером, поэтому здесь придётся указать намного больше параметров.
Содержимое нашего конфигурационного файла будет выглядеть вот так:
С первыми двумя строчками все понятно, а следующие задают параметры настройки интерфейса:
- address - наш IP-адрес;
- gateway - шлюз, через который будем получать доступ в интернет;
- netmask - маска сети;
- network - адрес сети, имеет тот же адрес, что и шлюз, только с нулем вместо единицы;
- broadcast - широковещательный адрес сети, отправленный на него пакет придет всем компьютерам локальной сети.
Как видите, network и broadcast - это первый и последний IP-адреса сети. Теперь сохраните файл и перезапустите сеть:
sudo service networking restart
Если все параметры были указаны правильно, всё будет работать. Но если допущена хоть одна ошибка, доступ к сети вы не получите.
Это была автоматическая настройка локальной сети Ubuntu, но я ещё расскажу, как всё сделать вручную, без конфигурационных файлов.
Ручная настройка сети в 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 и добавьте в него строчку после директив для нужного интерфейса:
Здесь 8.8.8.8 и 4.4.4.4 это IP-адреса DNS серверов, можете заменить их на свои. И можно использовать один, а не два. Дальше сохраните файл и перезапустите сеть:
sudo service networking restart
Если же вам нужно настроить DNS только для этого сеанса, то добавьте строчку в /etc/resolv.conf
sudo vi /etc/resolv.conf
После сохранения файла сеть будет работать полностью так, как нужно. Но последний способ пригоден только до перезагрузки, поскольку файл /etc/resolv.conf генерируется автоматически.
Выводы
В этой статье была рассмотрена настройка сети Ubuntu из консоли. Я пытался не просто показать команды, с помощью которых это можно сделать, но и объяснить, как это работает. Теперь вы будете знать, что нужно делать, если у вас нет доступа к графическому интерфейсу, но срочно нужно попасть в сеть. Если остались вопросы, пишите в комментариях!
Расскажите, пожалуйста, что надо сделать, чтобы подключиться к интернету через WiFi?
У меня на диске С: поставлены рядом WinXP и Ubuntu.
Компьютер подключен к интернету через роутер и WiFi-соединение идет посредством модема
D-Link и встроенную сетевую карту.
При запуске системы WinXP подключение к сети сразу видно по включению индикатора
(мигающий желтый свет) и после входа в систему интернет включается автоматически.
При запуске системы Ubuntu подобного не происходит. Установка системы производилась
с флешки. Система интернета "не видит".
Буду благодарен за пошаговую инструкцию на электропочту mikhailsadkov@mail.ru.
Смотрите подробную инструкцию здесь - https://losst.pro/nasrojka-wifi-v-ubuntu
Добрый день! Подскажите, я не могу настроить сеть на убунту сервер) без графического интерфейса, у меня следующие настроики:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
С вашими различается адресом и последней настройкой...
А еще прошу совет: Убунта установлена на сервер (домашний), загвоздка в настройках локальной сети, после чего будет приобретен статистический ip у ростелекома. Вопрос, как изменятся настройки? Может нужно настраивать сразу с белым ip?
Харош , слов нет.
нужно указать один dns 8.8.8.8
Спасибо)) Внятно и очень доступно!
Эта статья бесполезна даже для продвинутых линуксоидов.
В Ubuntu 17.10
sudo service networking restart
не работает.
Прошу совета. Есть комп с Ubuntu 16.04 подключённый к домашней локальной сети. В локалку интернет попадает из ADSL-модема через роутер. Ubuntu берёт инет оттуда же. Хотелось бы подключить к Ubuntu отдельный интернет от 4G USB-модема, чтобы софт на Ubutnu брал быстрый инет оттуда , но при этом оставить возможность доступа к Ubuntu из локалки (SSH, файловый сервер), а не заморачиваясь с VPN. Куда копать? Как разделить 2 интерфейса, но сохранить их работоспособнность?
У меня вопрос, в соседних квартирах 2 разных сети с 2мя разными роутерами, которые обособленно подключены к провайдерам... можно ли сервер подключить к обеим сетям, чтобы видеть сервер из обеих сетей? как лучше сделать, куда копать?
Можно. Для этого тебе нужен сервер с белым ИП адресом в третьей "квартире" или дата-центре. Поднять там VPN-сервер и двумя роутерами "дозваниваться" на сервер. Притом отключить маршрут по-умолчанию, потому что тогда трафик интернета пойдет через сервер, что будет тормозить интернет.
"в двух соседних квартирах", зачем городить огород из vpn и внешнего IP? Достаточно поставить 2 сетевые карты, в каждую локалку свою карту и наладить форвардинг. Ну это мое личное мнение. Ну или как вариант создать отдельный влан на роутерах и на него посадить сервер.
sudo service networking restart
выдает ошибку,
Failed to restart networking.service: unit networking,service not found.
Если ничего важного не запущено ребут вам поможет - sudo reboot
Спасибо за статью, с радостью почитал вашу работу на тему ip 6, создание подсетей и тому подобное.
Не получается. При перезагрузке сети выдает ошибку: Restarting networking (via systemctl): networking.serviceJob for networking.service failed because the control process exited with error code.
See "systemctl status networking.service" and "journalctl -xe" for details.
failed!
Все разобрался)))
Спасибо!
Да, херь полная. Вообще не в тему.
А в 2020-08 ещё был актуален network/interfaces?.. Проблема 21 века - найти актуальную инфу по линух на русском) на help.ubuntu так вообще примеры с ubuntu 12
ВЫХОДИТЕ ИЗ АНАБИОЗА СРОЧНО!!!
Ваш "способ" не работает в убунте уж лет 5 как.
Скорее в гугль- искать волшебное солво Netplan...
а как быть если Ubuntu в WSL ?