Как задать ip адрес в linux debian
Перейти к содержимому

Как задать ip адрес в linux debian

  • автор:

Настройка сети в Debian 11

Если вы являетесь обычным пользователем Linux или системным администратором, вам может потребоваться настройка сети в вашей системе. В отличие от настольных систем, где вы можете использовать динамические конфигурации, на серверах вам придется выполнять специфические настройки в зависимости от вашего сетевого окружения. Динамические конфигурации меняются при перезагрузке сервера, поэтому в некоторых случаях возникает необходимость в статических конфигурациях, например, когда сервер нуждается в удаленном администрировании, или когда на сервере работает приложение или служба, требующая постоянного доступа. Итак, в этой статье мы объясним, как можно настроить базовую сеть в ОС Linux на базе Debian. Базовая настройка включает в себя установку статического IP, шлюза, DNS и имени хоста.

Просмотр текущей конфигурации сети

Чтобы просмотреть текущую конфигурацию сети, выполните следующую команду в Терминале. Она покажет вывод для каждого интерфейса в отдельном разделе.

Вы также можете выполнить команду ifconfig для просмотра IP-адреса.

Выполните следующую команду в терминале, чтобы найти IP-адрес DNS-сервера:

Изменение конфигурации сети

Базовая конфигурация сети включает в себя установку статического или динамического IP-адреса, добавление шлюза, информации о DNS-сервере. Существуют различные способы конфигурирования сети в Debian OS.

Использование команды ifconfig и route

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

Назначение IP-адреса интерфейсу

Мы будем использовать ifconfig для назначения IP-адреса нашему сетевому интерфейсу. Ниже приведен синтаксис команды:

В следующем примере команда назначает IP-адрес 192.168.72.16 сетевому интерфейсу eth0. Маска сети равна 24 (255.255.255.0) битам.

Настройка шлюза по умолчанию

Шлюз по умолчанию — это адрес, используемый для связи с внешней сетью. Чтобы настроить шлюз по умолчанию, используйте следующий синтаксис команды:

В следующем примере я использую 192.68.72.1 в качестве адреса шлюза по умолчанию.

Настройка DNS-сервера

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

В следующем примере в качестве адреса сервера имен я задаю публичный IP-адрес DNS- 1.1.1.1.

Удаление IP-адреса из сетевого интерфейса

Чтобы удалить IP-адрес из сетевого интерфейса, выполните следующую команду в Terminal:

Изменение сетевых настроек с помощью файла интерфейсов

В этом методе мы настроим постоянные сетевые параметры, которые ваша система будет помнить даже после перезагрузки. Для этого нам нужно отредактировать файл /etc/network/interfaces с помощью любого текстового редактора. Для этого выполните следующую команду в терминале:

Затем добавьте в него следующие строки:

Теперь нажмите Ctrl+O, а затем Ctrl+X, чтобы сохранить и выйти из файла.

Обратите внимание, что строки адреса, маски сети и шлюза должны начинаться с пробелов! В случае, если вы хотите динамически назначить адрес, используйте следующие строки:

Определение серверов имен (DNS)

Чтобы добавить информацию о DNS-сервере, нам нужно отредактировать файл /etc/resolv.conf. Для этого выполните следующую команду:

Здесь я добавляю два сервера имен. Один — это адрес публичного DNS-сервера, а другой — IP-адрес моего маршрутизатора.

Теперь нажмите Ctrl+O, а затем Ctrl+X, чтобы сохранить и выйти из файла.

Настройка имени хоста

Как и IP-адрес, уникальное имя хоста также используется для распознавания системы в сети. Чтобы узнать текущее имя хоста вашей системы, выполните следующую команду в Терминале:

Чтобы изменить имя хоста системы, вы можете выполнить следующую команду. Но как только вы перезагрузите систему, ваше первоначальное имя хоста будет восстановлено.

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

Этот файл содержит только имя хоста, измените старое имя на желаемое, а затем нажмите Ctrl+O и Ctrl+X для сохранения и выхода.

Настройка сети Debian 9

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

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

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

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

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

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

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

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-nameservers 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 все настраивается автоматически. Надеюсь, эта информация была полезной для вас.

Настройка интерфейса Ethernet

