Най-фундаменталната част от администрирането и отстраняването на неизправности в Linux е да се провери IP конфигурацията на системата, за да се уверите, че системата има валиден IP и е достъпна в локалната мрежа.
Командата ip в Linux е мощен инструмент, който не само показва текущия IP адрес на системата, но също така ви позволява да преглеждате и управлявате текущата конфигурация на мрежови интерфейси, IP адреси, маршрути и ARP таблици.
Нека да разгледаме някои от често срещаните случаи на използване на командата ip в Linux.
Намерете IP адреса на Linux
За да намерите IP адреса на вашата Linux система, използвайте командата ip, последвана от адрес , адрес или опция :
ip address
Това ще покаже конфигурацията на всички мрежови интерфейси, включително техните IP адреси.
В следващия пример можете да видите, че системата има три мрежови интерфейса: lo (loopback адрес), ens33 и ens37 . Резултатът включва следната информация:
- Информация от слой 1, като възможност за интерфейс и състояние на свързаност на физическия слой, MTU, работното състояние на интерфейса (напр. НАГОРЕ или НАДОЛУ) и дължина на опашката за предаване (qlen).
- Информация от слой 2 като MAC адреса на интерфейса.
- Информацията от слой 3 включва IP адреса и неговия тип (динамично IP адресиране или статично IP адресиране).

За да покажете кратка информация за мрежовите интерфейси, използвайте командата ip с опцията –brief , както следва:
ip --brief address show

За да покажете само информация за IPv4 адрес, използвайте следната команда:
ip -4 addr
За да разберете информацията за IP адреса на определен мрежов интерфейс, използвайте следния синтаксис:
ip address show dev [interface]
Например, за да видите IP адреса на мрежов интерфейс ens33 , командата ще бъде:
ip address show dev ens33
Преглед и промяна на MAC адреса
С помощта на командата ip можете също да видите и промените MAC адреса на вашата система.
За да видите MAC адреса на вашата Linux система, използвайте следната команда:
ip --brief link show

За да видите MAC адреса на определен интерфейс, използвайте:
ip --brief link show dev [interface]
За да промените MAC адреса, първо свалете интерфейса:
sudo ip link set dev [interface] down
След това използвайте следната команда, за да промените MAC адреса на вашия интерфейс:
sudo ip link set dev [interface] address [new-mac-adddress]
След това изведете интерфейса:
sudo ip link set dev [interface] up

Преглед на статистиката на мрежовия интерфейс
С помощта на командата ip можете също да видите статистиката на мрежовия интерфейс. Използвайте следната ip команда, за да видите статистиката за всички мрежови интерфейси на вашата система:
ip -s link

Изходът включва статистически данни като предадени и получени байтове/пакети, грешки, изпуснати пакети, мултикаст и т.н. За да покажете статистики за определен интерфейс, използвайте следния синтаксис:
ip -s link show dev [interface]
Промяна на свойствата на връзката чрез ip
За да изведете интерфейс, използвайте следната ip команда:
sudo ip link set [interface] up
За да свалите интерфейса, изпълнете:
sudo ip link set [interface] down
Можете също така да промените MTU (максимална предавателна единица) на интерфейс, като използвате следната команда:
sudo ip link set mtu [number] dev [interface]
Например, за да зададете MTU на мрежов интерфейс ens33 на 8000 , командата ще бъде:
sudo ip link set mtu 8000 dev ens33

Добавяне/премахване на IP адрес в Linux
За да добавите IP адрес към мрежов интерфейс, използвайте следния синтаксис:
ip addr add [ip-address] dev [interface]
За да добавите IP адрес 192.168.42.140/24 към мрежовия интерфейс ens33 , командата ще бъде:
ip addr add 192.168.42.140/24 dev ens33

