Примеры команд Linux. Команда "ip"

Цель нашей компании - предложение широкого ассортимента услуг на постоянно высоком качестве обслуживания.

Задать вопрос
Наши специалисты ответят на любой интересующий вопрос по услуге


Команда «ip» используется для настройки параметров сетевого интерфейса и назначения ему адреса в ОС Linux. Эта команда заменяет старую добрую и устаревшую команду «ifconfig» в современных дистрибутивах Linux. В статье описываются её различные способы применения.

Как использовать команду IP

Команда "ip"имеет следующий синтаксис:
ip [OPTION] OBJECT {COMMAND | help} 

Примеры объектов (OBJECT) приведены ниже. Их можно использовать в полной или сокращённой форме.

Объект

Сокращенная форма

Назначение

link l Отображение и изменение сетевых интерфейсов.
address a
addr
Адрес протокола (IP или IPv6) на устройстве.
addrlabel addrl Конфигурация метки для выбора адреса протокола.
neighbour n
neigh
Отображение и управление соседними объектами (таблица ARP).
route r Запись таблицы маршрутизации.
rule ru Правило в базе данных политик маршрутизации.
maddress m
maddr
Многоадресный адрес.
mroute mr Запись кэша многоадресной маршрутизации.
tunnel t Туннель через IP.
xfrm x Фреймворк для протокола IPsec.

Для получения подробной информации о каждом объекте примените команду справки:
ip OBJECT help
ip OBJECT h
ip a help
ip r help

Внимание: Приведённые ниже команды необходимо выполнять с осторожностью, по ошибке есть риск потерять связь с сервером. Будьте внимательны при работе с удалённым сеансом по протоколу ssh.

Примеры команд «ip»

Напишите следующую команду, чтобы вывести список и посмотреть все IP адреса сетевых интерфейсов:
ip a

или
ip addr


Пример вывода команды

Отображение IP-адреса с помощью команды «ip»

Можно посмотреть только адрес IPv4 или IPv6, для этого используется команда:
### Only show TCP/IP IPv4  ##
ip -4 a
 
### Only show TCP/IP IPv6  ###
ip -6 a

Также можно посмотреть информацию конкретного интерфейса:
### Only show eth0 interface ###
ip a show eth0
ip a list eth0
ip a show dev eth0
 
### Only show running interfaces ###
ip link ls up


Пример вывода команды

Назначить IP-адрес интерфейсу

Чтобы добавить адреса IPv4/IPv6 используется синтаксис:
ip a add {ip_addr/mask} dev {interface}

Например, назначаем 192.168.1.200/255.255.255.0 для eth0
ip a add 192.168.1.200/255.255.255.0 dev eth0
или
ip a add 192.168.1.200/24 dev eth0

Добавление широковещательного адреса на интерфейс

По умолчанию команда "ip" не добавляет широковещательных адресов, если они явно не заданы. Для назначения широковещательного адреса используется следующий синтаксис:
ip addr add brd {ADDESS-HERE} dev {interface}
ip addr add broadcast {ADDESS-HERE} dev {interface}
ip addr add broadcast 172.20.10.255 dev dummu0

Удалить / Удалить IP-адрес с интерфейса

Для удаления IPv4/IPv6-адреса из интерфейса используется синтаксис:
ip a del {ipv6_addr_OR_ipv4_addr} dev {interface}

Чтобы удалить адрес 192.168.1.200/24 с устройства ​​eth0, введите:
ip a del 192.168.1.200/24 dev eth0

Сбросить IP-адрес с интерфейса

Можно удалить IPv4/IPv6-адреса последовательно, как описано выше. Но есть еще один способ – использовать команду «flush». С помощью неё можно удалить ip-адрес в соответствии с заданным условием. Например, вы можете удалить все IP-адреса из частной сети 192.168.2.0/24, используя следующую команду:
ip -s -s a f to 192.168.2.0/24

Примеры результатов:
2: eth0    inet 192.168.2.201/24 scope global secondary eth0
2: eth0    inet 192.168.2.200/24 scope global eth0

*** Round 1, deleting 2 addresses ***
*** Flush is complete after 1 round ***

Возможно отключить IP-адрес на всех интерфейсах PPP (точка-точка):
ip -4 addr flush label "ppp*"

И еще пример для всех интерфейсов Ethernet:
ip -4 addr flush label "eth*"

Изменяем статус интерфейса UP/DOWN

Синтаксис:
ip link set dev {DEVICE} {up|down}

Чтобы перевести устройство eth1 в состояние down, введите:
ip lnk set dev eth1 down

Чтобы перевести устройство eth1 в состояние up, введите:
ip link set dev eth1 up

Как изменить txqueuelen устройства?

Вы можете установить длину очереди передачи устройства с помощью команды "ifconfig" или команды "ip" следующим образом:
ip link set txqueuelen {NUMBER} dev {DEVICE}

В примере изменяем значение txqueuelen по умолчанию с 1000 на 10000 для eth0:
ip link set txqueuelen 10000 dev eth0
ip a list eth0

Как изменить MTU устройства?

Для гигабитных сетей можно установить максимальный размер передачи (MTU) с целью повышения производительности сети.
Синтаксис:
ip link set mtu {NUMBER} dev {DEVICE}

В примерах рассматривается изменение MTU устройства eth0 на 9000:
ip link set mtu 9000 dev eth0
ip a list eth0

2: eth0:  mtu 9000 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:08:9b:c4:30:30 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.10/24 brd 192.168.1.255 scope global eth1
    inet6 fe80::208:9bff:fec4:3030/64 scope link 
       valid_lft forever preferred_lft forever

Посмотреть ip-адреса соседних устройств

Синтаксис:
in n show
ip neigh show

