Семейство операционных систем Linux использует утилиту ipconfig для настройки сетевых параметров. В Linux также существует аналогичная команда – ifconfig. Расскажем о ней подробнее.
Для чего нужна команда?
Ifconfig представляет собой системную утилиту, которая отвечает за сетевые настройки внутри операционной системы семейства «Линукс».
Аббревиатура ifconfig расшифровывается как interface configuration, т.е. настройка конфигураций.
Важно! В качестве операционной системы статья ведет повествование на примере Ubuntu 18.04.3
Установка ifconfig
По умолчанию утилита ifconfig недоступна в системе, а пакет net-tools не установлен в ОС. Инсталлируем его командой в терминале:
sudo apt-get install net-tools
Процесс займет 2 минуты, после чего пользователь получает доступ к сетевым настройкам через терминал.
В дальнейшем утилита стартует вместе с операционной системой как системный процесс. Она собирает информацию из конфигурационных файлов и загружает ее.
Синтаксис
Команда ifconfig обладает широкими возможностями. Для получения информации о доступных ключах набираем в терминале:
Ifconfig —help
Расшифровка синтаксиса:
- Ключ [-a] означает «применять дальнейшие действия ко всем сетевым интерфейсам в ОС».
- Опция [-v] отображает подробности на экране пользователя.
- Функция [-s] обратна по действию ключу [-v]: утилита выводит краткую информацию по указанному элементу.
- «Имя интерфейса». Пользователь указывает сетевой интерфейс, к которому применятся операции. Например, eth0 означает сетевой интерфейс Ethernet.
- «Адрес». Прописываем IP-адрес для выбранного сетевого интерфейса.
Расскажем о значениях, которые пользователь задает для команды ifconfig. Для того чтобы сконфигурировать сетевой интерфейс, указываем его имя и команду с параметрами.
Важно! Изменения в сетевой элемент вносятся только с правами суперпользователя.
Чтобы получить информацию о конкретном интерфейсе, прописываем опции в терминале. Например:
sudo Ifconfig eth0
Команда означает, что пользователь просит операционную систему предоставить информацию об интерфейсе eth0.
Важно! Если необходим полный список доступных элементов, то набираем ifconfig.
Опции
В основном используют следующие ключи для различных операций:
- Up/Down . Активация/деактивация выбранного интерфейса по имени. Синтаксис:
sudo ifconfig eth0 down
После подтверждения операции в верхнем правом углу появится надпись.
Для включения вводим соответственно:
sudo ifconfig eth0 up
Включение выдаст уведомление – системное сообщение проявится наверху.
- Arp . Включает/выключает поддержку протокола ARP. Пример:
sudo ifconfig eth0 arp
Важно! Повторный ввод команды с добавлением знака «-» перед командой ARP деактивирует протокол.
- Promisc . Если необходимо отключить режим фильтрации, то используем ключ promisc. В этом случае через указанный сетевой интерфейс проходят все пакеты.
sudo ifconfig eth0 promisc
Чтобы вернуть все обратно, действуем как в предыдущем пункте – устанавливаем знак минус перед ключом.
- « Адрес ». Опция разрешает изменить текущий IP-адрес на новый. Допустим, необходимо присвоить интерфейсу eth0 адрес 192.168.1.25. Прописываем:
sudo ifconfig eth0 192.168.1.25
Важно! Прежде чем менять адрес, необходимо проверить – свободен ли он. В противном случае появится ошибка.
- Netmask X . Опция аналогична предыдущему разделу, но только она меняет маску подсети. Пример:
sudo ifconfig eth0 netmask 255.255.255.0
- Mtu X . Меняем текущее значение максимального размера пакета на новое. Команда выглядит так:
sudo ifconfig eth0 mtu 1000
- Broadcast . Задает широковещательный запрос для выбранного элемента сети.
sudo ifconfig eth0 broadcast 192.168.1.255
- HW ether . Меняем текущий физический адрес сетевого адаптера на новый.
sudo ifconfig eth0 hw ether 8C:DC:A4:48:C2:C0
Это основные команды, которые используются утилитой ifconfig.
Для установки маршрута подключаем другую утилиту.
Настройка маршрутизации
Ifconfig не умеет работать со статическими маршрутами. Для этого в ОС Linux существует команда route.
На изображении выше приведено два примера. В первом случае команда задается без каких-либо опций. На выходе она показывает таблицу маршрутов с именами. Второй вариант: добавление ключа –n показывает IP-адреса вместо имен.
Чтобы создать или добавить новый маршрут, используем ключ add, указываем адрес, шлюз и маску подсети. Например, добавим маршрут, в котором данные маршрутизируются с адреса 192.168.1.0 на 192.168.1.10:
sudo route add –net 192.168.1.0 gw 192.168.1.10 eth0
Расшифровка:
- Ключ add означает «создать новый маршрут». Если нужно удалить маршрут, то ставим del.
- Опция –net указывает сеть, а которой работает утилита. Аналогично ей работает ключ host, только по отношению к именам.
- Символы GW расшифровываются как gateway, т.е. шлюз.
- В конец обязательно указываем имя сетевого интерфейса. В нашем примере это eth0.
Подробную информацию об утилите route можно получить, набрав в командной строке ключ help.
Iproute2
В апреле 2004 года на смену утилитам ifconfig, arp, netstat, route и другим пришло новое решение iproute2. Оно включает в себя все вышеуказанные утилиты с добавлением новых возможностей. Серьезный недостаток продукта – другой синтаксис.
В итоге многие системные администраторы по-прежнему используют ifconfig, route и т.д. Новые опции и ключи для них непривычны.
Основные команды нового пакета:
- IP. Отвечает за подробную настройку сети. В нее входят таблицы маршрутов, интерфейсы, включение/отключение адаптеров, адреса мультикаста и другое.
- TC. Расшифровывается как «Контроль трафика». Предназначена для классификации пакетов по уровням, выставления приоритетов и т.д.
- SS. Пришла на замену netstat. По сути, это ее аналог с такими же функциями и возможностями.
Синтаксис в общем виде выглядит так:
IP object cmd [-arg1, -arg2]
Object – любой объект, к которому применяется команда IP. Это может быть сетевой интерфейс (eth0) или его адрес, маршруты (route), тоннели и т.д.
Cmd – команда для данного объекта. Например, для интерфейса eth0 используем команду down.
-arg1, -arg2 – набор дополнительных ключей для команды.
Для получения подробного списка доступных возможностей воспользуемся универсальным способом: введем ключ help после команды.
Заключение
Публикация рассказала о команде ifconfig, которая используется для конфигурирования сети в ОС семейства Linux. Приведены стандартные аргументы, которые наиболее часто встречаются в работе сетевых администраторов.
Отдельной главой рассказано об утилите iproute2, которая пришла на смену ifconfig. Несмотря на нововведения, она не пользуется особой популярностью из-за нового синтаксиса.