Немного теории о IP-адресах
Чтобы понять, как функционирует интернет, важно разобраться в понятии IP-адреса. Существует три основных типа IP-адресов, с которыми вы можете столкнуться:
1. Внутренний адрес (IP-адрес компьютера);
2. Адрес в локальной сети;
3. Внешний IP-адрес, доступный во всем интернете.
Внутренний IP-адрес необходим для взаимодействия программ на одном компьютере, используя сетевые протоколы. Например, браузер может получить доступ к локальному веб-серверу благодаря этому адресу. Внутренний IP-адрес всегда одинаков и равен 127.0.0.1.
Локальная сеть работает немного иначе. Интернет — это не одноранговая сеть, а множество отдельных сетей, соединённых маршрутизаторами. Если ваш компьютер подключён к интернету через маршрутизатор, то у вас есть локальная сеть, где каждое устройство (компьютер, ноутбук, смартфон) имеет свой IP-адрес для доступа друг к другу. Однако для провайдера и внешнего интернета все эти устройства имеют один общий IP-адрес — адрес роутера.
Теперь перейдем к внешнему IP-адресу. Провайдеры объединяют своих клиентов в локальную сеть, и для внешнего интернета у всех клиентов есть один общий IP-адрес. Это решение было принято из-за нехватки свободных адресов: уникальные IP-адреса теперь в основном выделяются серверам, а обычные пользователи используют NAT (Network Address Translation), что позволяет нескольким пользователям делить один внешний IP.
Ранее провайдеры выдавали пользователям динамические IP-адреса, которые менялись при перезагрузке роутера. Это позволяло получить доступ к компьютеру из интернета после настройки роутера. Но с переходом на NAT безопасность пользователей повысилась, так как их компьютеры стали менее доступны извне. Для удаленного доступа существуют такие сервисы, как Ngrok, а также можно использовать VPN.
Технология NAT позволяет компьютерам подключаться к любым серверам в интернете и получать от них ответ, но инициировать подключение из интернета к таким компьютерам невозможно. Один внешний IP-адрес принадлежит множеству пользователей, и система не знает, к какому именно компьютеру обращаться.
Таким образом, ваш домашний компьютер мог бы иметь внешний IP-адрес, доступный всем, но это нецелесообразно по двум причинам: высокая стоимость и низкая безопасность. Подключение компьютера к интернету выглядит следующим образом:
• Внешний IP-адрес, принадлежащий провайдеру и используемый для выхода в интернет сотнями пользователей;
• IP-адрес вашего роутера в локальной сети провайдера, который не доступен извне;
• IP-адрес вашего компьютера в локальной (домашней) сети, созданной роутером, используемый для взаимодействия между устройствами;
• Внутренний IP-адрес компьютера, недоступный извне и используемый только для внутренних коммуникаций. Теперь, когда вы немного разобрались в вопросе, давайте рассмотрим способы узнать свой IP на Linux.
Как узнать внутренний IP в Linux
Внутренний IP-адрес вашего компьютера всегда 127.0.0.1, и это правило справедливо не только для Linux, но и для Windows и других операционных систем. Все IP-адреса в диапазоне от 127.0.0.1 до 127.255.255.255 привязаны к локальному сетевому интерфейсу и используются для взаимодействия с текущим компьютером.
Вы можете обратиться к своему компьютеру по доменному имени localhost. Чтобы убедиться в этом, выполните следующую команду:
ping -c 3 localhost
Эта команда отправит три пакета данных на адрес localhost.
Как узнать IP в локальной сети в Linux
Чтобы узнать IP-адрес вашего устройства в локальной сети в Linux, вы можете использовать несколько команд в терминале. Вот несколько способов:
- Использование команды ip:
ip -br a

Опция -br включает сокращенный режим вывода, а a – это сокращение от address.
В выводе найдите интерфейс, который вы используете (например, eth0, wlan0 и т.д.), и посмотрите строку, начинающуюся с inet. Это и будет ваш локальный IP-адрес.
- Использование команды ifconfig:
Если у вас установлена утилита net-tools, вы можете использовать:
ifconfig
Вы можете отфильтровать лишнюю информацию и вывести только IP-адреса:
sudo ifconfig | grep "inet"

ifconfig устаревшая команда, рекомендуется использовать ip.
- Использование команды hostname:
Вы можете узнать свой IP-адрес с помощью следующей команды:
hostname -I

В локальных сетях используются специальные диапазоны IP-адресов, которые зарезервированы для частного использования. Эти адреса не могут быть использованы в качестве публичных и обеспечивают возможность создания множества сетей без конфликтов. Основные диапазоны локальных IP-адресов:
- 192.168.0.0 до 192.168.255.255
- 10.0.0.0 до 10.255.255.255
- 172.16.0.0 до 172.31.255.255
- 100.64.0.0 до 100.127.255.255
Использование этих диапазонов позволяет организовать эффективные и безопасные сети, изолируя их от глобальной сети Интернет.
Как узнать внешний IP-адрес в Linux
Узнать внешний IP-адрес в Linux можно несколькими способами. Один из самых простых — это воспользоваться веб-сайтами, которые отображают ваш IP. Для этого достаточно открыть браузер и перейти на сайт, например, ifconfig.me. Однако, если вы предпочитаете использовать терминал, существуют более удобные команды.
Вот несколько команд, которые помогут вам быстро получить внешний IP-адрес:
С использованием wget:
wget -qO- ifconfig.me
С использованием curl:
curl ifconfig.me
curl ipinfo.io/ip
curl ipecho.net/plain
curl icanhazip.com