Настройка сети из консоли в 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-серверов.

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

Но если хотите, можете использовать 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.

Читайте также:  Исправляем неполадки связанные со звуком в Windows XP

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

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

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

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

Домашний интернет-шлюз. Начальная настройка 6-портового мини-компьютера на Ubuntu Server 20.04 LTS

Введение

Обновил я интернет до 500 Мбит/с, и пришло время заняться 100 Мбитным сервером, который работал на Pentium 3 и был уже на грани. Выбор пал на китайского зверя. Все, что нужно — имеется, потребление в обычном режиме не превышает 15W, запас производительности для дополнительных задач есть.

Установку ОС расписывать не буду («ОК — Далее — Далее»), отмечу только, что при установке требуется сконфигурировать хотя бы один сетевой интерфейс для доступа в интернет.

Для удобства я использую Midnight Commander и его текстовый редактор. Работать будем от root-пользователя:

Итак, у нас есть установленная Ubuntu Server, начнем с конфигурации остальных сетевых интерфейсов.

Netplan

В последних версиях Ubuntu появилась утилита Netplan, позволяющая настроить сеть в унифицированном формате и выбирать сетевой менеджер для работы. По умолчанию используется Systemd-networkd, я же выбрал NetworkManager, так как установил Web-интерфейс Cockpit, который использует именно NM для отображения части информации.
Синтаксис конфигурации Netplan очень строгий и лишний пробел или табуляция может вызвать ошибку.

Подробнее о функционале уже расписывали habr.com/ru/post/448400, так же различные примеры есть на сайте netplan.io/examples.

Посмотрим названия интерфейсов:

Перейдем в директорию /etc/netplan и откроем (F4 для МС) файл 50-cloud-init.yaml. Для сетевого интерфейса, который будет использоваться для подключения к интернету, определим получение настроек по dhcp (dhcp4: true). В моем случае это enp6s0. Для остальных укажем false и добавим параметр optional: true, т.к. интерфейс может быть ни к чему не подключен.

Для объединения интерфейсов в локальную сеть я использовал bridge, но, возможно, правильнее было бы использовать vlan. Создадим мост lan-br, зададим общий IP-адрес, DNS-сервер и пропишем объединяемые интерфейсы:

У меня будет собственный DNS-сервер, поэтому указываю адрес своего сервера в поле nameservers, можно указать например 8.8.8.8 (Google). Указываем версию и менеджер. В итоге должно получиться примерно так:

Сохраняем файл и проверяем/применяем конфигурацию:

DHCP-сервер

Настроим DHCP-сервер для того, чтобы клиенты могли получать IP-адреса автоматически.

В файле /etc/default/isc-dhcp-server правим строчку:

Переходим в /etc/dhcp, открываем dhcpd.conf и прописываем настройки:

Теперь клиенты должны получать адреса автоматически.

UFW (Uncomplicated Firewall) — инструмент для более легкой настройки iptables. Настроим фаервол и пересылку пакетов между интерфейсами. Переходим в/etc/ufw и в файле sysctl.conf раскомментируем строку:

Если Вы подключены через ssh перед началом откройте 22 порт:

Включим UFW, проверим состояние:

Зададим политики по умолчанию:

Разрешим доступ из локальной сети:

Читайте также:  Программы для повышения фпс в играх

Настроим NAT. Откроем файл before.rules и пишем следующее перед блоком *filter:

Сохраняемся и перезапускаем ufw:

Проверим iptables, должна появиться наша строчка:

На этом базовую настройку сервера можно считать законченной.

Заключение

Я не поднимал вопрос настройки DNS-сервера, так как планирую выпустить вторую часть, где будет изложена настройка Dnscrypt-proxy в роли DNS-сервера для локальной сети.

Настройка сети в Ubuntu Server 20.04 LTS

Сегодня в статье рассмотрим примеры по Настройки сети в Ubuntu Server 20.04 LTS. По сравнению с Ubuntu Server 16.04 LTS настройка осуществляется через утилиту Netplan.

NetPlan — это инструмент для управления настройками сети, представленный в Ubuntu начиная с версии 17.10 и выше.

