Блог компании 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 и устранять соответствующие неполадки.

Как работают IP-адреса?
Как работают IP-адреса?

Подробно о том, как работают IP-адреса, различия IPv4 и IPv6, публичные и приватные IP, DNS, маршрутизация, безопасность и применение в серверной инфраструктуре...

12 мин
Обязательные настройки Nginx для WordPress
Обязательные настройки Nginx для WordPress

Ускорение WordPress на уровне Nginx: правильные настройки PHP-FPM, try_files, статика, кеширование, Brotli, защита wp-login и безопасные заголовки для стабильно...

12 мин