Основную настройку сети можно выполнить, редактируя конфигурационный файл interfaces, который располагается в /etc/network/interfaces. Здесь Вы можете задать IP адресс сетевой карты (или использовать DHCP), настроить маршрутизацию, IP masquerading, установить маршрут по умолчанию и многое другое.

Для того что бы интерфейс автоматически инициализировался при загрузке, не забудьте добавить строчку ‘auto’.

Полный список опций можно найти в man interfaces.

Автоматическое конфигурирование интерфейса с использованием DHCP

Если Вы хотите использовать DHCP вам необходимо написать следующие:

Ручное конфигурирование интерфейса

Если Вы хотите сконфигурировать вручную, например задать шлюз по умолчанию (так же опционально можно задать: сеть, широковещательный адрес или шлюз):

Если вы хотите добавить IPv6 адрес, то напишете следующие:

Полный список опций можно найти в man interfaces.

Настройка скорости и дуплекса

Частые ошибки автоматического согласования режимов работы, свидетельствуют о проблемах с кабелем. Следует проверить физическое состояние кабельного оборудования (отсутствие повреждений итп), прежде чем предполагать несовместимость алгоритмов автосогласования. Если Вы выключите автосогласование и установите скорость и дуплекс вручную, то интерфейс на другом конце кабеля будет считать что автосогласование не поддерживается и установит скорость 10Mbs и полудуплексный режим передачи. Для того чтобы не было ошибок в работе, при ручной настройки Вам необходимо убедиться что оба интерфейса работают на одинаковых скоростях и установлен одинаковый режим дуплекса.

Переключение интерфейса в режим моста без IP адреса

Чтобы создать сетевой интерфейс без IP адреса используйте ручной метод и команды pre-up и post-down

Задание серверов имён (DNS)

Перед тем как компьютер сможет подключится внешнему сетевому ресурсу (например веб-серверу), он должен преобразовать буквенное-цифровое имя (такое как wiki.debian.org) в числовой адрес сети (например 140.211.166.4). (В Интернет идентификации компьютера в сети используется структурированный числовой IP адрес.)

В большинстве ситуаций необходимо отредактировать файлы конфигураций этих программ.

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

Конфигурационный файл resolv.conf

Конфигурационный файл resolv.conf располагается в /etc/resolv.conf, и содержит информацию которая позволяет компьютеру подсоединяться к сети преобразовывать имя в адрес. (Прим. Не путайте этот конфигурационный файл с программой resolvconf , которая по неудачному стечению обстоятельств имеет такое же название.)

Файл resolv.conf обычно содержит IP адреса серверов имён (DNS) которые будут пытаться перевести имена в адрес для любого узла доступного в сети. Там будут строчки содержащие, примерно, следующие:

В этом примере, система исопользует сервера имён с IP адресами 12.34.56.78 и 12.34.56.79. Просто отредактируйте этот файл и введите IP адреса нужных Вам серверов, после слова nameserver. Можно добавить ещё строчки, если у Вас больше 2 серверов имён.

Не используйте этот метод если у Вас установлена программа resolvconf

Конфигурационный файл resolv.conf имеет множество других опций для определения режимов преобразования имён. См. man resolv.conf.

Программа resolvconf

Программа resolvconf следит за информацией о доступных на данных момент серверов имён. Не следует путать её с одноимённым конфигурационным файлом resolv.conf. Программа resolvconf является опциональной для систем Debian.

Конфигурационный файл resolv.conf содержит информацию о серверах имён, которые используются в системы. Однако, когда множеству программ необходимо динамически изменять файл resolv.conf они начинают мешать друг другу и файл становиться не синхронизируемым (out-of-sync). Программа resolvconf решает эту проблему. Она является посредником между программами которые поставляют информацию о серверах имён (например dhcp клиент) и программами которые используют эту информацию (например резолвер).

Если resolvconf правильно установлена, конфигурационный файл resolv.conf заменяется символьной ссылкой на файл /etc/resolvconf/run/resolv.conf и резолвер использует файл, который динамически генерируется программой resolvconf.

Программа resolvconf, в общем случае, необходима когда в системе присутствуют программы которым необходимо часто изменять информацию о серверах имён. В простых системах где нет таких программ, достаточно просто файла resolv.conf.

