Главная >> Терминал >> Настройка сети из консоли в Ubuntu

Настройка сети из консоли в Ubuntu

В 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-серверов.

Собственно, готово. Эти шаги очень символичны, потому что система всё сделает за нас сама. Нам нужно только выполнить нужные настройки. Но сначала давайте посмотрим, какие сетевые интерфейсы подключены к системе. Мне нравится команда:

ip link show

Но если хотите, можете использовать ifconfig:

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

Если все параметры были указаны правильно, всё будет работать. Но если допущена хоть одна ошибка, доступ к сети вы не получите.

Это была автоматическая настройка локальной сети Ubuntu, но я ещё расскажу, как всё сделать вручную, без конфигурационных файлов.

Ручная настройка сети в 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

Здесь 192.168.1.7 - наш IP-адрес, 255.255.255.0 - маска сети, 192.168.1.255 - широковещательный адрес. Замените эти значения на свои.net2

Как видите, сеть работает. Если хотите поэкспериментировать на машине с рабочей сетью, её можно сбросить командой:

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 из консоли. Я пытался не просто показать команды, с помощью которых это можно сделать, но и объяснить, как это работает. Теперь вы будете знать, что нужно делать, если у вас нет доступа к графическому интерфейсу, но срочно нужно попасть в сеть. Если остались вопросы, пишите в комментариях!

22 комментария к “Настройка сети из консоли в Ubuntu”

  1. Расскажите, пожалуйста, что надо сделать, чтобы подключиться к интернету через WiFi?
    У меня на диске С: поставлены рядом WinXP и Ubuntu.
    Компьютер подключен к интернету через роутер и WiFi-соединение идет посредством модема
    D-Link и встроенную сетевую карту.
    При запуске системы WinXP подключение к сети сразу видно по включению индикатора
    (мигающий желтый свет) и после входа в систему интернет включается автоматически.
    При запуске системы Ubuntu подобного не происходит. Установка системы производилась
    с флешки. Система интернета "не видит".
    Буду благодарен за пошаговую инструкцию на электропочту mikhailsadkov@mail.ru.

    Ответить
  2. Добрый день! Подскажите, я не могу настроить сеть на убунту сервер) без графического интерфейса, у меня следующие настроики:

    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?

    Ответить
  3. Прошу совета. Есть комп с Ubuntu 16.04 подключённый к домашней локальной сети. В локалку интернет попадает из ADSL-модема через роутер. Ubuntu берёт инет оттуда же. Хотелось бы подключить к Ubuntu отдельный интернет от 4G USB-модема, чтобы софт на Ubutnu брал быстрый инет оттуда , но при этом оставить возможность доступа к Ubuntu из локалки (SSH, файловый сервер), а не заморачиваясь с VPN. Куда копать? Как разделить 2 интерфейса, но сохранить их работоспособнность?

    Ответить
  4. У меня вопрос, в соседних квартирах 2 разных сети с 2мя разными роутерами, которые обособленно подключены к провайдерам... можно ли сервер подключить к обеим сетям, чтобы видеть сервер из обеих сетей? как лучше сделать, куда копать?

    Ответить
    • Можно. Для этого тебе нужен сервер с белым ИП адресом в третьей "квартире" или дата-центре. Поднять там VPN-сервер и двумя роутерами "дозваниваться" на сервер. Притом отключить маршрут по-умолчанию, потому что тогда трафик интернета пойдет через сервер, что будет тормозить интернет.

      Ответить
  5. "в двух соседних квартирах", зачем городить огород из vpn и внешнего IP? Достаточно поставить 2 сетевые карты, в каждую локалку свою карту и наладить форвардинг. Ну это мое личное мнение. Ну или как вариант создать отдельный влан на роутерах и на него посадить сервер.

    Ответить
  6. Спасибо за статью, с радостью почитал вашу работу на тему ip 6, создание подсетей и тому подобное.

    Ответить
  7. Не получается. При перезагрузке сети выдает ошибку: 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!

    Ответить
  8. А в 2020-08 ещё был актуален network/interfaces?.. Проблема 21 века - найти актуальную инфу по линух на русском) на help.ubuntu так вообще примеры с ubuntu 12

    Ответить
  9. ВЫХОДИТЕ ИЗ АНАБИОЗА СРОЧНО!!!
    Ваш "способ" не работает в убунте уж лет 5 как.
    Скорее в гугль- искать волшебное солво Netplan...

    Ответить

Оставьте комментарий