Използвайте следния команден синтаксис, за да премахнете IP адреса от интерфейс:
ip addr del [ip-address] dev [interface]
За да премахнете IP адреса 192.168.42.140/24 от интерфейса ens33 , командата ще бъде:
ip addr del 192.168.42.140/24 dev ens33
Вижте таблицата за маршрутизиране на Linux
Командата ip route се използва за преглед и промяна на маршрутите в Linux система. За да покажете таблицата за маршрутизиране на вашата система, използвайте командата ip route без опция:
ip route

Всеки ред в изхода представлява конфигуриран маршрут. Маршрутът се състои от мрежов адрес на дестинация, следващ хоп (т.е. IP адреса на рутера), интерфейс, през който ще бъде изпратен пакетът, и показател (стойност, използвана за определяне на предпочитания маршрут, когато има множество маршрути на разположение на дестинацията). В този случай се предпочита маршрутът с по-ниска метрика.
В примера по-горе първите два записа представляват маршрута по подразбиране, който се използва, когато не е наличен друг маршрут за адреса на дестинацията. 192.168.42.2 и 192.168.10.1 са IP адресите на рутера. Dev ens33 и ens37 показват интерфейса, който ще се използва за изпращане на пакетите към рутера. Полетата proto dhcp показват, че маршрутът по подразбиране е научен от DHCP.
Вторият запис представлява адреса на APIPA (автоматично частно IP адресиране) 169.254.0.0/16 . Когато даден хост не успее да получи IP адрес от DHCP сървър, той си присвоява произволен IP адрес от тази мрежа. Позволява им да комуникират с други хостове в подмрежата, които също не са успели да получат IP адреса.
Третият и четвъртият запис показват мрежовите адреси на локалните мрежи, към които е свързана системата. 192.168.10.0 е мрежата, към която е прикачен интерфейс ens37 , докато 192.168.42.0 е мрежата , към която е прикачен ens33 .
Полето src показва IP адреса на интерфейса, използван като адрес на източника при изпращане на пакети през този маршрут.
Променете таблицата за маршрутизиране с помощта на ip
За да добавите ръчно маршрут, използвайте командата ip route, последвана от мрежовия адрес на дестинацията и IP на шлюза:
sudo ip route add [network-id] via [gateway-ip]
Например, за да добавите маршрут, който изпраща целия трафик, предназначен за мрежата 192.168.20.0 , към шлюза на 192.168.10.16 , ще използвате следната команда:
sudo ip route add 192.168.20.0/24 via 192.168.10.16

Използвайте следната команда, за да добавите маршрут по подразбиране:
sudo ip route add default via [ip-address] dev [interface]
Например, за да добавите маршрута по подразбиране, който насочва трафика към рутера на 192.168.10.1 през ens33 , командата ще бъде:
sudo ip route add default via 192.168.10.1 dev ens33
ip route get [ip-address]
За да изтриете запис в таблицата за маршрутизиране, използвайте следния синтаксис:
sudo ip route delete [network-address] via [gateway-ip]
Можете също така да видите маршрута, който адресът ще измине, като използвате следния синтаксис:
ip route get [ip-address]

Управление на съседна таблица на Linux
Можете да използвате командата ip neigh в Linux, за да видите и модифицирате съседната таблица, известна още като ARP таблица. За да видите текущите записи в съседната таблица, използвайте следната команда:
ip neigh show

За да добавите нов запис в съседната таблица, използвайте следния синтаксис:
sudo ip neigh add [ip-address] lladdr [mac-address] dev [interface]
За да премахнете запис от съседната таблица, използвайте следния синтаксис:
sudo ip neigh del [ip-address] dev [interface]
Добавете цвят към изхода на командата ip
За да направите изхода по-лесен и по-бърз за разбиране, можете да добавите цвят към изхода на командата ip, като използвате опцията -c :
ip -c a

Управление на мрежи и IP адреси в Linux
Командата ip в Linux е полезен инструмент за администриране и отстраняване на проблеми с мрежовите връзки. От преглед на мрежовите интерфейси и модифициране на свойствата на връзката до намиране на IP адреси и управление на маршрути, командата ip ви позволява да изпълнявате няколко задачи за системно администриране чрез командния ред.
Вашият коментар