Блог компанії 3v-Hosting

Як дізнатися вашу IP-адресу в Linux різними способами

Адміністрування

11 хв.


Знання того, як отримати IP-адресу свого Linux-сервера, важливе для системних адміністраторів, розробників ПЗ і всіх, хто займається управлінням мережами. Поняття IP -адреси є основоположним у роботі з мережами і має найважливіше значення для мережевого зв'язку, дозволяючи пристроям ідентифікувати один одного і підключатися один до одного. У цій статті ми розглянемо кілька методів отримання вашої IP-адреси в середовищі ОС Linux, як внутрішньої, так і зовнішньої, з використанням різних команд і інструментів.

 

 

 

Внутрішня IP-адреса

 

Внутрішня IP-адреса (також відома як приватна IP-адреса) використовується в локальній мережі і не підлягає маршрутизації в Інтернеті. Вони важливі для внутрішнього зв'язку всередині мережі, але тим самим ми економимо безліч IP-адрес за рахунок можливості використання одних і тих же IP-адрес в різних мережах. Наприклад, у локальній мережі вашого підприємства налаштовані адреси з підмережі 192.168.12.0/24. І в іншій компанії налаштована точно така ж мережа, на тих самих IP-адресах. І ці внутрішні адреси тому і є внутрішніми, оскільки в інтернет вони не виходять, а спілкуються ці два підприємства за допомогою зовнішньої, публічної IP-адреси.

Нижче представлена таблиця із зазначеними в ній блоками IP-адрес, які відносяться до т.зв. внутрішніх адрес.

 

Таблиця - Порівняння внутрішніх підмереж

Підмережа (CIDR) Діапазон адрес Типові сценарії використання
10.0.0.0/8 10.0.0.0 – 10.255.255.255 Великі корпоративні мережі, розподілені офіси, дата-центри з великою кількістю підмереж
172.16.0.0/12 172.16.0.0 – 172.31.255.255 Мережі середніх компаній, серверні сегменти, інфраструктурні зони з гнучким підмережуванням
192.168.0.0/16 192.168.0.0 – 192.168.255.255 Домашні мережі, офісні VPN, Wi-Fi сегменти, невеликі корпоративні мережі

 

Їх дуже легко запам'ятати і розуміти, що якщо ви десь побачили одну з адрес з цих підмереж, то це внутрішня адреса.

 

 

Використання команди ip

Команда ip - це універсальний інструмент для налаштування та управління мережею в Linux. Вона значною мірою замінила стару команду ifconfig.

Виконайте в терміналі команду:

ip addr show

 

Ця команда відображає детальну інформацію про всі мережеві інтерфейси. Знайдіть запис inet під потрібним інтерфейсом (наприклад, eth0, wlan0). У виведенні будуть показані IP-адреса, маска підмережі та інші відомості.

 

user@host:~# ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> 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

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: ens0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

link/ether f0:c6:f9:ca:d6:c6 brd ff:ff:ff:ff:ff:ff

inet 192.168.12.7/24 brd 192.168.12.255 scope global dynamic noprefixroute ens0

valid_lft 70376sec preferred_lft 70376sec

 

 

Використання команди ifconfig

Хоча команда ifconfig застаріла на користь команди ip, вона все ще доступна в багатьох дистрибутивах.

Виконайте в терміналі команду:

ifconfig

 

Ця команда виведе список всіх мережевих інтерфейсів з відповідними IP-адресами. Поле inet addr показує IP-адресу кожного інтерфейсу.

 

user@host:~# ifconfig

ens0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.12.7 netmask 255.255.255.0 broadcast 192.168.12.255

ether f0:c6:f9:ca:d6:c6 txqueuelen 1000 (Ethernet)

