Debian настройка сети из консоли

В этой статье я опишу простую настройку сети для сервера под управлением ОС Debian 9 (Stretch). Эта статья является переработкой моей более ранней статьи «Настройка сети в Debian». Она была справедлива для версий старше Debian 9. В Debian 9 многое изменилось в настройке и диагностике сети. Те, кто перешёл сюда со старой статьи, уже знают, в чём дело. Но я повторюсь для тех, кто сразу попал на эту статью.
Во-первых, в Debian 9 изменилась система именования сетевых интерфейсов. Если раньше, например для Ethernet, имена интерфейсов были следующими: eth0, eth1, eth2 и т. д. То сейчас используются номера интерфейсов в BIOS, а также номера слотов PCI. Это называется stateless persistent network interface names (имена постоянных сетевых интерфейсов без отслеживания состояния) Т. е. имя может быть enp0s3, или ens30, или wlp3s0 для wi fi. При желании можно переименовать сетевые интерфейсы, вернуться к прежней системе, но это материал для отдельной статьи.

Во-вторых, раньше для настройки и диагностики сети использовались утилиты из пакета net-tools. При установке Debian этот пакет устанавливался по умолчанию вместе с системой. Теперь он просто присутствует в репозиториях и вместо него по умолчанию устанавливается пакет iproute2, При желании можно установить старый пакет (net-tools) и пользоваться прежними утилитами. Но мы этого делать не будем, и в этой статье будет описано использование программ из нового пакета.

В-третьих, изменилась система инициализации – Debian перешёл на systemd. Это значит, что сервисы надо перезапускать по-другому.

И так начнём. Обычно первичная настройка сети происходит ещё на этапе установки. Об этом можно прочесть в моей статье «Установка Debian на сервер». Если по какой-то причине это не было сделано при установке, то мы с вами попытаемся решить проблемы с сетью и настроить наш сервер.

Установка сетевой карты

В первую очередь нужно убедиться, что сетевые карты установлены, а если они интегрированы в материнскую плату, то включены в BIOSе, а так же подключены сетевые кабели. Проверим, видит ли система наши сетевые карты (интерфейсы). Для этого дадим следующую команду:

$ sudo ip link show

Второй вариант команды написан для тех, кто при установке запретил вход суперпользователя. Далее в статье я не буду дублировать команды, просто запомните: если в начале кода есть значок #, значит команда выполняется от имени суперпользователя. Те, кто запретил вход суперпользователя в систему выполняют её с помощью sudo.

Видим на экране примерно следующее:

1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3:
mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000

link/ether 08:00:27:90:45:38 brd ff:ff:ff:ff:ff:ff

Это список всех установленных интерфейсов. Первый блок описывает интерфейс локальной петли (link/loopback), а второй описывает интерфейс Ethernet (link/ether) с именем enp0s3.

Информация об интерфейсе содержит: имя интерфейса, установленные флаги состояния, MTU, тип и размер очереди фреймов, тип соединения, MAC-адрес, широковещательный адрес.

Некоторые флаги состояния (подробнее в man netdevice(7)):

  • LOOPBACK — интерфейс является локальным и не может взаимодействовать с другими узлами в сети;
  • UP — устройство подключено;
  • DOWN — устройство отключено;
  • NO-CARRIER — нет связи (не подключен кабель).
  • BROADCAST — устройство способно отправлять широковещательные фреймы;
  • POINTTOPOINT — соединение типа "точка-точка"
  • PROMISC — устройство находится в режиме "прослушивания" и принимает все фреймы.
  • NOARP — отключена поддержка разрешения имен сетевого уровня.
  • ALLMULTI — устройство принимает все групповые пакеты.

Убеждаемся что, система видит сетевые интерфейсы. Если на этом этапе вы получаете пустые строки или сообщения об ошибках, значит оборудование: либо не подключено, либо не исправно, либо не совместимо. Подразумевается, что при установке Debian использовался специальный набор проприетарных драйверов. В первом случае ещё раз проверяем правильность включения сетевой карты, поддержку BIOS и т. д. Во втором и третьем случае производим замену оборудования. Если проблема возникла после сборки своего ядра — проверяем ядро. Данная информация выходит за рамки этой статьи, но в последующих статьях мы с вами рассмотрим сборку, проверку и настройку ядра.

Настройка статического IP-адреса

И так, наше оборудование функционирует нормально. Нам нужно настроить статический IP-адрес со следующими параметрами: IP-адрес 192.168.123.254, маска подсети 255.255.255.0, основной шлюз 192.168.123.1. Посмотрим вывод команды ip addr:

