Первое, что нужно после подключения к новому серверу — понять, какие IP-адреса у него есть и на каких интерфейсах. Внешний IP обычно сразу виден в панели управления хостинга, а вот внутренний — тот, что используется для связи внутри сети, — нужно смотреть прямо в системе.
Разберём все рабочие способы: от одной быстрой команды до детального просмотра всех интерфейсов.
Внутренний IP и внешний — в чём разница?
Прежде чем к командам — коротко о терминах, чтобы не было путаницы.
Внешний (публичный) IP — адрес, по которому сервер виден в интернете. Именно его видит любой ресурс, к которому обращается машина. На VPS это обычно тот IP, который выдаёт хостинг при заказе.
Внутренний (частный) IP — адрес интерфейса внутри локальной или виртуальной сети. Он используется для связи между серверами в одной инфраструктуре, внутри контейнеров, между нодами кластера и так далее. В интернете такой адрес не маршрутизируется.
Стандартные диапазоны частных адресов (RFC 1918):
| Диапазон | Маска | Количество адресов |
|---|---|---|
| 10.0.0.0 — 10.255.255.255 | /8 | ~16 млн |
| 172.16.0.0 — 172.31.255.255 | /12 | ~1 млн |
| 192.168.0.0 — 192.168.255.255 | /16 | ~65 тыс. |
Если адрес попадает в один из этих диапазонов — это внутренний IP. Всё остальное — публичный.
Способ 1. hostname -I — самый быстрый
Если нужен просто список IP-адресов без лишних деталей:
hostname -I
Выводит все IP-адреса машины в одну строку через пробел — и IPv4, и IPv6. Никаких таблиц, никакого форматирования. Удобно, когда нужно быстро скопировать адрес или использовать в скрипте.
Способ 2. ip addr — полная информация об интерфейсах
Основной современный инструмент для работы с сетью в Linux. Команда ifconfig устарела и по умолчанию отсутствует в большинстве актуальных дистрибутивов — ip её полностью заменяет.
ip addr
или в сокращённой форме:
ip a
Вывод может выглядеть пугающе, но читается просто. Вот что важно:
lo— петлевой интерфейс (loopback), адрес127.0.0.1. Это виртуальный интерфейс для связи процессов внутри самой машины, не сетевой.eth0илиens3,enp1s0и подобные — основной сетевой интерфейс. Именно здесь будет реальный IP.inet— IPv4-адрес интерфейса.inet6— IPv6-адрес.
Показать только IPv4-адреса
ip -4 addr
Показать только конкретный интерфейс
ip addr show eth0
Вытащить только адреса без лишнего текста
ip -4 addr show scope global | grep inet | awk '{print $2}'
Эта команда выводит только IP-адреса в формате адрес/маска для всех глобальных (не loopback) интерфейсов. Удобно для скриптов.
💡 Имя основного интерфейса на VPS зависит от гипервизора и дистрибутива. Чаще всего это
eth0илиens3. Посмотреть все интерфейсы:ip link show.
Способ 3. ip route — узнать IP через таблицу маршрутизации
Ещё один способ — посмотреть, с какого адреса уходит трафик по умолчанию:
ip route get 1.1.1.1
Вывод покажет, какой локальный IP используется для исходящих соединений. Это полезно, если интерфейсов несколько и нужно понять, какой из них основной.
ip route
Эта команда выводит полную таблицу маршрутизации. Строка с default — маршрут по умолчанию; интерфейс в ней и есть основной сетевой.
Способ 4. nmcli — если используется NetworkManager
На серверах с Ubuntu Desktop или в конфигурациях, где установлен NetworkManager, удобно использовать nmcli:
nmcli device show
Выводит подробную информацию по каждому интерфейсу: IP-адрес, шлюз, DNS, статус соединения.
Если нужно только самое важное:
nmcli -g IP4.ADDRESS device show eth0
На большинстве «чистых» VPS NetworkManager не установлен, поэтому ip addr — надёжнее.
Способ 5. ifconfig — устаревший, но ещё встречается
ifconfig
На современных системах (Ubuntu 20.04+) ifconfig не установлен по умолчанию. Если он нужен:
sudo apt install net-tools
После установки команда покажет все интерфейсы. Строка inet — это IPv4-адрес, inet6 — IPv6. Функционально ifconfig уступает ip addr: меньше информации, нет поддержки некоторых современных типов интерфейсов.
💡 На новых серверах лучше сразу привыкать к
ip addr—ifconfigв какой-то момент могут убрать совсем.
Как узнать внешний IP — для сравнения
Если нужно убедиться, какой IP видит внешний мир:
curl ifconfig.me
или
curl -s https://api.ipify.org
Обе команды обращаются к внешнему сервису и возвращают публичный IP — тот, что видит интернет. Это не внутренний адрес интерфейса, а то, что видно снаружи после NAT (если он есть).
Несколько интерфейсов — как разобраться
На VPS с несколькими сетевыми картами или с настроенными VLAN, туннелями, контейнерами — интерфейсов будет много. Чтобы получить только IPv4-адреса всех активных интерфейсов одной командой:
ip -4 addr show up | grep inet | awk '{print $NF, $2}'
Вывод покажет имя интерфейса и его адрес. Легко понять, что где.
Шпаргалка
| Задача | Команда |
|---|---|
| Быстро посмотреть все IP | hostname -I |
| Полная информация по интерфейсам | ip addr или ip a |
| Только IPv4 | ip -4 addr |
| Конкретный интерфейс | ip addr show eth0 |
| Основной маршрут и интерфейс | ip route |
| Только адреса без лишнего текста | ip -4 addr show scope global | grep inet | awk '{print $2}' |
| Внешний IP | curl ifconfig.me |
Итог
Для повседневных задач достаточно двух команд: hostname -I — если нужен просто адрес, ip addr — если нужна полная картина по интерфейсам. ifconfig работает, но на новых системах его лучше не использовать.
Если сервер ещё не выбран — в каталоге PQ.Hosting можно подобрать VPS под нужную локацию и конфигурацию.