Знание IP-адреса вашего Linux-компьютера — базовая, но важная задача для любого пользователя. Будь вы системным администратором, разработчиком или обычным пользователем, рано или поздно вам потребуется узнать IP вашей машины. В этой статье мы разберем все способы проверки IP-адресов в Linux — как локальных, так и внешних.
Прежде чем начать, важно понимать разницу:
192.168.x.x, 10.x.x.x или 172.16.x.x. Используется для взаимодействия между устройствами внутри сети.ip (современный способ)Команда ip пришла на смену устаревшей ifconfig и является стандартным инструментом в современных дистрибутивах.
Показать все сетевые интерфейсы:
ip addr show
# или сокращенно
ip a
Вывод будет содержать информацию о всех интерфейсах: loopback (lo), Ethernet (eth0, enpXsX), Wi-Fi (wlan0, wlpXsX) и других.
Пример вывода:
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic enp0s3
valid_lft 86394sec preferred_lft 86394sec
Здесь 192.168.1.100 — ваш локальный IP.
Показать только IPv4 адреса:
ip -4 addr show
Показать только конкретный интерфейс (например, Wi-Fi):
ip addr show wlan0
hostnameБыстрый способ получить все локальные IP-адреса одной строкой:
hostname -I
Вывод:
192.168.1.100 172.17.0.1
Преимущество: вывод содержит только IP-адреса без лишней информации, идеально для скриптов.
ifconfig (устаревший способ)Если ip недоступен, можно использовать классический ifconfig. В некоторых дистрибутивах его нужно установить отдельно (net-tools).
ifconfig
Вывод:
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
...
Для использования в скриптах или быстрого копирования:
# Получить IP для интерфейса wlan0
ip -4 addr show wlan0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
# Или с hostname (первый адрес)
hostname -I | awk '{print $1}'
Для определения внешнего IP необходимо обратиться к внешнему серверу. Вот самые популярные и надежные способы:
curlcurl — мощный инструмент для работы с сетью, установлен в большинстве систем.
Самые простые варианты:
curl ifconfig.me
curl icanhazip.com
curl ipinfo.io/ip
curl api.ipify.org
curl checkip.amazonaws.com
Все эти команды вернут только ваш IP-адрес одной строкой.
С дополнительной информацией (геолокация, провайдер):
curl ipinfo.io
Вывод:
{
"ip": "123.45.67.89",
"city": "Moscow",
"region": "Moscow",
"country": "RU",
"loc": "55.7558,37.6173",
"org": "AS12345 Some Provider",
"timezone": "Europe/Moscow"
}
wgetЕсли curl недоступен, можно использовать wget:
wget -qO- ifconfig.me
wget -qO- icanhazip.com
wget -qO- ipinfo.io/ip
Флаг -q подавляет лишний вывод, -O- выводит результат в stdout.
Чтобы не запоминать все эти команды, добавьте в ~/.bashrc:
# Внешний IP
alias myip='curl -s ifconfig.me'
# Внешний IP с геоинформацией
alias myipinfo='curl -s ipinfo.io'
# Локальный IP
alias localip='hostname -I | awk "{print \$1}"'
# Все IP
alias allips='hostname -I'
После добавления выполните source ~/.bashrc.
echo "Локальный IP: $(hostname -I | awk '{print $1}') | Внешний IP: $(curl -s ifconfig.me)"
Создайте файл ipinfo.sh:
#!/bin/bash
echo "==================================="
echo " IP-информация для $(hostname)"
echo "==================================="
echo ""
echo "Локальные IP-адреса:"
echo "-------------------"
ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | while read ip; do
echo " $ip"
done
echo ""
echo "Внешний IP-адрес:"
echo "----------------"
curl -s ifconfig.me
echo ""
echo "Геолокация (внешний IP):"
echo "------------------------"
curl -s ipinfo.io | grep -E '(ip|city|region|country|org)'
Сделайте его исполняемым:
chmod +x ipinfo.sh
./ipinfo.sh
# Для Wi-Fi
ip addr show wlan0 | grep inet | awk '{print $2}' | cut -d/ -f1
# Для Ethernet
ip addr show eth0 | grep inet | awk '{print $2}' | cut -d/ -f1
curl или wget не найденыУстановите недостающие пакеты:
Debian/Ubuntu:
sudo apt update
sudo apt install curl wget
Fedora/RHEL:
sudo dnf install curl wget
Arch Linux:
sudo pacman -S curl wget
Если вы видите только lo интерфейс, возможно:
sudo ip link set wlan0 upПроверьте:
ping 8.8.8.8curl ifconfig.coМы рассмотрели основные способы проверки IP-адресов в Linux:
| Задача | Команда |
|---|---|
| Локальный IP (все) | ip a |
| Локальный IP (чистый) | hostname -I |
| Внешний IP | curl ifconfig.me |
| Внешний IP с гео | curl ipinfo.io |
Выберите тот способ, который лучше всего подходит для ваших задач. Для повседневного использования рекомендую создать алиасы для самых частых команд — это сэкономит время и избавит от необходимости запоминать длинные команды.
Если у вас остались вопросы или вы знаете другие полезные сервисы для определения IP — делитесь в комментариях!
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()