- Утилита ip Linux
- Синтаксис и опции утилиты ip
- Примеры использования ip
- 1. Просмотр IP адресов
- 2. Добавление IP адреса
- 3. Удаление IP адреса
- 4. Список интерфейсов
- 5. Включение или выключение интерфейсов
- 6. Настройка MTU
- 7. Настройка MAC адреса
- 8. Таблица ARP
- 9. Добавление записи в таблицу ARP
- 10. Очистка таблицы ARP
- 11. Просмотр таблицы маршрутизации
- 12. Добавление маршрута
- 13. Удаление маршрута
- Выводы
- How to Find or Check Your IP Address in Linux
- Find Your IP Address From the Command Line
- Using the hostname Command
- Using the ip addr Command
- Using the ifconfig Command
- Finding Your IP Address in Linux With a GUI
- How to Find Public IP Address
- What is a Public/Private IP Address?
Утилита ip Linux
Если вы начинающий системный администратор, думаю, вам понадобится утилита ip. Она позволяет посмотреть сетевые интерфейсы и IP адреса им присвоенные, посмотреть и настроить таблицу маршрутизации, включать или отключать сетевые интерфейсы, управлять маршрутизацией и ARP, а также многое другое.
Раньше вместо неё использовалось несколько других утилит, одна из них — ipconfig. Однако потом им на замену пришла ip. Сейчас она уже поставляется во всех дистрибутивах, а со временем старые утилиты будут удалены, поэтому разобраться с ней стоит.
Синтаксис и опции утилиты ip
Сначала рассмотрим синтаксис команды. Утилита довольно многофункциональная, поэтому и синтаксис её вызова непростой:
$ ip [опции] объект команда [параметры]
Опции — это глобальные настройки, которые сказываются на работе всей утилиты независимо от других аргументов, их указывать необязательно.
- объект — это тип данных, с которым надо будет работать, например: адреса, устройства, таблица arp, таблица маршрутизации и так далее;
- команды — какое-либо действие с объектом;
- параметры — само собой, командам иногда нужно передавать параметры, они передаются в этом пункте.
Дальше рассмотрим все еще более подробно:
- -v, -Version — только вывод информации об утилите и ее версии.
- -h, -human — выводить данные в удобном для человека виде.
- -s, -stats — включает вывод статистической информации.
- -d, —details — показывать ещё больше подробностей.
- -f, -family — позволяет указать протокол, с которым нужно работать, если протокол не указан, то берется на основе параметров команды. Опция должна принимать одно из значений: bridge, dnet, inet, inet6, ipx или link. По умолчанию используется inet, link — означает отсутствие протокола.
- -o, -oneline — выводить каждую запись с новой строки.
- -r,-resolve — определять имена хостов с помощью DNS.
- -a, -all — применить команду ко всем объектам.
- -c, -color — позволяет настроить цветной, доступные значения: auto, always и never.
- -br, -brief — выводить только базовую информацию для удобства чтения.
- -4 — короткая запись для -f inet.
- -6 — короткая запись для -f inet-f inet6.
- -B — короткая запись для -f inet-f bridge.
- -0 — короткая запись для -f inet -f link.
Теперь давайте рассмотрим самые важные объекты.
Конечно, это не все объекты которые поддерживает команда 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, к сожалению.
Примеры использования ip
Вот теперь мы дошли к самому интересному — примерам использования утилиты ip Linux. То что я здесь опишу на самом деле лишь маленькая капля из всего того что может утилита ip.
1. Просмотр IP адресов
Чтобы посмотреть все IP адреса, связанные с сетевыми интерфейсами используйте такую команду:
Для просмотра информации в кратком виде используйте опцию -br:
Можно посмотреть IP адреса только по определённому сетевому интерфейсу, например: enp0s3:
Можно отобразить только статические IP адреса:
ip a show dev enp0s3 permanent
ip a show dev enp0s3 dynamic
2. Добавление IP адреса
Чтобы присвоить IP адрес для устройства нужно использовать команду add. Её общий синтаксис такой:
$ ip addr add IP_адрес / маска dev интерфейс
Например, давайте присвоим тому же интерфейсу enp0s3 IP адрес 10.0.2.100 с маской подсети 255.255.255.0:
ip addr add 10.0.2.100/255.255.255.0 dev enp0s3
Маску можно указать и в сокращённом виде:
ip addr add 10.0.2.100/24 dev enp0s3
3. Удаление IP адреса
Чтобы удалить IP адрес из интерфейса надо использовать команду del. Синтаксис её очень похож на предыдущую команду. Например, удалим IP адрес 10.0.2.100:
ip addr del 10.0.2.100/255.255.255.0 dev enp0s3
Можно удалять IP адреса по одному или удалить все сразу с помощью команды flush:
Или же можно удалить адреса только определённой подсети:
sudo ip a flush to 10.0.2.0/24
Если вы будете применять эти команды к интерфейсу, с помощью которого у вас работает сеть, то сеть пропадёт и чтобы её вернуть надо будет перезагрузить сетевые службы.
4. Список интерфейсов
Чтобы посмотреть список сетевых интерфейсов используйте объект link:
5. Включение или выключение интерфейсов
Для решения этой задачи тоже используется объект link, но с командой set. Синтаксис её такой:
$ ip link set dev интерфейс действие
В качестве действия можно использовать up или down. Например, чтобы отключить интерфейс enp0s3 выполните:
ip link set dev enp0s3 down
А чтобы включить его обратно:
ip link set dev enp0s3 up
6. Настройка MTU
Параметр MTU означает размер одного пакета, передаваемого по сети. Этот размер можно изменить с помощью команды set. Например, увеличим MTU для enp0s3 до 4000 тысяч байт:
ip link set mtu 4000 dev enp0s3
7. Настройка MAC адреса
Адрес MAC — это физический адрес, который используется для определения какому устройству надо передать сетевой пакет в локальной сети. Прежде чем настраивать MAC адрес ваше устройство надо отключить:
sudo ip link set dev enp0s3 down
Затем можно установить адрес:
sudo ip link set dev enp0s3 address AA:BB:CC:DD:EE:FF
А потом включить интерфейс обратно:
sudo ip link set dev enp0s3 up
8. Таблица ARP
Именно протокол ARP отвечает за преобразование IP адресов в низкоуровневые MAC адреса. Для того чтобы не отправлять ARP запросы каждый раз в сеть, кэш хранится в таблице ARP на протяжении 20-ти минут. Чтобы посмотреть содержимое таблицы ARP используйте такую команду:
9. Добавление записи в таблицу ARP
Обычно записи в эту таблицу попадают автоматически, но вы можете добавить их и вручную. Для этого используйте команду add объекта neigh:
sudo ip neigh add 192.168.0.105 lladdr b0:be:76:43:21:41 dev enp0s3
В этом примере я заставил компьютер думать, что узел с IP 192.168.0.105 это 192.168.0.1. Теперь можно попытаться выполнить ping по этому адресу и оно будет работать, несмотря на то, что реально такого узла в сети нет.
10. Очистка таблицы ARP
Вы можете удалять IP адреса по одному с помощью команды del:
sudo ip neigh del dev enp0s3 192.168.0.105
Можно удалить все записи для определённого сетевого интерфейса:
ip neigh flush dev enp0s3
Или очистить таблицу полностью командой flush:
11. Просмотр таблицы маршрутизации
Для просмотра таблицы маршрутизации используйте объект route и команду show:
12. Добавление маршрута
Синтаксис добавления нового маршрута в таблицу маршрутизации такой:
$ ip route add подсеть / маска via шлюз
Вместо шлюза можно указать сетевой интерфейс с помощью которого надо отправлять пакеты:
$ ip route add подсеть / маска dev устройство
Например, добавим новый маршрут для сети через тот же IP адрес:
sudo ip route add 169.255.0.0 via 169.254.19.153
Или можно указать сетевой интерфейс через который надо отправлять пакеты для определённой сети:
sudo ip route add 169.255.0.0 dev enp0s3
13. Удаление маршрута
Удалить маршрут можно командой с аналогичным синтаксисом, только вместо add надо использовать del:
sudo ip route del 169.255.0.0 via 169.254.19.153
Выводы
Вот и подошла к завершению наша статья. Надеюсь, утилита ip Linux уже не кажется такой непонятной. Если у вас есть вопросы или хотите предложить ещё какие-нибудь примеры, пишите комментарии!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
How to Find or Check Your IP Address in Linux
An IP address is a codename assigned to a computer on a network. It works as a postal address, ensuring that network traffic is sent to the correct computer.
In this tutorial you will learn how to find your IP address using a Linux operating system.
Find Your IP Address From the Command Line
There are a few different commands you can use to check your IP address. To run these commands, start by opening a terminal window/command line.
Using the hostname Command
One way to check your IP address from the command-line is by using the following command:
The system will display your internal IP address.
Using the ip addr Command
Check your ip address with the ip addr command:
The system will scan your hardware, and display the status for each network adapter you have. Look for an entry that says link/ether. Below it, you should see one of the following:
inet6 fe80::a00:27ff:fe76:1e71/64
The entries will include one for a wired (Ethernet) adapter and a wireless (Wi-Fi) adapter. You may also have an entry for a virtual adapter. Generally, only one entry will have an IP address listed – that is the one you will want.
Note: The number after the slash – /24 and /64 – specifies the size of the network, and it helps with scanning and mapping network size.
Using the ifconfig Command
The third method to find your IP address involves using the ifconfig command. In the command line, enter the following:
The system will display all network connections – including connected, disconnected, and virtual. Look for the one labeled UP, BROADCAST, RUNNING, MULTICAST to find your IP address. This lists both IPv4 and IPv6 addresses.
Note: When you check your IP address, you may notice the term loopback. This refers to an IP address that returns traffic to the same computer. Usually, the loopback address is 127.0.0.1 . If you see that address listed, either you are looking at the wrong line, or you are not connected to the network.
Read phoenixNAP’s ultimate Linux IP command tutorial with 31 examples to learn more!
Finding Your IP Address in Linux With a GUI
If you are using a point-and-click interface to run your Linux system, you can check your IP address by following these steps:
1. Go to the Application menu and type Settings into the search bar.
2. Click on the Settings icon that appears among the results, as in the image below:
3. Next, find the Network tab in the Settings Menu and click on the Advanced Wired Settings icon.
4. This opens a new pop-up window with details on wired settings. Here you can find both your IPv4 address and your IPv6 address.
How to Find Public IP Address
To find your public IP address, reach out to an external website.
If you are using a browser, navigate to:
If you are using a command-line or terminal, use a retrieval command like curl or wget to display the external IP address:
wget -O - -q https://checkip.amazonaws.com
Note: Did you know that when you use curl to connect to an insecure website, the output responds with an error? To resolve it, visit our guide on making curl ignore certificates.
What is a Public/Private IP Address?
Each computer in a network is required to have its own IP address. If two systems have the same IP address, it will generate errors on the network. Most modern networks will detect the problem and prompt you to fix it. However, older networks might get confused, trying to route traffic to both computers.
Most systems will have two different IP addresses:
- Private IP address: This is the address used on the network. Also, it is the one you will want to use for configuring routing tools. On smaller networks, the internal IP address typically starts with 192.168.x.x. It is dynamically assigned to your computer whenever you connect.
- Public IP address: This is the IP address that registers on a website when you visit it. When you connect to a small network, your computer connects to a router using an internal IP address. That router, in turn, connects to a bigger network (like an Internet Service Provider), which has its own IP address system.
Note: Learn everything you need to know about public and private IP addresses in our article Public vs. Private IP Address.
Now you know how to find a private and public IP address in Linux using multiple methods.
Each option strikes a balance between speed and complexity. Now you have the flexibility to choose, if you only need your internal IP address, you can use the hostname method. If you need more detailed information, view our article on 31 Linux IP Commands with examples.