Как поднять интерфейс в debian
Настройка сети с помощью утилиты ip в Debian linux
Команда ip используется для назначения адреса сетевому интерфейсу и/или конфигурирования параметров сетевого интерфейса в дистрибутивах Linux. Эта команда заменяет собой старую добрую и ныне устаревшую команду ifconfig в современных дистрибутивах Linux.
Команда 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: 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:
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:
Вы можете задать лупбек адрес на лупбек интерфейсе 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
Последнее поле показывает состояние системы «определения недоступности соседа»:
Добавить новую 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:
Удалить маршрут
Команда чтобы удалить маршрут по умолчанию:
В этом примере удалим маршрут созданный в предыдущем блоке:
Настройка сети в Debian
Чтобы лучше ориентироваться в сетевом администрировании, а именно в таких понятиях как типы IP адресов, маски, подсети и т.д. советую изучить статью
Введение
Настройка сетевого подключения это важнейший шаг при работе с Debian, который может вызвать у новичка много вопросов.
В этой статье вы можете найти ответы на некоторые из них.
Изучить файл с перечнем задействованных интерфейсов можно с помощью команды
Далее настройка зависит от версии Debian, которую Вы используете.
На новых версиях Debian. Например на Debian 9 используется Iproute2
Если Вам нужно настроить сеть на старой версии Debian с помощью утилит ifconfig пролистайте страницу вниз или перейдите по ссылке
Динамический IP c помощью dhclient
Включить автоматическое получение ip
Например, можно сперва выполнить:
И затем получить свежий IP адрес используя DHCP
Аналогичную операцию можно проделать для какого-то определённоего интерфейса
Выключить автоматическое получение ip можно вытащив сетевой шнур и вставив обратно. Говорят, что должно сброситься.
Настройка сети с помощью Iproute2
Актуально для Debian 9 и выше.
Чтобы получить список интерфейсов нужно воспользоваться командой
Названия интерфейсов может отличаться от привычных eth0, eth1 и тому подобных.
Для примера будем считать, что интерфейс отобразился как enp0s25
Iproute2: Задать статический IP
Пример присвоения интерфейсу enp0s25 IP адреса 10.0.2.16/24
sudo ip addr add 10.0.2.16/24 dev enp0s25
Включить / Выключить сетевой интерфейс
ВКЛЮЧИТЬ интерфейс enp0s25:
ip link set dev enp0s25 up
ВЫКЛЮЧИТЬ интерфейс enp0s25:
ip link set dev enp0s25 down
Gateway
По-русски Gateway называется Сетевой шлюз или просто шлюз
Удалить старый сетевой шлюз
route delete default
Добавление нового сетевого шлюза
route add default gw IP_Address
Если старых шлюзов много, то нужно указать какой конкретно IP с какого интерфейса удалить
route delete default gw 10.0.0.1 eth0
Для создания тоже можно указать конкретные данные
route add default gw 192.168.0.1 eth0
netmask
default via 10.6.0.1 dev eth0
10.6.0.0/8 dev eth0 src 10.6.1.68
ip address del 10.6.1.100/8 dev eth0
ip address add 10.6.1.68/22 dev eth0
Настройка сети с помощью ifconfig
ifconfig входит в состав net-tools, поэтому если он недоступен по умолчанию всегда можно установить командой
apt-get install net-tools
Получить информацию об имеющихся интерфейсах на старых версиях Debian можно с помощью команды
Изучите вывод этой команды и посмотрите какой интерфейс Вам доступен. Обычно это eth0.
Если нужно получать ip автоматически
iface eth0 inet dhcp
Если нужно задать статический ip
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
Чтобы изменения пришли в силу нужно выполнить
ifconfig wlan0 down
ifconfig eth0 up/down
Перезапустить/остановить/запустить сетевые службы
Настроить DNS можно через файл /etc/resolv.conf
При установке нужно было запомнить какие сетевые интерфейсы вам предлагает сконфигурировать Debian. Это сделать очень просто, они называются eth0, eth1 и так далее.
Поэтому для включения сетевого интерфейса, в приведённой выше команде нужно менять 0 на 1 и т.д.
Однако, если вы будете устанавливать другие Unix-подобные дистрибутивы, например OpenBSD то сетевые интерфейсы будут называться более разнообразно (msk0, sk0 и др.)
netstat
Посмотреть список активных соединений по сети
Reader Prerequisites: Для понимания этой статьи необходимо умение работать с консольными инструментами, тестовыми редакторами, понимание основ DNS, TCP/IP, DHCP, netmask, gateway.
Table of Contents
Настройка интерфейса Ethernet
Основную настройку сети можно выполнить, редактируя конфигурационный файл interfaces, который располагается в /etc/network/interfaces. Здесь Вы можете задать IP адресс сетевой карты (или использовать DHCP), настроить маршрутизацию, IP masquerading, установить маршрут по умолчанию и многое другое.
Для того что бы интерфейс автоматически инициализировался при загрузке, не забудьте добавить строчку ‘auto’.
Полный список опций можно найти в man interfaces.
Автоматическое конфигурирование интерфейса с использованием DHCP
Если Вы хотите использовать DHCP вам необходимо написать следующие:
Ручное конфигурирование интерфейса
Если Вы хотите сконфигурировать вручную, например задать шлюз по умолчанию (так же опционально можно задать: сеть, широковещательный адрес или шлюз):
Если вы хотите добавить IPv6 адрес, то напишете следующие:
Полный список опций можно найти в man interfaces.
Настройка скорости и дуплекса
Частые ошибки автоматического согласования режимов работы, свидетельствуют о проблемах с кабелем. Следует проверить физическое состояние кабельного оборудования (отсутствие повреждений итп), прежде чем предполагать несовместимость алгоритмов автосогласования. Если Вы выключите автосогласование и установите скорость и дуплекс вручную, то интерфейс на другом конце кабеля будет считать что автосогласование не поддерживается и установит скорость 10Mbs и полудуплексный режим передачи. Для того чтобы не было ошибок в работе, при ручной настройки Вам необходимо убедиться что оба интерфейса работают на одинаковых скоростях и установлен одинаковый режим дуплекса.
Если Вы хотите вручную установить скорость и режим дуплекса интерфейса. Здесь описаны основные шаги:
установите пакеты ethtool и net-tools, так вы получите программы ethtool и mii-tool. Одна или обе из них могут работать с Вашим интерфейсом.
Для начала выполните, как root ethtool eth0, и Вы увидите строчки «Speed:» и «Duplex:», если нет то ethtool возможно не поддерживает Ваше устройство.
В каждом случае, перепроверьте применились ли настройки которые Вы изменили, затем попробуйте отправить какие-нибудь данные из системы, чтобы убедиться что NIC работает правильно.
Если одна из этих команд успешно настроила Вашу сетевую карту, можно добавить эти параметры в /etc/network/interfaces чтобы они применялись во время загрузки при поднятии интерфейса. Однако, перед этим Вам следует понять что некоторые драйвера отличаются от других. Когда модуль драйвера загружен, сетевая карта может начать автосогласование, без какого либо способа остановить его (особенно с драйверами которые не принимают параметры). Параметры из файла interfaces могут применяются в момент, когда автосогласование уже наполовину выполнено. Что бы избежать этого можно добавить задержку выполнения команд ethtool и mii-tool. Например :
Переключение интерфейса в режим моста без IP адреса
Чтобы создать сетевой интерфейс без IP адреса используйте ручной метод и команды pre-up и post-down
Задание серверов имён (DNS)
Перед тем как компьютер сможет подключится внешнему сетевому ресурсу (например веб-серверу), он должен преобразовать буквенное-цифровое имя (такое как wiki.debian.org) в числовой адрес сети (например 140.211.166.4). (В Интернет идентификации компьютера в сети используется структурированный числовой IP адрес.)
Библиотека C и другие библиотеки за списком серверов имён обращаются к файлу /etc/resolv.conf. В простейшем случае Вы можете отредактировать этот файл, записав в него список серверов имён. Но, следует отметить, что различные программы динамической конфигурации будут рады переписать ваши настройки:
Программа resolvconf
В большинстве ситуаций необходимо отредактировать файлы конфигураций этих программ.
В более сложных ситуациях, более правильным будет использование программы resolvconf, но для простых конфигураций она избыточена.
Конфигурационный файл resolv.conf
Файл 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.
Разместите эту строчку в описании интерфейса 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-*. Например так:
Через графический интерфейс это можно сделать так:
DHCP Client Configuration
Example: dhclient3 uses /etc/dhcp/dhclient.conf. The setting you want is
See the dhclient.conf(5) manual page for details.
Howto use vlan (dot1q, 802.1q, trunk) (Etch, Lenny)
Настройка сети 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 после которого идет имя интерфейса.
Перед тем как рассматривать все более подробно, поговорим про опции, которые можно использовать:
Настройка динамического 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 все настраивается автоматически. Надеюсь, эта информация была полезной для вас.