- Linux ip Command with Examples
- How to Use the ip Command #
- Displaying and Modifying IP Addresses #
- Display information about all IP addresses #
- Display information about a single network interface #
- Assign IP addresses to an interface #
- Assign multiple IP addresses to the same interface #
- Remove / Delete an IP address from the interface #
- Displaying and Modifying Network Interfaces #
- Display information about network interfaces #
- Команда IP в Linux: руководство с примерами
- Как использовать команду ip
- Управление и отображение сетевых интерфейсов
- Получить информацию о сетевом интерфейсе
- Изменить статус сетевого интерфейса
- Мониторинг и управление IP-адресами
- Мониторинг IP-адресов
- Как добавить IP-адрес в Linux
- Управление и отображение таблицы IP-маршрутизации
- Показать таблицу маршрутизации IP
- Изменить таблицу IP-маршрутизации
- Отображение и изменение IP-записей соседей
- Отображение IP-адресов соседей
- Изменить IP-записи соседей
Linux ip Command with Examples
The ip command is a powerful tool for configuring network interfaces that any Linux system administrator should know. It is used to bring interfaces up or down, assign and remove addresses and routes, manage ARP cache, and much more.
This article explains how to use the ip command through practical examples and detailed explanations of the most common options.
How to Use the ip Command #
The ip utility is a part of the iproute2 package that is installed on all modern Linux distributions.
The syntax for the ip command is as follows:
ip [ OPTIONS ] OBJECT COMMAND | help >
OBJECT is the object type that you want to manage. The most frequently used objects (or subcommands) are:
- link ( l ) — Display and modify network interfaces.
- address ( a ) — Display and modify IP Addresses.
- route ( r ) — Display and alter the routing table.
- neigh ( n ) — Display and manipulate neighbor objects (ARP table).
The object can be written in full or abbreviated (short) form. To display a list of commands and arguments for each object, enter, ip OBJECT help .
When configuring network interfaces, you must execute the commands as root or user with sudo privileges. Otherwise, the command will print RTNETLINK answers: Operation not permitted .
The configurations set with the ip command are not persistent. After a system restart, all changes are lost. To make the changes permanent, you need to edit the distro-specific configuration files or add the commands to a startup script.
Displaying and Modifying IP Addresses #
When operating with the addr object the commands take the following form:
ip addr [ COMMAND ] ADDRESS dev IFNAME
The most frequently used COMMANDS of the addr object are: show , add , and del .
Display information about all IP addresses #
To display a list of all network interfaces and the associated ip address type the following command:
The output will look something like this:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 2900sec preferred_lft 2900sec inet6 fe80::5054:ff:fe8c:6244/64 scope link valid_lft forever preferred_lft forever
You will get the same output if you type omit the show command and type: ip addr .
If you want to display only IPv4 or IPv6 ip addresses, use ip -4 addr or ip -6 addr .
Display information about a single network interface #
To get information about a specific network interface, use ip addr show dev followed by the device name. For example, to query eth0 , you would type:
Assign IP addresses to an interface #
To assign an IP address to an interface, use the following syntax:
ip addr add ADDRESS dev IFNAME
Where IFNAME is the interface name and ADDRESS is the IP address you want to assign to the interface.
To add address 192.168.121.45 with netmask 24 to device eth0 , you would type:
sudo ip address add 192.168.121.45/24 dev eth0
On success, the command will not show any output. If the interface doesn’t exist, you will get Cannot find device «eth0» .
Assign multiple IP addresses to the same interface #
With ip , you can assign multiple addresses to the same interface. For example:
sudo ip address add 192.168.121.241/24 dev eth0
sudo ip address add 192.168.121.45/24 dev eth0
To confirm the IPs are assigned type ip -4 addr show dev eth0 or ip -4 a show dev eth0 :
2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 3515sec preferred_lft 3515sec inet 192.168.121.45/24 scope global secondary eth0 valid_lft forever preferred_lft forever
Remove / Delete an IP address from the interface #
The syntax to remove an IP address from an interface is as below:
ip addr dev ADDRESS dev IFNAME
IFNAME is the interface name, and ADDRESS is the IP address you want to remove from the interface.
To remove address 192.168.121.45/24 from device eth0 type:
sudo ip address del 192.168.121.45/24 dev eth0
Displaying and Modifying Network Interfaces #
To manage and view the state of the network interfaces, use the link object.
When working with the link objects, the most commonly used commands are: show , set , add , and del .
Display information about network interfaces #
To display a list of all network interfaces, type the following command:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
Unlike ip addr show , ip link show will not print information about the IP addresses associated with the device.
To get information about a specific network interface, use ip link show dev followed by the device name. For example, to query eth0 you would type:
2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
Команда 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 , набрав:
Получить информацию о сетевом интерфейсе
Чтобы увидеть информацию канального уровня обо всех доступных устройствах (у которых загружен драйвер), используйте команду:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 12:24:01:8c:67:45 brd ff:ff:ff:ff:ff:ff
Если вы хотите, чтобы команда отображала информацию для одного конкретного устройства, введите следующее:
Чтобы просмотреть статистику по всем сетевым интерфейсам (такие детали, как переданные или отброшенные пакеты или даже ошибки), используйте:
Вы также можете увидеть аналогичную информацию для отдельного сетевого интерфейса:
Если вам нужно больше подробностей, добавьте еще -s в синтаксис:
Чтобы увидеть список только работающих интерфейсов, используйте:
Изменить статус сетевого интерфейса
Если вы хотите включить сетевой интерфейс, используйте команду:
Отключите интерфейс, введя:
ip link set [interface] down
Команда ip link позволяет вам изменять очередь передачи, ускоряя или замедляя интерфейсы в соответствии с вашими потребностями и аппаратными возможностями.
ip link set txqueuelen [number] dev [interface]
Вы можете установить MTU (Maximum Transmission Unit) для улучшения производительности сети:
ip link set mtu [number] dev [interface]
Чтобы узнать все опции команды link, наберите:
Мониторинг и управление IP-адресами
Узнайте все команды address , набрав следующее:
Мониторинг IP-адресов
Выведите все устройства с помощью следующей команды:
Чтобы вывести список всех сетевых интерфейсов и связанных IP-адресов, используйте команду:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 51:55:07:8a:62:44 brd ff:ff:ff:ff:ff:ff inet 192.168.120.24/24 brd 192.168.120.255 scope global dynamic eth0 valid_lft 2900sec preferred_lft 2900sec inet6 fe80::5054:ff:fe8c:6244/64 scope link valid_lft forever preferred_lft forever
Вы также можете увидеть информацию об отдельной сети:
ip addr show dev [interface]
Чтобы получить список всех IPv4 адресов, используйте:
Чтобы получить список всех IPv6 адресов, используйте:
Как добавить IP-адрес в Linux
Добавьте IP-адрес в интерфейс с помощью команды:
ip addr add [ip_address] dev [interface]
Если указанный интерфейс не существует, отобразится сообщение: Cannot find device [interface]
Чтобы добавить два адреса на один интерфейс также используйте эту команду:
ip address add 192.168.1.41/24 dev eth0 ip address add 192.168.1.40/24 dev eth0
Если вам нужно добавить широковещательный (broadcast) адрес для интерфейса, используйте команду:
ip addr add brd [ip_address] dev [interface]
Чтобы удалить IP-адрес из интерфейса, выполните следующие действия.
ip addr del [ip_address] dev [interface]
Управление и отображение таблицы IP-маршрутизации
Просмотрите полный список команд ip route с помощью следующей команды:
Показать таблицу маршрутизации IP
Для просмотра всех записей в таблице маршрутизации используйте одну из следующих команд:
default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.241 metric 100 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.241 192.168.1.1 dev eth0 proto dhcp scope link src 192.168.1.241 metric 100
С помощью команд, приведенных выше, выходные данные отображают все записи маршрута в ядре. Если вам нужно сузить поиск, добавьте объект SELECTOR :
Чтобы просмотреть маршрутизацию для отдельной сети, используйте следующий синтаксис:
Изменить таблицу IP-маршрутизации
Чтобы добавить новую запись в таблицу маршрутизации, введите команду:
ip route add [ip_address] dev [interface]
Или вы можете добавить новый маршрут через шлюз, набрав:
ip route add [ip_address] via [gateway_IP]
Также команда позволяет добавить маршрут для всех адресов через локальный шлюз, добавив параметр default :
ip route add default [ip_address] dev [device] ip route add default [network/mask] via [gateway_IP]
Чтобы удалить существующую запись в таблице маршрутизации, используйте команды:
ip route del [ip_address] ip route del default ip route del [ip_address] dev [interface]
Отображение и изменение IP-записей соседей
При помощи команды ip neigh можно манипулировать таблицами ARP (Address Resolution Protocol). Это аналог команды arp
Для получения полного списка всех параметров команды neigh используйте:
Отображение IP-адресов соседей
Чтобы отобразить таблицы соседей, используйте следующую команду:
Выходные данные показывают MAC-адреса устройств, которые являются частью системы, и их состояние. Состояние устройства может быть:
- REACHABLE — означает валидную, достижимую запись до истечения таймаута.
- PERMANENT — означает постоянную запись, которую может удалить только администратор
- STALE — означает действительную, но недоступную запись
- DELAY — означает, что ядро все еще ожидает проверки из устаревшей записи
Изменить IP-записи соседей
Добавьте новую запись в таблицу с помощью команды:
ip neigh add [ip_address] dev [interface]
Или удалите существующую запись ARP:
ip neigh del [ip_address] dev [interface]