Примеры выходных данных (некоторые данные скрыты алфавитным набором букв):
74.xx.yy.zz dev eth1 lladdr 00:30:48:yy:zz:ww REACHABLE
10.10.29.66 dev eth0 lladdr 00:30:48:c6:0a:d8 REACHABLE
74.ww.yyy.xxx dev eth1 lladdr 00:1a:30:yy:zz:ww REACHABLE
10.10.29.68 dev eth0 lladdr 00:30:48:33:bc:32 REACHABLE
74.fff.uu.cc dev eth1 lladdr 00:30:48:yy:zz:ww STALE
74.rr.ww.fff dev eth1 lladdr 00:30:48:yy:zz:ww DELAY
10.10.29.65 dev eth0 lladdr 00:1a:30:38:a8:00 REACHABLE
10.10.29.74 dev eth0 lladdr 00:30:48:8e:31:ac REACHABLE

STALE - означает действительную, но недоступную запись.

DELAY - означает, что ядро всё еще ожидает проверки из устаревшей записи.

REACHABLE - означает действительную запись до истечения таймаута.


Добавить новую ARP- запись

Синтаксис:
ip neigh add {IP-HERE} lladdr {MAC/LLADDRESS} dev {DEVICE} nud {STATE}

В этом примере мы добавляем постоянную запись ARP для соседнего устройства 192.168.1.5 на eth0:
ip neigh add 192.168.1.5 lladdr 00:1a:30:38:a8:00 dev eth0 nud perm

Удалить ARP- запись

Синтаксис удаления записи ARP-таблицы для устройства 192.168.1.5 на eth1:
ip neigh del {IPAddress} dev {DEVICE}
ip neigh del 192.168.1.5 dev eth1

Изменить статус на «доступен» для соседнего устройства 192.168.1.100 на интерфейсе eth1
ip neigh chg 192.168.1.100 dev eth1 nud reachable

Сбросить запись ARP

Команда «flush» или «f» очищает arp-таблицы с заданным условием.
Синтаксис:
ip -s -s n f {IPAddress}

или
ip -s -s n f 192.168.1.5

IP route: команды отображения и изменения таблицы маршрутизации

Для просмотра таблицы маршрутизации введите следующую команду:
ip r
ip r list
ip route list
ip r list [options] ip route


В качестве примера отобразим маршрутизацию для 192.168.1.0/24:
ip r list 192.168.1.0/24

Добавить новый маршрут

Синтаксис:
ip route add {NETWORK/MASK} via {GATEWAYIP}
ip route add {NETWORK/MASK} dev {DEVICE}
## Add default route using ip ##
ip route add default {NETWORK/MASK} dev {DEVICE}
ip route add default {NETWORK/MASK} via {GATEWAYIP}

Пример:
Добавляем маршрут к сети 192.168.1.0/24 через шлюз 192.168.1.254
ip route add 192.168.1.0/24 via 192.168.1.254

и направляем весь трафик через шлюз 192.168.1.254 на eth0:
ip route add 192.168.1.0/24 dev eth0

Удалить маршрут

Следующая команда удалит маршрут по умолчанию:
ip route del default

В примере удаляем маршрут, созданный ранее:
ip route del 192.168.1.0/24 dev eth0

Изменить MAC-адрес в Linux

MAC-адрес – это физический идентификатор, назначаемый каждому интерфейсу. Его можно изменить следующим образом:
NIC="eno1" ## <-- My NIC name ##
ip link show $NIC
ip link set dev $NIC down
## set new MAC address ##
ip link set dev $NIC address XX:YY:ZZ:AA:BB:CC
ip link set dev $NIC up


Вывод сервера будет примерно таким. Он будет содержать параметры (mac - адреса всех ваших интерфейсов):

Настройка цветного вывода

Можно сделать вывод команды ip цветным и удобным для восприятия, для этого добавляем опцию: "-c".


Также для удобства можно создать постоянный псевдоним, тогда вывод команды можно будет запускать более простой командой.
alias ip='ip -c'
alias ipc='ip -c'
# run it #
ipc route
ip link


Примеры алиасов

Посмотреть IP-адреса всех сетевых интерфейсов

Команда:
$ sudo ip -br -c addr show
$ sudo ip -br -c link show

Пример вывода

Устаревшие и новые заменяющие их команды в Linux:

Устарела

Новая

ifconfig enp6s0 down
ip link set enp6s0 down
ifconfig enp6s0 up
ip link set enp6s0 up
ifconfig enp6s0 192.168.2.24
ip addr add 192.168.2.24/24 dev enp6s0
ifconfig enp6s0 netmask 255.255.255.0
ip addr add 192.168.1.1/24 dev enp6s0
ifconfig enp6s0 mtu 9000
ip link set enp6s0 mtu 9000
ifconfig enp6s0:0 192.168.2.25
ip addr add 192.168.2.25/24 dev enp6s0
netstat
ss
netstat -tulpn
ss -tulpn
netstat -neopa
ss -neopa
netstat -g
ip maddr
route
ip r
route add -net 192.168.2.0 netmask 255.255.255.0 dev enp6s0
ip route add 192.168.2.0/24 dev enp6s0
route add default gw 192.168.2.254
ip route add 192.168.2.0/24 dev enp6s0
route add default gw 192.168.2.254
ip route add default via 192.168.2.254
arp -a
ip neigh
arp -v
ip -s neigh
arp -s 192.168.2.33 1:2:3:4:5:6
ip neigh add 192.168.3.33 lladdr 1:2:3:4:5:6 dev enp6s0
arp -i enp6s0 -d 192.168.2.254
ip neigh del 192.168.2.254 dev wlp7s0


Заказать услугу
Оформите заявку на сайте, мы свяжемся с вами в ближайшее время и ответим на все интересующие вопросы.