RX packets 358201 bytes 22181271 (0.2 GB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 331273 bytes 20447094 (0.2 GB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

Використання команди hostname

Команда hostname з опцією -I також може використовуватися для відображення IP-адрес, пов'язаних з хостом.

Виконайте в терміналі команду:

hostname -I

 

Ця команда виводить всі IP-адреси, призначені хосту, розділені пробілами.

user@host:~# hostname -I

192.168.12.7

 

 

Використання nmcli

nmcli - це інструмент командного рядка для управління NetworkManager, який широко використовується в різних дистрибутивах Linux.

Виконайте в терміналі команду:

nmcli device show

 

Ця команда відображає детальну інформацію про всі мережеві інтерфейси, керовані NetworkManager, включаючи IP-адреси.

user@host:~# ifconfig

GENERAL.DEVICE: ens0

GENERAL.TYPE: wifi

GENERAL.HWADDR: F0:C6:F9:Ca:D6:C6

GENERAL.MTU: 1500

GENERAL.STATE: 100 (connected)

GENERAL.CONNECTION: MyWiFi

GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/11

IP4.ADDRESS[1]: 192.168.12.7/24

IP4.GATEWAY: 192.168.12.1

IP4.ROUTE[1]: dst = 192.168.12.0/24, nh = 0.0.0.0, mt = 600

IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.12.1, mt = 600

IP4.DNS[1]: 192.168.12.1

 

 

Використання ip route

Ви можете використовувати команду ip route, щоб отримати IP-адресу вашого основного мережевого інтерфейсу.

Виконайте в терміналі команду:

ip route get 1.1.1.1

 

Замініть 1.1.1.1 на будь-яку дійсну IP-адресу. Команда покаже інформацію про маршрутизацію та IP-адресу джерела, яка використовується для досягнення пункту призначення.

user@host:~# ip route get 8.8.8.8

8.8.8.8 via 192.168.12.1 dev ens0 src 192.168.12.7 uid 0

 

 

Коли використовувати ip і коли ifconfig

Хоча команда ifconfig досі присутня в багатьох дистрибутивах, в сучасних системах краще використовувати саме ip. Це пов'язано з тим, що пакет net-tools, до складу якого входить ifconfig, давно не розвивається і не підтримує частину актуальних мережевих функцій. Команда ip надає більш точну, детальну і актуальну інформацію про мережеві інтерфейси, маршрутизацію, link-layer параметри і стани з'єднань.

Використовувати ifconfig доречно в тих випадках, коли ви працюєте на старій системі або в мінімальній установці, де немає iproute2. Однак в повноцінному середовищі Linux і на серверних дистрибутивах команда ip є стандартом де-факто і забезпечує більш коректне відображення налаштувань мережі.

 

 

 

 

Зовнішня IP-адреса

 

Зовнішня IP-адреса (також відома як публічна IP-адреса) використовується для ідентифікації вашого пристрою в Інтернеті. Ця IP-адреса маршрутизується в Інтернеті і призначається вашим інтернет-провайдером (ISP).

 

Використання команди Curl

Curl - це інструмент командного рядка для передачі даних за допомогою URL-адрес. Його можна використовувати для звернення до веб-сервісів для отримання вашої загальнодоступної IP-адреси, наприклад до ifconfig.me.

Запустіть команду в терміналі:

curl ifconfig.me

 

Ця команда відправляє запит на ifconfig.me і відображає вашу загальнодоступну IP-адресу.

user@host:~# curl ifconfig.me

94.211.13.25

 

Використання wget

wget - ще одна утиліта командного рядка для завантаження контенту з веб-серверів. Її також можна використовувати для запиту вашої загальнодоступної IP-адреси. Розглянемо приклад з іншим веб-сервісом - icanhazip.com

Запустіть команду в терміналі:

wget -qO- icanhazip.com

 

Ця команда також витягує загальнодоступну IP-адресу з ifconfig.me і виводить її на термінал.

user@host:~# wget -qO- icanhazip.com

94.211.13.25

Насправді сервісів, подібних до ifconfig.me, багато, і нижче ми навели порівняльну таблицю подібних сервісів.

 

Таблиця - Порівняння сервісів визначення зовнішньої IP-адреси

Сервіс Тип Швидкість відповіді Додаткові дані
ifconfig.me HTTP API Дуже висока Може повертати User-Agent, заголовки, геодані
icanhazip.com HTTP / HTTPS Дуже висока Лише IP-адреса, мінімалістичний вивід
api.ipify.org HTTP / HTTPS API Висока Формат JSON, зручно для автоматизації
checkip.amazonaws.com HTTP Висока Надійний сервіс від AWS, повертає тільки IP
ipinfo.io/ip HTTP / HTTPS API Середня Підтримує детальну інформацію про мережу та геолокацію
myip.opendns.com (через DNS) DNS-запит Висока Можна використовувати без HTTP-з’єднань та веб-трафіку

 

 

 

Використання dig

dig (Domain Information Groper) - це потужна утиліта пошуку інформації з DNS-серверів. Її можна використовувати для з'ясування вашої загальнодоступної IP-адреси шляхом запиту OpenDNS.

 

Запустіть команду в терміналі:

dig +short myip.opendns.com @resolver1.opendns.com

 

Ця команда відправляє DNS-запит в OpenDNS, який відповідає вашою загальнодоступною IP-адресою.

user@host:~# dig +short myip.opendns.com @resolver1.opendns.com

94.211.13.25

 

 

Використання команди host

Команда host - це ще одна утиліта пошуку по DNS серверах, яку можна використовувати для з'ясування вашої загальнодоступної IP-адреси.

Запустіть команду в терміналі:

host myip.opendns.com resolver1.opendns.com

 

Ця команда звертається до OpenDNS і повертає вашу загальнодоступну IP-адресу.

user@host:~# host myip.opendns.com resolver1.opendns.com

Using domain server:

Name: resolver1.opendns.com

Address: 208.67.222.222#53

Aliases:

myip.opendns.com has address 94.211.13.25

 

 

 

 

Методи на основі графічного інтерфейсу

 

Якщо вам зручніше працювати в графічному інтерфейсі, більшість сучасних дистрибутивів Linux дозволяють дізнатися IP-адресу через стандартні мережеві налаштування. Залежно від використовуваного середовища робочого столу (GNOME, KDE Plasma або інші), інтерфейс може трохи відрізнятися, але логіка залишається однаковою: відкрити параметри мережі і переглянути відомості про поточне підключення.

 

Перегляд IP-адреси в GNOME

GNOME - одне з найпоширеніших середовищ робочого столу в Ubuntu, Fedora і Debian.

Для перегляду IP-адреси виконайте наступні кроки:

  1. Відкрийте «Параметри» через меню системи;
  2. Перейдіть в розділ «Мережа»;
  3. Виберіть активне з'єднання: дротове Ethernet або Wi-Fi;
  4. У вікні, що відкрилося, знайдіть блок «Деталі» або «IPv4»;
  5. Тут будуть вказані IP-адреса, маска підмережі, шлюз і DNS-сервери.

GNOME автоматично оновлює ці дані, тому інформація завжди актуальна.

 

Перегляд IP-адреси в KDE Plasma

KDE Plasma використовується в дистрибутивах Kubuntu, openSUSE і Manjaro. Інтерфейс відрізняється від GNOME, але потрібні дані знаходяться аналогічно:

  1. Відкрийте «System Settings»;
  2. Перейдіть до розділу «Network»;
  3. Виберіть активний мережевий інтерфейс;
  4. На вкладці «Details» або «IPv4» відображаються внутрішня IP-адреса, маска, шлюз, а також параметри IPv6.

Plasma надає більш детальну інформацію про з'єднання, включаючи статус маршрутів і активність інтерфейсу.

 

Використання Network Manager GUI

Практично всі Linux-системи з графічним середовищем використовують NetworkManager, який надає уніфікований інтерфейс для налаштування мереж. У більшості дистрибутивів достатньо лише:

  1. Клацнути на значок мережі в панелі завдань;
  2. Відкрити «Налаштування з'єднання»;
  3. Вибрати активне з'єднання і перейти в його «Відомості».

Тут можна побачити IP-адресу, MAC-адресу інтерфейсу і параметри маршрутизації.

 

Спеціалізовані сайти

Для визначення зовнішньої (публічної) IP-адреси можна скористатися будь-яким веб-сервісом, який відображає інформацію про підключення. Наприклад, достатньо відкрити сайт https://2ip.io або аналогічний ресурс і ваш IP буде показаний автоматично.

Слід враховувати, що при використанні VPN, проксі або вбудованих в браузер розширень дані будуть відрізнятися: сервіс покаже IP-адресу проміжного вузла, а не вашого реального підключення. Це важливо враховувати при діагностиці мережевих проблем або перевірці конфігурацій серверів.

 

 

 

 

Важливі особливості при визначенні зовнішньої IP-адреси

При перевірці публічної IP-адреси важливо враховувати, що відображуваний результат може залежати не тільки від вашої локальної машини, але і від інфраструктури провайдера або проміжних сервісів. У деяких ситуаціях сервіси визначення IP показують не вашу реальну адресу, а IP-адресу вузлів, через які проходить трафік.

На результат можуть впливати кілька параметрів, які описані нижче.

 

Cloudflare та інші CDN

Якщо ваш трафік направляється через CDN або проксі-сервіс, зовнішня адреса може належати хмарній мережі, а не вашому серверу. Це особливо важливо для веб-проектів з увімкненим режимом «проксі» в Cloudflare — сайт буде відображатися з IP Cloudflare, а не вихідного сервера.

 

Інтернет-провайдер

Деякі провайдери використовують NAT на своїй стороні. У таких випадках кілька клієнтів отримують одну загальну зовнішню IP-адресу. Подібні конфігурації типові для мобільних мереж і деяких бюджетних тарифів.

 

VPN-сервіси та розширення браузера

При увімкненому VPN або проксі-браузері (наприклад, вбудований VPN Opera) всі сайти будуть показувати IP сервера, до якого ви підключені, а не вашу реальну адресу. Це може вводити в оману при діагностиці мережі.

 

Проксі та корпоративні шлюзи

У корпоративних мережах трафік часто направляється через проксі-шлюз. У такій конфігурації публічна IP належить корпоративному вузлу, а не конкретній робочій станції користувача.

Враховуйте ці особливості перед тим, як робити висновки або налаштовувати мережеві сервіси: іноді відмінності в показаннях сервісів - це нормальний наслідок роботи мережевої інфраструктури.

 

 

 

 

Часті питання (FAQ)

Чому внутрішня і зовнішня IP-адреси відрізняються?

Внутрішня IP-адреса використовується тільки всередині вашої локальної мережі і не виходить в інтернет. Зовнішня IP призначається провайдером і доступна з глобальної мережі. Між ними зазвичай стоїть маршрутизатор, який виконує трансляцію адрес (NAT), дозволяючи декільком внутрішнім пристроям використовувати одну зовнішню IP для виходу в інтернет.

 

Чому команда hostname -I показує кілька адрес?

Команда hostname -I виводить всі IP-адреси, призначені системі. Якщо інтерфейсів кілька (Ethernet, Wi-Fi, віртуальні інтерфейси, Docker, VPN-тунелі), кожен з них може мати власний IP. Тому вивід часто містить кілька значень.

 

Що робити, якщо команда ip не знайдена?

Команда ip входить до пакета iproute2, який встановлений за замовчуванням у більшості дистрибутивів. Якщо утиліта відсутня, її можна встановити вручну через пакетний менеджер.

Приклади:

Debian/Ubuntu: apt install iproute2

RHEL/CentOS/Rocky: yum install iproute

 

Чому різні сервіси показують різні зовнішні IP-адреси?

Це може відбуватися, якщо ваш трафік проходить через NAT провайдера, VPN, проксі, CDN або прозорі шлюзи. Також різні сервіси можуть визначати IP на різних рівнях (через HTTP-запити або через DNS), що впливає на результат. Тому кілька різних значень не завжди є помилкою.

 

Як дізнатися IP-адресу на сервері без доступу до інтернету?

У цьому випадку можна визначити тільки внутрішню IP-адресу, призначену локальною мережею. Для цього підходять команди ip addr, ifconfig, nmcli, hostname -I. Зовнішню IP без доступу до інтернету отримати неможливо, оскільки вона визначається тільки зовнішніми сервісами або реєстрами мережі провайдера.

 

 

 

 

Висновок

Отримання IP-адреси Linux, внутрішньої або зовнішньої, є фундаментальним завданням для управління мережею і усунення несправностей. Методи, що обговорюються в цій статті, надають різні способи доступу до цієї інформації за допомогою інструментів командного рядка, додатків з графічним інтерфейсом або веб-браузера. Незалежно від того, чи ви віддаєте перевагу використанню команди ip, використанню веб-сервісів за допомогою curl або wget, чи використанню графічних інтерфейсів, розуміння цих методів гарантує, що ви зможете ефективно керувати конфігураціями мережі на серверах під керуванням Linux та усувати відповідні неполадки.

Для чого використовуються VPS-сервери?
Для чого використовуються VPS-сервери?

Повний огляд застосувань VPS: реальні приклади, інфраструктура для бізнесу, VPN, CI/CD та середовища розробки. Допомагає вибрати оптимальний сервер.

9 хв