Этот инструмент заменяет файл статических интерфейсов /etc/network/interfaces , который ранее использовался для настройки сетевых интерфейсов в Ubuntu. Теперь вы должны использовать /etc/netplan/*.yaml для ваших изменений в Ubuntu.

Новый файл конфигурации интерфейсов как вы поняли находится в каталоге /etc/netplan/*.yaml .
После чистой установки дистрибутива Ubuntu Server 20.04 в данной директории находится всего один файл c названием, ну вот тут могут быть разновидности, у меня он называется 50-cloud-init.yaml

Ещё стоит упомянуть что для конфигурирования сети могут быть использованы рендера — NetworkManager и networkd.

NetworkManager в основном используется на настольных компьютерах, а networkd в серверных дистрибутивах, хотя никто не мешает использовать их и в обратном порядке.

При использовании NetworkManager в качестве средства визуализации для управления интерфейсами будет использоваться графический интерфейс NetworkManager.

Настройка сети в Ubuntu Server 20.04

Есть два пути настройки сетевых интерфейсов:

  1. Получение IP адресов при помощи DHCP — автоматическая настройка
  2. Настройка статических IP адресов

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

Да, на чистой системе данная утилита не установлена по умолчанию. Её необходимо будет установить. Ну или можно воспользоваться командой ip. Я же человек старых правил ))), мне все-таки по душе утилита ifconfig поэтому набираем:

Вывод команды покажет все имеющиеся в системе сетевые интерфейсы. В моей системе команды выдает следующий результат:

Как видим из вывода имеются три сетевых интерфейса: enp0s3 ; enp0s8 ; enp0s9 .

Интерфейс enp0s3 выступает в качестве WAN интерфейса для системы. Остальные два enp0s8 и enp0s9 подключены к двум локальным сетям. В дальнейшем мы их объединим в сетевой мост.

Настройка сети в Ubuntu Server используя networkd и DHCP.

И так с интерфейсами определились, давайте теперь настроим наш интерфейс, который смотрит в инет, на получение автоматических настроек сети по DHCP

Открываем файл настроек Netplan

Файл должен выглядеть следующим образом (если не так, то редактируем):

Далее применим изменения:

Если в синтаксисе нет ошибок, то изменения применятся через 120 секунд, ну или сразу если Вы нажмёте Enter

Настройка сети в Ubuntu Server используя networkd и статические маршруты.

Если Вы пошли вторым путем и хотите настроить все IP адреса сами, то вот пример для настройки статических адресов:

  • addresses — это ip адрес который будет назначен вашей сетевой карте.
  • gateway4 — ip адрес вашего роутера
  • nameservers — тут перечисляются DNS сервера. Первый опять же наш роутер.
  • search — тут указываем домен в котором будет произведен поиск. Домен можно настроить при помощи DNS сервера

Далее сохраняем изменения:

Проверка параметров сети

Для проверки внесенных вами исправлений давайте наберем команду

Как видим на запрос ответил systemd-resolver 127.0.0.53

Также можем еще посмотреть вывод команды:

Как видим из данного вывода DNS указан для нашего сетевого интерфейса enp0s3 его же IP адрес.

Но глобальная переменная DNS является все также systemd-resolver.

Для изменения глобальной переменной необходимо проделать следующие действия:

  1. откройте и отредактируйте следующий файл:

Посмотрим еще раз на глобальные переменные DNS

Из вывода видно что наш DNS изменился на 10.5.5.1.

Но вывод nslookup также покажет systemd-resolver.

  1. Устанавливаем resolvconf

Открываем файл и вносим изменения:

Применим наши изменения

Теперь вывод nslookup покажет наш DNS сервер

На этом Настройка сети в Ubuntu Server 20.04 LTS закончена.

Если есть вопросы, то пишем в комментариях.

Настройка сетевого интерфейса в Ubuntu 18.04

Конфигурирование сетевого интерфейса в Ubuntu 18.04 для многих стало сюрпризом. Хотя всем привычный конфигурационный файл /etc/network/interfaces существует, в нем сказано:

Конфигурирование через ifupdown было заменено на netplan. настройка через /etc/netplan. Хотите вернуться к ifupdown установите его командой:

sudo apt install ifupdown

Устанавливать что-то иное не будем. Настроим то что есть. Для начала смотрим содержимое каталога /etc/netplan.

Посмотрим что в этом файле.

Конфигурационный файл пишется на языке YAML. Приведенные, в примере выше, настройки были сделаны еще на этапе установки операционной системы. Разберемся подробнее.

  • network — начало блока конфигурации сети;
  • ethernets — данный параметр сообщает, что далее пойдет настройка одноименного протокола;
  • enp0s3 — название конфигурируемого сетевого интерфейса. Вероятно, что в вашем случае название будет иным. Список всех интерфейсов можно посмотреть командой ifconfig -a;
  • addresses — блок IP-адресов назначаемых интерфейсу с префиксом сети. Один ip-адрес указывается как в примере, несколько адресов указываются в квадратных скобках “[ и ]”, разделяются запятыми;
  • gateway4 — сетевой шлюз IPv4;
  • nameservers — блок настройки серверов имен.
  • addresses — именно в блоке nameservers, указывают к каким серверам DNS обращаться. Указываются без сетевого префикса. Несколько адресов указываются в квадратных скобках “[ и ]”, разделяются запятыми.
  • version — версия языка YAML.
Читайте также:  Программы для автоматической установки программ на компьютер

Активируем текущие настройки командой:

Мы рассмотрели основные опции. Больше примеров настройки — на официальном сайте.

Как быть, если система не использует netplan?

Тут по старинке. Сначала получаем список доступных интерфейсов:

В данном случае имеется 2 сетевых интерфейса без IP-адресов (пока). Настраиваются средствами DHCP. Перейдем к настройкам.

sudo nano /etc/network/interfaces

Сервер, получающий IP от DHCP-сервера не очень хорошее решение. Приводим файл к виду:

Что это означает.

  • auto enp0s3 — автоматический запуск конкретного интерфейса;
  • iface enp0s3 inet static — сообщает о статическом конфигурировании;
  • address 10.10.2.6 — собственно, сам IPv4-адрес для данного интерфейса;
  • netmask 255.255.255.0 — сетевая маска
  • gateway 10.10.2.1 — IPv4-шлюз
  • dns-nameservers 8.8.8.8 — указываем DNS-серверы

sudo /etc/init.d/networking restart

Если все выполнено правильно, то дожидаемся процесса перезапуска службы.

Важно. Бывает ситуация, что файл настроек верный, но сервер не изменяет IP-адрес. В этом случае помогает перезапуск сервера командой:

Настройка сети в ubuntu 12.04 (2й шаг настройки сервера)

Это часть руководства для общественного пользования, но будут элементы понятные для меня.

Имея настроенный wi-fi модуль, переходим к созданию домашнего сервера. И начнем с настройки сети, пусть хотя бы интернет для начала будет на самом сервере, а потом уже будем его раздавать по воздуху на квартиру.

Настройка локальной сети со статическим ip

Честно сказать, я изначально ступил, можно было ничего и не настраивать через консоль, а воспользоваться NetworkManager’ом (NM), стандартная утилита для работы с сетью в ubuntu. Но я почему-то решил, что когда я отключу GUI (Graphic User Interface), то NM не заработает. Не могу ответить, прав ли я, но уже не хочется проверять, когда все настроил.

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

Для начала надо определить как называются наши интерфейсы.

Примерно так оно должно выглядеть, хотя может и eth1 и wlan1. Но нас интересует eth0, wi-fi пока не трогаем. Идем к файлу конфигурации сети.

Там мы увидим 2 строки или ничего, это как повезет. Вот туда надо добавить необходимые параметры конфигурации, в моем случае это

Пояснять не буду, все слова должны быть понятны и так. У меня провайдер выдает статичный ip внутри сети, поэтому и все настройки мне надо производить по договору. Если ip динамический, то комментируем строки 2-5, и раскомментируем первую.

Собственно все, после этого вся локальная сеть ожила. Но нам же нужен интернет.

Настройка PPTP подключения

Руководствуясь все теми же инструкциями с по настройке сети, настроем vpn-подключение.

И я вписал туда следующие параметры

Далее идем к файлу /etc/ppp/chap-secrets, кстати, в мануале неправильно указан путь, chap-secrets лежит в директории /etc/ppp

И вписываем одну строку с информацией из договора, логин пароль (ага, так я и написал свой пароль =) )

ttkvpn взят из предыдущего файла, это параметр remotename ttkvp. Мне провайдер выдает динамический внешний ip, если у вас статический, то можно дописать этот ip вместо звездочки.

Руководство обещает мне что теперь я смогу управлять VPN-соединение при помощи команд

Но на практике оно почему-то не всегда работает, а жаль..

Кончечно ручной запуск соединения — это не плохо, но хотелось бы чтобы vpn поднимался сразу при включении сервера. Делается это достаточно просто. Нужно вернуться к файлу /etc/network/interfaces и добавить туда еще 3 строки к уже существующим. Должны получить что-то типа такого

На этом, в большинстве случаев, можно прекратить настройку, но мне хотелось бы, чтобы локальные ресурсы сети провайдера, оставались провайдера, я не жмусь по поводу внешнего трафика. Раньше была такая проблема, когда тарифы были на объем трафика, но хотелось посмотреть сайты провайдера и при этом не хотелось попасть на трафик. Вот в этом случае нам и помогала статическая маршрутизация. Но теперь такой проблемы нет, но чтобы мы мой сервер был доступен из всех сегментов сети провайдера, мне таки придется настроить маршрутизацию.

Дальше весь текст будет идти для провайдера Информтек в городе Муроме, но чтобы понять суть и методы прочесть стоит.

В папке /etc/ppp/ip-up.d/ создаем файлик, например my_route

И пишем туда маршруты в следующем формате

Кстати у информтека можно подсмотреть маршруты вот на этой страничке Настройка VPN в самом низу ссылка на routeadd.bat.

Что это такое? Как это понимаю я. Видимо, сначала удаляем предустановленный путь маршрутизации, затем говорим, что вся маршрутизация должна идти через интерфейс ppp0, и только потом приписываем сами маршруты в формате

Одним словом — магия!

В следующей части я расскажу как сделать из wi-fi модуля точку доступа