Как узнать публичный IP-адрес сервера Linux в терминале
Зачем узнавать внешний IP-адрес сервера?
Когда вы арендуете VPS или настраиваете домашний сервер на Ubuntu/Debian, команда ip a часто показывает только внутренний (серый) IP-адрес локальной сети — например, 10.0.0.5 или 192.168.1.15. Однако для привязки домена, настройки веб-сервера или проброса портов вам нужен именно публичный (белый) IP-адрес, под которым сервер виден во всем глобальном интернете.
Сравнение локального и публичного адреса
| Тип адреса | Где отображается | Пример | Для чего нужен |
|---|---|---|---|
| Локальный (Private) | В выводе ip a | 192.168.0.10 | Связь внутри роутера/датацентра |
| Публичный (Public) | Через внешние API | 194.87.102.45 | Вход по SSH, подключение доменов |
Способы узнать внешний IP за пару секунд
- Основной способ через curl:
Откройте терминал и выполните одну из быстрых команд на выбор:curl ifconfig.me # Либо альтернативный сервис: curl api.ipify.org # Либо сервис от OpenDNS: curl icanhazip.com - Если утилита curl не установлена:
Используйте стандартную утилитуwget:wget -qO- ifconfig.me - Узнать подробную информацию с геолокацией и провайдером:
В ответе вы увидите не только IP, но также город, страну и название хостинг-провайдера.curl ipinfo.io
Совет для новичка: Если команда выдает ошибку Command 'curl' not found, установите её за 5 секунд командой: sudo apt update && sudo apt install curl -y.
Частые вопросы (FAQ)
Почему команда ip a не показывает мой публичный адрес?
Если сервер находится за NAT провайдера или виртуальным маршрутизатором облака, сетевая карта сервера знает только свой внутренний адрес. Запрос к внешнему сайту позволяет увидеть, под каким IP ваши пакеты выходят в интернет.
Как вывести только IPv4, если сервер имеет IPv6?
Используйте флаг -4 для принудительного использования протокола IPv4: `curl -4 ifconfig.me`.
Безопасно ли отправлять запросы на ifconfig.me?
Да, это общепринятые публичные службы для системных администраторов, которые возвращают только ваш собственный входящий IP-адрес без передачи персональных данных.
Как сохранить IP-адрес в переменную для скрипта?
Выполните команду: `MY_IP=$(curl -s ifconfig.me)` и проверяйте через `echo $MY_IP`.