Команда ifconfig — примеры использования
Команда ifconfig очень долго использовалась для настройки сети в операционных системах семейства Linux. С помощью нее вы можете включать или выключать сетевые интерфейсы, настраивать их параметры, переключать режимы и многое другое. Потом была разработана утилита ip, которая содержит больше функций, и имеет совсем другой синтаксис.
Но многие пользователи привыкли использовать ifconfig, тем более, что ее синтаксис более просто. Прочитать про утилиту ip вы можете в статье утилита ip в Linux. В этой же статье мы рассмотрим как используется ее более старый аналог — утилита ifconfig linux.
Установка ifconfig
С появлением утилиты ip, ifconfig была удалена из многих дистрибутивов. Но в большинстве она все еще поставляется по умолчанию. Установка ifconfig в Ubutnu выполняется командой:
sudo apt install net-tools
sudo pacman -S net-tools
Синтаксис ifconfig
Утилита ifconfig имеет очень простой синтаксис при вызове без параметров, она возвратит список подключенных к системе сетевых интерфейсов и их характеристики, например, ip адрес, адрес шлюза, размер пакета, частоту для беспроводных сетей и другие параметры. Если указать интерфейс и нужные команды, то можно изменять различные настройки интерфейса. Вот сам синтаксис:
$ ifconfig опции интерфейс команда параметры адрес
Интерфейс — это сетевой интерфейс, о котором вы хотите посмотреть информацию или изменить его параметры. Все это можно сделать с помощью команд. Давайте рассмотрим основные из них:
- up — включить интерфейс;
- down — выключить интерфейс;
- (-)arp — включить или выключить использование протокола ARP для интерфейса;
- (-)promisc — включить или выключить неразборчивый режим для интерфейса;
- (-)allmulti — включить или выключить режим multicast;
- metric — изменить параметр metric;
- mtu — изменить максимальный размер пакета;
- netmask — установить маску сети;
- add — добавить ip адрес для интерфейса;
- del — удалить ip адрес интерфейса;
- media — установить тип внешнего протокола;
- [-]broadcast — установить широковещательный адрес или отключить эту функцию;
- hw — установить MAC адрес для интерфейса;
- txqueuelen — размер очереди интерфейса;
Параметры и адрес необязательны и зависят от используемой команды. А опции влияют на поведение утилиты более глобально. Опций всего несколько, рассмотрим их:
- -a — применять команду ко всем интерфейсам, например, полезно, если вы хотите отключить или включить все сетевые интерфейсы;
- -s — вывести краткий список интерфейсов.
Обратите внимание, что для использования утилиты вам понадобятся права суперпользователя. А теперь давайте рассмотрим несколько примеров.
Примеры использования ifconfig
Для начала давайте просмотрим список интерфейсов, подключенных к вашей системе и активированных в данный момент. Для этого достаточно выполнить команду без параметров:
Вы можете вывести только информацию про определенный интерфейс, например, про eth0:
sudo ifconfig eth0
Чтобы посмотреть список интерфейсов с минимальной информацией о них используйте опцию -s:
С помощью опции -a вы можете вывести все интерфейсы, даже те, которые сейчас отключены:
Чтобы включить интерфейс используется команда ifconfig eth0 up:
sudo ifconfig eth0 up
Чтобы отключить — down:
sudo ifconfig eth0 down
Вы можете получить более подробную информацию об ошибках с помощью опции -v:
Включить поддержку протокола ARP для интерфейса:
sudo ifconfig eth0 arp
Отключить поддержку ARP:
sudo ifconfig eth0 -arp
Включить неразборчивый режим, в котором интерфейс принимает все, проходящие через него пакеты:
sudo ifconfig eth0 promisc
sudo ifconfig eth0 -promisc
С помощью команды netmask вы можете установить маску сети для интерфейса:
sudo ifconfig eth0 netmask 255.255.255.0
Чтобы добавить ip адрес для интерфейса используйте просто укажите его после интерфейса:
sudo ifconfig eth0 192.168.1.11
Команда broadcast позволяет установить широковещательный адрес:
sudo ifconfig eth0 broadcast 192.168.1.255
С помощью команды hw вы можете установить аппаратный адрес или так называемый, MAC адрес. Здесь, кроме самого адреса нужно указать тип сети. Это ether для проводного подключения Ethernet, ax25 (AMPR AX.25), ARCnet и netrom (AMPR NET/ROM). Например:
sudo ifconfig eth0 hw ether BC:AE:C5:BE:8B:B7
С помощью mtu вы можете изменить максимальный размер пакета:
sudo ifconfig eth0 mtu 1000
Это были все основные примеры. В отличие от ip, команда ifconfig не содержит всех необходимых возможностей для полноценной настройки сети и поэтому вам еще придется использовать такие утилиты, как route или arp.
Фактически, настройка ifconfig сети будет выполняться в несколько команд. Допустим, мы будем настраивать интерфейс eth0:
sudo ifconfig eth0 up
$ sudo ifconfig eth0 add 192.168.1.10
$ sudo ifconfig eth0 netmask 255.255.255.0
$ sudo ifconfig eth0 broadcast 192.168.1.255
$ sudo route add default gw 192.168.1.1
Здесь мы используем ip адрес для компьютера 192.168.1.10, сетевую маску 255.255.255.0 и шлюз для выхода в сеть 192.168.1.1. После этих настроек осталось указать сервер DNS и интернет должен работать.
Выводы
В этой статье мы рассмотрели как работает команда ifconfig и что с ее помощью мы можем настроить. Я, как и раньше рекомендую использовать утилиту ip, так как она новее, и применяется в большинстве дистрибутивов по умолчанию. Но Linux — свободная система и вы можете использовать те инструменты, которые вам нравятся.
Настройка сети в Linux – команда ifconfig
В системах Linux, как и в остальных операционных системах (ОС) предусмотрены широкие возможности для организации сетей. В частности, необходимо конфигурировать сетевые интерфейсы для построения сети на сетевом уровне. С этой задачей успешно справляется команда ifconfig. Она предназначена для выполнения отключений/подключений сетевых интерфейсов, а также указания IP-адресов, масок подсетей, протоколов и других параметров работы сети.
Как работает ifconfig
При старте системы, на этапе начальной загрузки (в большинстве случаев) выполняется запуск ifconfig. При этом в качестве аргументов используются данные из конфигурационного файла по-умолчанию, либо переопределённые администратором/пользователем.
Если при запуске команды, получите ошибку «bash: ifconfig: команда не найдена», то необходимо установить пакет net-tools
Для указания самого сетевого интерфейса в команде ifconfig используются имена, состоящие из двух или трёх символов, за которыми следует цифра, например: ln0, lo, lan0, eth0, ie0, we0 и т. д., однако в современных Linux-дистрибутивах всё чаще встречаются и более длинные наименования сетевых интерфейсов. Интерфейс lo в Linux обозначает интерфейс с обратной связью. Чтобы узнать, какие в системе используются сетевые интерфейсы, достаточно просто дать команду ifconfig, но стоит помнить, что в этом случае будут выведены только активные или включенные сети, т. е. если, к примеру в системе отключен какой-либо сетевой интерфейс (модуль беспроводной связи Wi-Fi/Bluetooth, например), то он в этом случае выведен не будет. Для получения списка всех сетевых интерфейсов, известных системе с их настройками нужно использовать команду ifconfig -a. Чтобы получить сведения о конкретном интересующем интерфейсе, следует явно указать в команде ifconfig его наименование:
В данном выводе флаг RUNNING указывает, что eth1 является активным — т. е. имеет активные соединения и пропускает трафик. Флаг BROADCAST означает широковещательное соединение. Другими важными сведениями являются IP-адреса в семействах протоколов IPv4 (inet), IPv6 (inet6), подсеть — netmask, а также диапазон широковещательного соединения broadcast. Для анализа активности служат строки RX/TX.
Синтаксис и основные опции
В большинстве UNIX-подобных систем (в том числе и Linux) команда ifconfig имеет следующий синтаксис:
Так, например, следующая команда:
задаст IP-адрес 192.168.0.100 для устройства eno1, используемого соответствующей сетевой картой, назначит подсеть для данного узла с помощью опции netmask и задействует его — опцией up. В данном случае параметр [семейство] не задан, т. к. по-умолчанию используется inet – протокол IPv4. Для одного интерфейса можно задавать несколько протоколов, но конфигурировать их нужно по отдельности. В качестве адреса можно также использовать и имена узлов. Опция up в данном примере задана явно, хотя при назначении адреса его активация/включение происходит по-умолчанию. Для отключения используется опция down.
Для команды ifconfig существует много опций и многие из них требуют дополнительных параметров, которые вводятся сразу после имени опции через символ пробела. Вот некоторые из них: