ИТ База знаний
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Популярное и похожее
15 примеров команды PING для диагностики сети
15 примеров CURL в Linux
Руководство по команде grep в Linux
Установка Oracle Java 11 и OpenJDK 11 в CentOS 8 и RHEL 8
13 команд для проверки железа на сервере Linux
Как сбросить пароль в Debian
Настройка производительности и безопасности Nginx
Snom D735
Еженедельный дайджест
Команда IP в Linux: руководство с примерами
Команда ip — это сетевой инструмент Linux для системных и сетевых администраторов. IP означает Интернет-протокол и, как следует из названия, инструмент используется для настройки сетевых интерфейсов. В старых дистрибутивах Linux использовалась команда ifconfig, которая работает аналогично. Однако ifconfig имеет ограниченный диапазон возможностей по сравнению с командой ip.
В этом руководстве мы рассмотрим все важные операции, которые команда ip может выполнять в Linux.
Как использовать команду ip
Команда ip имеет следующий синтаксис:
К объектам OBJECT (или подкомандам), которые вы будете использовать чаще всего, относятся:
- link (l) — используется для отображения и изменения сетевых интерфейсов
- address (addr/a) — используется для отображения и изменения адресов протокола (IP, IPv6)
- route (r) — используется для отображения и изменения таблицы маршрутизации
- neigh (n) — используется для отображения и управления соседними объектами (таблица ARP)
Они могут использоваться как в полной, так и сокращенной форме.
Есть много других доступных объектов и команд. Чтобы увидеть полный список, введите следующую команду:
Для выполнения команд вы можете использовать либо полную, либо сокращенную формы. Например, ip link и ip l будут давать одинаковые результаты.
При настройке сетевых интерфейсов вы должны запускать команды как пользователь root или пользователь с привилегиями sudo. В противном случае вы увидите сообщение RTNETLINK answers: Operation not permitted
Предупреждение: по умолчанию система не сохраняет изменения перманентно. После перезапуска Linux-сервера вновь измененное состояние будет потеряно. Есть два способа сделать ваши настройки постоянными: добавить команды в сценарий запуска или отредактировать дистрибутивные файлы конфигурации.
Управление и отображение сетевых интерфейсов
Вы можете получить список всех параметров команды link , набрав:
Получить информацию о сетевом интерфейсе
Чтобы увидеть информацию канального уровня обо всех доступных устройствах (у которых загружен драйвер), используйте команду:
Если вы хотите, чтобы команда отображала информацию для одного конкретного устройства, введите следующее:
Чтобы просмотреть статистику по всем сетевым интерфейсам (такие детали, как переданные или отброшенные пакеты или даже ошибки), используйте:
Вы также можете увидеть аналогичную информацию для отдельного сетевого интерфейса:
Если вам нужно больше подробностей, добавьте еще -s в синтаксис:
Чтобы увидеть список только работающих интерфейсов, используйте:
Изменить статус сетевого интерфейса
Если вы хотите включить сетевой интерфейс, используйте команду:
Отключите интерфейс, введя:
Команда ip link позволяет вам изменять очередь передачи, ускоряя или замедляя интерфейсы в соответствии с вашими потребностями и аппаратными возможностями.
Вы можете установить MTU (Maximum Transmission Unit) для улучшения производительности сети:
Чтобы узнать все опции команды link, наберите:
Мониторинг и управление IP-адресами
Узнайте все команды address , набрав следующее:
Мониторинг IP-адресов
Выведите все устройства с помощью следующей команды:
Чтобы вывести список всех сетевых интерфейсов и связанных IP-адресов, используйте команду:
Вы также можете увидеть информацию об отдельной сети:
Чтобы получить список всех IPv4 адресов, используйте:
Чтобы получить список всех IPv6 адресов, используйте:
Как добавить IP-адрес в Linux
Добавьте IP-адрес в интерфейс с помощью команды:
Если указанный интерфейс не существует, отобразится сообщение: Cannot find device [interface]
Чтобы добавить два адреса на один интерфейс также используйте эту команду:
Если вам нужно добавить широковещательный (broadcast) адрес для интерфейса, используйте команду:
Чтобы удалить IP-адрес из интерфейса, выполните следующие действия.
Управление и отображение таблицы IP-маршрутизации
Просмотрите полный список команд ip route с помощью следующей команды:
Показать таблицу маршрутизации IP
Для просмотра всех записей в таблице маршрутизации используйте одну из следующих команд:
С помощью команд, приведенных выше, выходные данные отображают все записи маршрута в ядре. Если вам нужно сузить поиск, добавьте объект SELECTOR :
Чтобы просмотреть маршрутизацию для отдельной сети, используйте следующий синтаксис:
Изменить таблицу IP-маршрутизации
Чтобы добавить новую запись в таблицу маршрутизации, введите команду:
Или вы можете добавить новый маршрут через шлюз, набрав:
Также команда позволяет добавить маршрут для всех адресов через локальный шлюз, добавив параметр default :
Чтобы удалить существующую запись в таблице маршрутизации, используйте команды:
Отображение и изменение IP-записей соседей
При помощи команды ip neigh можно манипулировать таблицами ARP (Address Resolution Protocol). Это аналог команды arp
Для получения полного списка всех параметров команды neigh используйте:
Отображение IP-адресов соседей
Чтобы отобразить таблицы соседей, используйте следующую команду:
Выходные данные показывают MAC-адреса устройств, которые являются частью системы, и их состояние. Состояние устройства может быть:
- REACHABLE — означает валидную, достижимую запись до истечения таймаута.
- PERMANENT — означает постоянную запись, которую может удалить только администратор
- STALE — означает действительную, но недоступную запись
- DELAY — означает, что ядро все еще ожидает проверки из устаревшей записи
Изменить IP-записи соседей
Добавьте новую запись в таблицу с помощью команды:
Или удалите существующую запись ARP:
Было полезно?
Почему?
😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.
Утилита ip Linux
Сегодня я хочу поговорить о настройке сети в Linux и, в частности, об универсальной консольной утилите — ip. В давних инструкциях, да что там в давних, в новых тоже мы очень часто встречаем утилиты ifconfig, arp, route. Но они уже в прошлом, они устарели еще начиная с версии ядра 2.2. Утилита ip объединяет в себе возможности всех этих и нескольких других команд для управления сетью в Linux.
Утилита ip поставляется во всех дистрибутивах по умолчанию, и хотя ее предшественники тоже пока что доступны, будущее за ip, а поэтому давайте разберемся как ею пользоваться и что с помощью нее можно настроить.
Как вы поняли, в этой инструкции мы рассмотрим как использовать утилиту ip для настройки сети в Linux. Эта утилита позволит делать вам даже больше чем все те, функциональность которых она поглотила. Например, здесь вы сможете не только смотреть свойства подключения, установить ip адрес и смотреть arp таблицу, но и настроить политики маршрутизации, управлять arp таблицами, а также настраивать специфичные параметры стека TCP/IP, например, ширину окна. Конечно, учитывая такое количество функций, она сложна в освоении, но оно того стоит.
Синтаксис
Сначала рассмотрим синтаксис команды:
ip [ опции ] объект команда [ параметры ]
опции — это глобальные настройки, которые сказываются на работе всей утилиты независимо от других аргументов, их указывать необязательно.
- объект — объект или устройство, с которым будем работать или о котором будем узнавать информацию.
- команды — какое-либо действие с объектом.
- параметры — само собой, командам иногда нужно передавать параметры, они передаются в этом пункте.
Дальше рассмотрим все еще более подробно.
Опции
Поддерживаются такие опции для настройки сети в lInux:
- -v — только вывод информации об утилите и ее версии
- -s — включает вывод статистической информации
- -f — позволяет указать протокол, с которым нужно работать, если протокол не указан, то берется на основе параметров команды. Опция f должна принимать одно из значений: bridge, dnet, inet, inet6, ipx или link. По умолчанию используется inet, link — означает отсутствие протокола.
- -o — выводить каждую запись с новой строки
- -r — выполнять резолвинг и выводить символические имена хостов
- Все остальные опции — ярлыки опции -f:
- -4 — ярлык для -f inet
- -6 — -f inet6
- -B — -f bridge
- -0 — -f link
Объекты
Теперь давайте рассмотрим самые важные объекты.
- address — сетевой адрес на устройстве
- link— физическое сетевое устройство
- monitor — мониторинг состояния устройств
- neigh — ARP
- route — управление маршрутизацией
- rule — правила маршрутизации
- tunnel — настройка туннелирования
Конечно, это не все объекты которые поддерживает команда ip linux, но на первое время вам хватит. Во время ввода имя объекта может быть сокращено до одной буквы. При неоднозначности используется алфавитный порядок. Например, ip a show, расшифровывается как ip address show. Тогда как в ip r show, r — означает route.
Команды
Теперь рассмотрим доступные команды, с помощью которых может быть выполнена настройка сети linux. Вот они: add, change, del или delete, flush, get, list или show, monitor, replace, restore, save, set, и update.
Если команда не задана, по умолчанию используется show (показать).
Здесь тоже поддерживается сокращение и в большинстве случаев для выполнения нужного действия достаточно нескольких символов. Но алфавитный порядок соблюдается не всегда. Например, ip a s, означает ip address show, а не ip address set, к сожалению.
Параметры
Параметры зависят от объекта и указанной команды. Рассмотрим самые основные:
- dev имя_устройства — сетевое устройство;
- up — включить;
- down — выключить;
- lladdr — MAC — адрес;
- initcwnd — размер окна перегрузки TCP при инициализации;
- window — размер окна TCP;
- cwnd — размер окна перегрузки TCP;
- type — тип;
- via — подключиться к роутеру;
- default — маршрут по умолчанию;
- blackhole — маршрут «черная дыра» — отбрасывать пакеты и не посылать ICMP сообщения о недоступности;
- prohibit — маршрут «запрета» — отбрасывать пакеты и возвращать ICMP сообщения о запрете доступа;
- unreachable — маршрут «недостижимый» — отбрасывать пакеты и посылать ICMP пакеты о недостижимости узла.
Примеры использования
Вот теперь мы дошли к самому интересному — примерам использования утилиты ip Linux. То что я здесь опишу на самом деле лишь маленькая капля из всего того что может утилита ip. Для удобства все команды отсортированы по объектам, к которым они применяются.
ip link
Утилита ip в Linux с параметром linux позволяет управлять состоянием сетевых интерфейсов и просматривать информацию о них.
- ip link show — отобразить состояние всех сетевых интерфейсов
- ip l sh — то же самое
- ip ll — то же самое
- ip l — то же самое
- ip link show eth0 — отобразить состояние eth0
- ip link list up — отобразить статус всех включенных интерфейсов
- ip link set eth1 up — включить eth1
- ip link set eth1 down выключить eth1
ip neigbour
Объект neigbour используется для управления ARP таблицами.
- ip neigh show — показать все записи ARP
- ip n sh — то же самое
- ip n l — то же самое
- ip n — то же самое
- ip neigh show dev eth0 — посмотреть все ARP записи для eth0
- ip neigh flush — удалить все ARP записи
- ip ne fl dev eth0 — удалить все ARP записи для eth0
- ip nei add 1.1.1.13 lladdr AA:BB:CC:DD:EE:FF dev eth0 — добавить ARP запись для определенного IP адреса.
- ip n del 1.1.1.13 dev eth0 — удалить все записи для указанного адреса
ip address
Важно заметить, что вторичные ip адреса не используются в качестве исходящих адресов для отправки пакетов.
- ip address show — показать все ip адреса и их интерфейсы
- ip a sh — то же самое
- ip a list — то же самое
- ip a — то же самое
- ip a l permanent — отобразить только статические ip адреса
- ip a l dynamic — отобразить только динамические ip адреса
- ip addr add 1.1.1.13/24 dev eth0 — установить ip адрес для интерфейса eth0
- ip addr del 1.1.1.13/24 dev eth0 — удалить ip адрес интерфейса eth0
- ip add flush dev eth0 — удалить все ip адреса интерфейса eth0
ip route
Утилита ip в Linux позволяет не только устанавливать ip адреса, но и настраивать маршруты. По умолчанию в Linux используется таблица маршрутизации 254, вы также можете иметь дело с таблицей 255, которую не следует изменять, а также 253, в которой хранятся маршруты по умолчанию.
- ip r sh показать все маршруты в таблице маршрутизации
- ip route show table nnn — отобразить все маршруты из таблицы 255
- ip route get 10.10.20.0/24 — отобразить маршрут к этой сети
- ip route get 10.10.20.0/24 from 192.168.12.9 — отобразить маршрут к этой сети от указного интерфейса.
- ip route add 10.10.20.0/24 via 192.168.50.100 — создать маршрут
- ip route delete 10.10.20.0/24 — удалить маршрут.
- ip route del 10.10.20.0/24 via 192.168.50.100 — удалить маршрут.
- ip route add default via 192.168.50.100 — создать маршрут по умолчанию.
- ip route add 10.10.20.0/24 dev eth0 — создать маршрут к указной сети.
- ip route add table nnn 10.10.20.0/24 dev eth0 — создать маршрут в специальной таблице роутинга.
- ip route add blackhole 10.10.20.0/24 dev eth0 — создать blackhole маршрут.
- ip route add unreachable 10.10.20.0/24 dev eth0 — создать unreachable маршрут.
Вот и все, возможно, в будущем этот список будет пополняться. Надеюсь, утилита ip Linux уже не кажется такой непонятной. Если у вас есть вопросы или хотите предложить еще несколько команд, пишите комментарии!