Если программа resolvconf установлена, то Вам не следует вручную редактировать файл resolv.conf , так как он будет динамически меняться программами в системе. Если Вам необходимо вручную задать сервера имён (например при статически сконфигурированном интерфейсе), добавьте в конфигурационный файл interfaces следующую строчку:

Разместите эту строчку в описании интерфейса iface, сразу после указания шлюза gateway. IP адрес сервера имёны необхожимо ввести после слова dns-nameservers. Если IP адресов несколько то они разделяются пробелом. Не забудьте написать "s" в конце слова dns-nameservers.

Программа resolvconf была добавлена в Debian сравнительно недавно и многие старые программы необходимо обновить и переконфигурировать для правильно работы. Если у Вас возникли проблемы, смотрите файл /usr/share/doc/resolvconf/README. Он содержит полную информацию по работе resolvconf с другими программами.

Конфигурирование DNS для network-manager

Предупреждение: Этот раздел не был протестирован с актуальной версией network-manager. Пожалуйста протестируйте и удалите это сообщение. Примечание: В этом разделе описаны примеры применяемые в системах подобных Red Hat, а не Debian.

Если Вы используете NetworkManager, настройки располагаются в файле /etc/sysconfig/network-scripts/ifcfg-*. Например так:

Настройка сети с помощью утилиты ip в Debian linux

Команда ip используется для назначения адреса сетевому интерфейсу и/или конфигурирования параметров сетевого интерфейса в дистрибутивах Linux. Эта команда заменяет собой старую добрую и ныне устаревшую команду ifconfig в современных дистрибутивах Linux.

Команда ip может использоваться для следующих целей:

  • Узнать какие интерфейсы сконфигурированы в системе.
  • Запросить статус IP интерфейса.
  • Сконфигурировать локальный, Ethernet и другие интерфейсы.
  • Пометить интефейс как up или down.
  • Сконфигурировать или изменить статическую маршрутизацию или маршрутизацию по умолчанию.
  • Сконфигурировать туннель через IP.
  • Сконфигурировать содержимое ARP или NDISC кэша.
  • Назначить IP адресы, маршруты, подсети и другую IP информацию на интерфейс.

Синтаксис

Понимание синтаксиса OBJECTS в комманде ip

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

Объект Сокращенная форма Задача
link l Сетевое устройство.
address a, addr IP адрес на устройстве.
addrlabel addrl Управление метками для выбора адреса.
neighbour n, neigh Записи для ARP или NDISC кэшей.
route r Управление записямя таблицы маршрутизации.
rule ru Правила в базе политик маршрутизации.
maddress m, maddr Мультикаст адрес.
mroute mr Записи мультикастового кэша маршрутизации.
tunnel t Туннель через IP.
xfrm x Фреймворк для протокола IPsec.

Чтобы получить информацию о каждом из объектов используйте команду help следующим образом:

Предупреждение : команды описанные ниже должны выполняться с осторожностью, так как ошибка может привести к потере соединения с сервером. Вы должны быть особо аккуратны при работе в удаленной сессии по ssh.

Примеры использования команды ip

Не пугайтесь синтаксиса команды ip. Давайте сразу начнем с примеров.

Показать информацию обо всех сетевых интерфейсах

Введите следующую команду чтобы получить список всех ip адресов назначенных всем сетевым интерфейсам:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:8b:46:9a brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe8b:469a/64 scope link
valid_lft forever preferred_lft forever

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

Также существует возможность вывести детали только об определенном сетевом интерфейсе:

Назначить интерфейсу IP адрес

Для того чтобы добавить IP адрес используется синтаксис следующего вида:

Чтобы назначить адрес 192.168.1.200/255.255.255.0 на интерфейс eth0, введите:

Добавить широковещательный адрес на интерфейс

По умолчанию, команда ip не задает какой-либо широковещательный адрес до тех пор, пока это будет недвусмысленно указано. Таким образом следующий синтаксис задает широковещательный адрес ADDRESS:

Существует возможность использовать специальные символы + и — вместо широковещательного адреса указывая хостовую часть адреса. В этом примере добавим адрес 192.168.1.50 с маской 255.255.255.0 (/24) со стандартным широковещательным адресом и зададим название eth0Work на интерфейс eth0:

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

Удалить IP адрес с интерфейса

Синтаксис для удаления IPv4/IPv6 адреса следующий:

