Руководство по использованию ifconfig в сравнении с командой ip на Linux
Life-Hack [Жизнь-Взлом]/ХакингДобро пожаловать в руководство по использованию ifconfig и ip нп Linux.
Команды ifconfig и ip в основном полезны при управлении сетями в Linux/Unix-системах.
Команда ip существует уже довольно давно, но большинство людей по-прежнему используют ifconfig для повседневной настройки сети и устранения неполадок в Linux.
В этой статье я постараюсь дать вам основы, необходимые для освоения команды ip, и показать сравнение между ними.
В двух словах, инструмент Ip должен заменить ifconfig, поскольку ifconfig считается устаревшим и активная разработка над ним не ведется.
В последних версиях Linux команда ifconfig отсутствует и может быть установлена из пакета net-tools.
Установка на различные ОС приведена ниже.
Установка ifconfig на Arch
В Arch Linux инструмент ifconfig поставляется в пакете net-tools, который можно установить с помощью приведенных ниже команд.
sudo pacman -S net-tools sudo pacman -Qi net-tools Name : net-tools Version : 1.60.20160710git-1 Description : Configuration tools for Linux networking Architecture : x86_64 URL : http://net-tools.sourceforge.net/ Licenses : GPL2 .....
Чтобы убедиться в том, что инструмент установлен, достаточно выполнить команду ifconfig в терминале.
Установка ifconfig на Ubuntu
Если в вашей версии Ubuntu отсутствует команда ifconfig, ее можно установить следующим образом:
sudo apt-get install net-tools
Установка ifconfig на Fedora / CentOS
# sudo yum install net-tools # sudo dnf install net-tools
Установка команды IP на Ubuntu
Команда ip на Ubuntu обеспечивается пакетом iproute2, устанавливаемым из apt-get.
sudo apt-get install iproute2
Установка команды Ip на CentOS/Fedora
Пакет, предоставляющий команду ip, – это iproute, который может быть установлен или обновлен с помощью yum/dnf
sudo yum -y install iproute
Сравнение команд ip и ifconfig
В этом сравнении мы на нескольких примерах продемонстрируем, как выполняется команда ip и аналогичные команды, используемые в ifconfig.
Поскольку обе команды доступны во всех дистрибутивах Linux, вы можете использовать ту, которая вам более удобна.
Если вы уже давно пользуетесь ifconfig, то данное руководство познакомит вас с командами, достаточными для начала работы с инструментом ip.
Во всех примерах любая команда с префиксом ifconfig относится к инструменту ifconfig, а любая команда, начинающаяся с ip, – к инструменту управления сетью ip.
Поэтому помните об этом по ходу работы.
Отображение информации о сетевых интерфейсах и ip-адресах
Для получения всей информации, связанной с IP-адресами, с помощью ip/ifconfig используются следующие команды.
ifconfig ip addr
Как выключить/включить сетевой интерфейс:
Если необходимо отключить или включить какой-либо интерфейс, что часто делается при изменении конфигурации сети, можно воспользоваться приведенными ниже командами.
Имя интерфейса eth0 может быть заменено на любое другое.
sudo ifconfig eth0 {up|down} sudo ip link set dev eth0 {up|down}
Установим статический IP-адрес и сетевую маску:
Установка статического IP-адреса может быть выполнена с помощью команд ip или ifconfig.
Однако следует учитывать, что изменения, сделанные с помощью этих команд, не сохраняются при перезагрузках.
Изучите возможность установки статического IP с помощью утилиты nmcli или путем изменения файла конфигурации сети в дистрибутиве для получения постоянных изменений.
Пример:
sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0 sudo ip addr add 192
Удаление статического IP-адреса:
Для очистки информации об ip-адресе для интерфейса синтаксис команд приведен ниже для обоих инструментов:
sudo ifconfig eth0 del 192.168.1.10 sudo ip addr del 192.168.1.10/24 dev eth0
Установка MTU сети
MTU – это аббревиатура, обозначающая максимальную единицу передачи.
В сетевых технологиях это размер наибольшей единицы данных протокола сетевого уровня, которая может быть передана в одной сетевой транзакции.
В данном примере установлен размер mtu 1500 байт.
Большие значения MTU характерны для серверов/систем хранения данных.
sudo ifconfig eth0 mtu 1500 sudo ip link set dev eth0 mtu 1500
Включение режима Promiscuous
Promiscuous mode – это режим работы сети, при котором каждый передаваемый пакет данных может быть получен и прочитан сетевым адаптером.
Такой режим часто используется для мониторинга сетевой активности.
sudo ifconfig eth0 promisc sudo ip link set dev eth0 promisc on
Включить ARP
Протокол разрешения адресов – это коммуникационный протокол, используемый для обнаружения адреса канального уровня, связанного с заданным адресом IPv4, что является критической функцией в компьютерных сетях Internet.
Чтобы включить его, выполните команды:
sudo ifconfig eth0 arp sudo ip link set dev eth0 arp on
Установка MAC-адреса
Команды ip и ifconfig могут выполнять изменение MAC-адреса во время выполнения программы.
В данном примере мы устанавливаем MAC-адрес в значение aa:bb:cc:dd:ee:ff.
Обратите внимание, что каждая сетевая карта имеет фиксированный mac-адрес, который не может быть изменен.
Изменение mac-адреса не рекомендуется, так как это может привести к проблемам на втором уровне сетевого взаимодействия, если возникнут коллизии.
sudo ifconfig eth0 hw ether aa:bb:cc:dd:ee:ff sudo ip link set dev eth0 address aa:bb:cc:dd:ee:ff
Добавление маршрута по умолчанию через IP-шлюз
Маршрут по умолчанию может быть задан с помощью команд ip и ifconfig для направлений, для которых не определены статические маршруты.
sudo route add defau
см. также:
🖧 Команда IP route: создание статических маршрутов или изменение шлюза по умолчанию на Linux
Установка статического маршрута
Статический маршрут задает направление к определенной сети.
В данном примере мы указываем, что все пакеты, предназначенные для сети 192.168.3.0/24, должны проходить через шлюз 192.168.1.1.
Сетевым интерфейсом шлюза по умолчанию является eth0.
sudo route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.1 sudo ip route add 192.168.3.0/24 via 192.168.1.1 dev eth0
Заключение
Надеемся, что данное руководство -было полезным для ознакомления с инструментами командной строки ip и ifconfig, используемыми для управления сетями в Linux.