Если всё было настроено правильно ещё при установке системы, мы увидим следующее:

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3:
mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 08:00:27:90:45:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.123.254/24 brd 192.168.123.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe90:4538/64 scope link
valid_lft forever preferred_lft forever

Читайте также:  Как правильно класть термопасту

Некоторая часть информации нам уже знакома. Смотрим информацию об интерфейсе Ethernet (второй в списке). Первое, что мы видим — тип адреса: inet – адрес IPv4, inet6 – адрес IPv6. Мы настраиваем сеть по протоколу IP четвёртой версии, поэтому смотрим на третью строку. Далее следует ip-адрес (192.168.123.254) с указанием маски подсети в битовом виде (/24). Затем идёт широковещательный (brd) адрес (192.168.123.255) подсети. Завершается строка областью видимости (scope global — действителен везде, scope link — только для данного устройства, scope host — для данного узла) и именем интерфейса (enp0s3).

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

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever

А то и не увидим никакой информации. В общих случаях, для проверки или устранения неисправностей можно настроить сетевые интерфейсы с помощью команды ip. Об этом будет написано ниже в этой же статье. А пока приступим редактированию файлов конфигураций. Перед редактированием сетевых конфигурационных файлов следует остановить сетевой интерфейс командой ifdown. Делается это следующим образом:

Но в нашем случае интерфейс enp0s3 ещё не сконфигурирован и мы получим сообщение об ошибке:

interface enp0s3 not configured

Тогда, для начала, проверяем существование файла /etc/network/interfaces. Если он не существует, то создаём его, если существует, то редактируем текстовым редактором:

Для сервера с одним сетевым интерфейсом у нас должно получиться следующее:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo enp0s3
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet static
address 192.168.123.254
netmask 255.255.255.0
gateway 192.168.123.1
dns-nameservers 213.177.96.1 213.177.97.1

Символ # в тексте этого файла обозначает комментарии. В них написано, что файл interfaces описывает доступные системе сетевые интерфейсы и то, как их активировать. Для получения большей информации следует посмотреть руководство interfaces(5).

Остановимся на некоторых моментах:

  • auto – через пробел перечисляются имена сетевых интерфейсов, которые будут включаться при запуске операционной системы
  • allow-hotplugin – нужен, если возможна горячая замена сетевой карты, например, если она подключена через USB.
  • iface – ключевое слово, описывающее интерфейс. После него через пробел пишется имя этого интерфейса.
  • inet – тип ip адреса. inet – адрес IPv4
  • static – указывает на статический адрес
  • address – ip адрес
  • netmask – маска подсети
  • gateway – шлюз по умолчанию

В последней строке описания интерфейса идёт перечисление через пробел dns-серверов, у вас там, естественно должны быть адреса dns-серверов вашего провайдера или вашей сети. Сохраняем изменения (Ctr+O, затем Enter) и редактируем файл /etc/resolv.conf:

Он опять же должен содержать адреса dns-серверов вашего провайдера или вашей сети.

nameserver 213.177.96.1
nameserver 213.177.97.1

Сохраняем изменения и активируем сетевой интерфейс:

Если ошиблись при редактировании файлов, то тщательно проверяем и исправляем ошибки. Если всё заполнено правильно, перезапускаем сетевые службы:

Это по-старому. По-новому (с systemd) будет так:

# systemctl restart networking.service

Проверяем что у нас получилось, использую команду ip addr для своего интерфейса:

# ip addr show enp0s3

2: enp0s3:
mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 08:00:27:90:45:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.123.254/24 brd 192.168.123.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe90:4538/64 scope link
valid_lft forever preferred_lft forever

Проверяем работу сети. Сначала проверяем локальный интерфейс (параметр -с 4 подразумевает отправку четырех пакетов):

$ ping 127.0.0.1 -с 4

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.036 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.045 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.044 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.043 ms

— 127.0.0.1 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3078ms
rtt min/avg/max/mdev = 0.036/0.042/0.045/0.003 ms

Затем проверяем сетевой интерфейс («пингуем» сами себя):

$ ping 192.168.123.254 -с 4

PING 192.168.123.254 (192.168.123.254) 56(84) bytes of data.
64 bytes from 192.168.123.254: icmp_seq=1 ttl=64 time=0.027 ms
64 bytes from 192.168.123.254: icmp_seq=2 ttl=64 time=0.044 ms
64 bytes from 192.168.123.254: icmp_seq=3 ttl=64 time=0.046 ms
64 bytes from 192.168.123.254: icmp_seq=4 ttl=64 time=0.045 ms

Читайте также:  Майкрософт офис в браузере

— 192.168.123.254 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3070ms
rtt min/avg/max/mdev = 0.027/0.040/0.046/0.010 ms

Теперь основной шлюз:

$ ping 192.168.123.1 -с 4

PING 192.168.123.1 (192.168.123.1) 56(84) bytes of data.
64 bytes from 192.168.123.1: icmp_seq=1 ttl=64 time=5.60 ms
64 bytes from 192.168.123.1: icmp_seq=2 ttl=64 time=0.986 ms
64 bytes from 192.168.123.1: icmp_seq=3 ttl=64 time=0.966 ms
64 bytes from 192.168.123.1: icmp_seq=4 ttl=64 time=0.975 ms

— 192.168.123.1 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 0.966/2.132/5.602/2.003 ms

И какой-нибудь удалённый хост по имени:

PING www.aitishnik.ru (195.208.1.108) 56(84) bytes of data.
64 bytes from std-carp8-http.nic.ru (195.208.1.108): icmp_seq=1 ttl=56 time=26.1 ms
64 bytes from std-carp8-http.nic.ru (195.208.1.108): icmp_seq=2 ttl=56 time=26.2 ms
64 bytes from std-carp8-http.nic.ru (195.208.1.108): icmp_seq=3 ttl=56 time=25.3 ms

— www.aitishnik.ru ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 25.384/25.940/26.260/0.394 ms

На этом настройка статического IP-адреса для сервера с одним сетевым интерфейсом закончена.

Настройка динамического IP-адреса

В некоторых случаях сервер может получать динамический IP-адрес. Чаще всего это зарезервированный адрес или псевдо статический. Т. е. на DHCP-сервере производится привязка определённого mac-адреса к определённому ip-адресу (об этом читайте в статье «Настройка DHCP в Debian»). Такая ситуация может встретиться и в локальной сети, но чаще всего она встречается тогда, когда провайдер выдает ip-адреса динамически. В этом случае файл /etc/network/interfaces выглядит следующим образом:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5)

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet dhcp

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

# systemctl restart networking.service

И посмотрим, что получилось:

# ip addr show enp0s3

2: enp0s3:
mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 08:00:27:90:45:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.123.35/24 brd 192.168.123.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe90:4538/64 scope link
valid_lft forever preferred_lft forever

DHCP сервер моей сети выделил компьютеру ip адрес 192.168.123.35

Команда ip

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

Получить информацию по ip адресам:

Удалить ip адрес:

# ip address del 192.168.123.35/24 dev enp0s3

Назначить ip адрес вместо удалённого:

# ip address add 192.168.123.254/24 brd + dev enp0s3

Получить информацию по маршрутам:

Добавить основной шлюз:

# ip route add default via 192.168.123.1

Добавить маршрут в сеть 192.168.111.0/24 через шлюз 192.168.123.2

# ip route add 192.168.111.0/24 via 192.168.123.2

Помните, что у нас вы можете не только купить готовый сайт или заказать его разработку, но и подобрать подходящий тариф поддержки сайта, заказать продвижение сайта в поисковых системах, а так же зарегистрировать домен в одной из двухсот доменных зон и выбрать недорогой тариф хостинга! Айтишник РУ

Имена сетевых интерфейсов можно узнать командой:

Которая выведет нам примерно такую строку:

(Имя устройства enp0s3 означает, что это сетевой адаптер ethernet, который расположен на нулевой шине PCI в третьем слоте)

lo — это интерфейс loopback

enp0s3 — имя интерфейса первой сетевой карты

enp0s8 — имя интерфейса второй сетевой карты

Мы будем настраивать доступ к интернету через интерфейс enp0s3.

Получение IP через DHCP:

Файл настроек сети находится по адресу /etc/network/interfaces. Открываем этот файл текстовым редактором и дописываем две строки:

Сохраняем файл, перезагружаем систему.

Ручная настройка IP адреса:

Редактируем файл interfaces, находящийся по адресу /etc/network/interfaces следующим образом:

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

В этой статье будет рассмотрена настройка сети Debian 9. Мы разберем как настроить имя хоста, сетевые интерфейсы и получить IP адреса для них. Эта инструкция подойдет как для обычных компьютеров, так и для серверов.

1. Имя компьютера

Чтобы посмотреть текущее имя хоста вы можете использовать команду hostname:

Установить новое имя хоста очень просто, для этого достаточно передать его команде hostname в качестве параметра:

После перезагрузки имя хоста не сохранится, поэтому вам нужно отредактировать файл /etc/hostname и добавить туда новое имя хоста, уже это имя останется даже после перезагрузки:

Осталось только связать новое имя хоста с локальным IP адресом, чтобы иметь возможность обращаться по нему к компьютеру. Для этого добавьте такую строку в файл /etc/hosts:

Читайте также:  Роль сервера hyper v

127.0.0.1 localhost debian-pc

2. Список сетевых интерфейсов

Перед тем как мы сможем настроить сеть нужно посмотреть какие сетевые интерфейсы подключены к вашей системе и какие имена им присвоены. Для этого наберите:

Также можно посмотреть только имена интерфейсов, в папке /sys/class/net:

3. Настройка сетевого интерфейса

Для настройки сетевых интерфейсов в операционных системах, основанных на Debian, используется файл /etc/network/interfaces. Здесь должно находится описание для каждого интерфейса, способ получения IP а другие параметры. В одном файле может быть настроено несколько интерфейсов. Описание каждого интерфейса начинается со слова auto после которого идет имя интерфейса.

Это означает, что указанный интерфейс должен быть запущен при выполнении ifup с опцией -a, именно она используется при инициализации системы. После строки auto идут другие строки настроек, которые касаются именно этого интерфейса. Вот так, например, выглядит строка для включения локального интерфейса:

Перед тем как рассматривать все более подробно, поговорим про опции, которые можно использовать:

  • pre-up — выполнить команду перед запуском интерфейса;
  • post-up — выполнить команду после запуска интерфейса;
  • up — выполнить команду при запуске интерфейса;
  • pre-down — команда перед отключением;
  • post-down — команда после отключения;
  • iface — указывает имя интерфейса;
  • inet — указывает
  • description — создать имя синоним для устройства;
  • address — устанавливает ip адрес для статического соединения;
  • netmask — установка маски сети;
  • broadcast — широковещательный адрес;
  • metric — приоритет для шлюза по умолчанию;
  • gateway — шлюз по умолчанию;
  • hwaddress — установить MAC адрес;
  • mtu — размер одного пакета.

Это далеко не все опции, которые можно использовать, но основные из них и уже с помощью этого можно настроить большинство из того, что нужно. Дальше рассмотрим различные варианты настройки интерфейсов, самый часто используемый на домашних компьютерах — это получение ip адреса по DHCP, в таком случае, ip адрес может меняться при каждом запуске. Рассмотрим его первым.

Настройка динамического IP

Мы будем получать IP адрес через DHCP сервер, оттуда же будут получены шлюзы и DNS сервер, поэтому для работы достаточно добавить две строчки. Например, настроем получение IP по DHCP для интерфейса eth0:

auto eth0
iface eth0 inet dhcp

Но если необходимо, то вы можете установить вручную ip адрес DNS сервера:

Для локального интерфейса настройка будет выполняться таким образом:

auto lo
iface lo inet loopback

Здесь мы не получаем адрес по DHCP, но присваиваем локальный адрес 127.0.0.1.

Настройка статического IP адреса

Если вы хотите установить именно статический IP, то здесь все будет немного сложнее. Нам нужно знать не только этот свободный IP адрес, но и шлюз, маску сети и DNS сервер. Для настройки используется такой набор строк:

iface eth0 inet static
address 192.168.1.15
netmask 255.255.255.0
gateway 192.168.1.1
broadcast 192.168.0.255
dns-nameserver 8.8.8.8

Здесь указывается, что мы будем использовать метод получения ip адреса static, а затем расписаны все параметры. Но это еще далеко не все, что можно сделать с помощью файла /etc/network/interfaces. Также вы можете создавать виртуальные интерфейсы.

Настройка виртуальных интерфейсов

В некоторых случаях нам может понадобиться создать виртуальный интерфейс. Это позволяет добавить еще один IP адрес к интерфейсу. Чтобы создать такой интерфейс достаточно дописать его номер после двоеточия:

auto eth0:0
iface eth0:0 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8

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

Настройка мостов

Сетевые мосты между виртуальными интерфейсами в системе позволяют настроить полноценный доступ к интернету из виртуальных машин. Они могут применяться для KVM,qemu,XEN и других конфигураций. Для настройки моста используйте:

auto br0
iface br0 inet static
address 192.168.1.20
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

Здесь мы указываем имя интерфейса br0, дальше выполняем стандартную настройку получения статического IP адреса, затем связываем этот мост с интерфейсом eth0.

Перезагрузка сети

После внесения всех изменений необходимо перезапустить сеть, чтобы сетевые настройки debian вступили в силу, для этого наберите:

sudo systemctl restart networking

Выводы

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