Чтобы удалить 192.168.1.200/24 с интерфейса eth0, введите:

Сбросить ряд IP адресов с интерфейса

Вы можете удалять IP адреса с интерфейса по одному, как показано выше. Однако команда flush может удалить набор адресов с интерфейса по указанному признаку. Например, вы можете удалить все адреса из частной сети 192.168.2.0/24 с помощью команды:

2: eth0 inet 192.168.2.201/24 scope global secondary eth0
2: eth0 inet 192.168.2.200/24 scope global eth0
*** Round 1, deleting 2 addresses ***
*** Flush is complete after 1 round ***

Вы можете выключить IP адрес на всех ppp (Point-to-Point) интерфейсах:

Еще один пример для всех Ethernet интерфейсов:

Как изменить состояние интерфейса на UP или DOWN

К примеру, чтобы положить интерфейс eth1, используйте:

А чтобы поднять этот же интерфейс:

Как изменить txqueuelen устройства

Вы можете установить длину очереди передачи устройства с помощью ifconfig или команды ip следующим образом:

В этом примере изменим txqueuelen со значения по умолчанию, равного 1000, на 10000 для интерфейса 10000:

Как изменить MTU устройства

Для гигабиных сетей вы можете установить максимальный размер блоков передачи (MTU) для лучшей производительности сети. Синтаксис следующий:

Например, установим MTU устройства eth0 на 9000:

2: eth0: mtu 9000 qdisc pfifo_fast state UP qlen 1000
link/ether 00:08:9b:c4:30:30 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth1
inet6 fe80::208:9bff:fec4:3030/64 scope link
valid_lft forever preferred_lft forever

Показать соседей (arp кэш)

Пример вывода (часть информации скрыта):

74.xx.yy.zz dev eth1 lladdr 00:30:48:yy:zz:ww REACHABLE
10.10.29.66 dev eth0 lladdr 00:30:48:c6:0a:d8 REACHABLE
74.ww.yyy.xxx dev eth1 lladdr 00:1a:30:yy:zz:ww REACHABLE
10.10.29.68 dev eth0 lladdr 00:30:48:33:bc:32 REACHABLE
74.fff.uu.cc dev eth1 lladdr 00:30:48:yy:zz:ww STALE
74.rr.ww.fff dev eth1 lladdr 00:30:48:yy:zz:ww DELAY
10.10.29.65 dev eth0 lladdr 00:1a:30:38:a8:00 REACHABLE
10.10.29.74 dev eth0 lladdr 00:30:48:8e:31:ac REACHABLE

Последнее поле показывает состояние системы «определения недоступности соседа»:

  • STALE — сосед существует, но, скорее всего недоступен, поэтому ядро попробует проверить это при первой ближайшей передаче.
  • DELAY — пакет был отправлен соседу в состоянии STALE и ядро ждет подтверждения.
  • REACHABLE — сосед существует и определенно доступен.

Добавить новую ARP запись

Например, добавить постоянную ARP запись для соседа 192.168.1.5 на устройстве eth0:

Состояние соседа Значение
permanent Состояние соседа занято навсегда и может быть удалено только администратором.
noarp Состояние соседа валидно. Попыток проверить состояние не будет, но может быть удалено, когда закончится время жизни.
stale Состояние соседа валидно, но подозрительно. Эта опция для ip neigh не меняет состояние соседа, если оно было валидно и адрес не был изменен этой командой.
reachable Состояние соседа валидно до окончания таймаута доступности.

Удалить ARP запись

Удалить запись для соседа 192.168.1.5 на интерфейсе eth1:

Изменить состояние на reachable для соседа 192.168.1.100 на устройстве eth1:

Очистить ARP запись

Команда flush или f очищает таблицы соседей или arp таблицы. Синтаксис:

ip route: команды управления таблицей маршрутизации

Используйте следующие команды для управления таблицей маршрутизации ядра.

Показать таблицу маршрутизации

Посмотреть таблицу маршрутизации:

Показать роутинг для 192.168.1.0/24:

192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.10

Добавить новый маршрут

Добавить статический маршрут в сеть 192.168.1.0/24 через шлюз 192.168.1.254:

Чтобы маршрутизировать весь трафик через шлюз 192.168.1.254 подключенный через сетевой интерфейс eth0:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *