Два адреса одного компьютера
Подключённый к домашней сети компьютер одновременно имеет два адреса, хотя лишь один принадлежит ему самому. Внутренний, или локальный, выдаёт роутер: обычно он начинается с 192.168 или 10. Он виден только внутри вашей квартиры или офиса. Внешний, или публичный, — адрес всей сети целиком, под которым вас видят серверы в интернете. Он принадлежит роутеру, точнее, подключению.
Все устройства дома выходят наружу с одним и тем же внешним адресом, а различает их роутер по таблице соединений, о чём рассказано на странице про NAT.
Как узнать внутренний адрес
В Windows откройте командную строку и выполните ipconfig, нужный адрес указан в строке IPv4 у активного адаптера. В Linux подойдёт ip a, в macOS раздел сети в системных настройках. На телефоне адрес показан в дополнительных сведениях о сети Wi-Fi.
Адрес роутера, то есть шлюз по умолчанию, тоже виден в этих сведениях: по нему открывается панель администрирования.
Если устройств много, удобнее открыть таблицу клиентов в панели роутера: там перечислены все внутренние адреса вместе с именами устройств, и по ней легко найти нужный компьютер, принтер или телевизор.
Как узнать внешний адрес
Внутри сети внешний адрес самому устройству неизвестен, потому что подмену делает роутер. Проще всего открыть любой сервис проверки IP: сервер видит, с какого адреса пришёл запрос, и показывает его. Другой способ — посмотреть состояние WAN-подключения в панели роутера.
Сравнение этих значений полезно. Если WAN-адрес в роутере совпадает с адресом из сервиса, у вас личный публичный адрес. Если в роутере указан частный адрес или адрес из блока 100.64.0.0/10, а сервис показывает другой, значит, провайдер делает ещё одну трансляцию, и нужный вам входящий доступ не заработает: см. CGNAT.
Что из этого видят сторонние сайты
Сайты и службы видят только внешний адрес. По нему приблизительно определяется страна, город и провайдер, но не ваша квартира и не конкретное устройство. Внутренний адрес наружу не передаётся, хотя в редких случаях его выдают браузерные технологии реального времени, о чём говорится в материале про утечки через WebRTC.
Провайдер же знает, какому абоненту выдан внешний адрес в конкретный момент времени, и потому именно внешний адрес связывает активность с подключением.
Типичные путаницы
Внутренний адрес нельзя вписать в правила «доступ только с моего адреса» у внешнего сервиса: он его не увидит. Наоборот, внешний адрес бессмысленно указывать в настройках локальной печати.
Когда внешний адрес динамический, он может смениться, поэтому запоминать его надолго нет смысла. А вот внутренний адрес при резервировании в DHCP остаётся постоянным.
Ещё одна путаница связана с IPv6: там у устройства бывает сразу несколько адресов, из которых глобальный виден снаружи напрямую, без трансляции. Поэтому правила про внутренний и внешний адрес для IPv6 работают иначе.
Один внешний адрес на несколько домов
Иногда внешний адрес у вас вообще не ваш. Провайдер, у которого закончились публичные адреса, может выдавать один адрес сразу нескольким абонентам и раздавать им порты, а между вами и интернетом работает вторая трансляция. Технология называется CGNAT. Тогда «внешний» адрес, который показывает сервис проверки IP, принадлежит провайдеру и одинаков для многих соседей.
Последствия ощутимы. Не работает проброс портов и доступ из интернета к домашним устройствам. Некоторые сайты считают несколько человек с одним адресом одним посетителем, а попадание одного нарушителя может повлиять на остальных. Сетевые игры и прямые соединения между участниками устанавливаются хуже.
Признаки вы уже знаете: адрес WAN в роутере не совпадает с адресом в сервисе проверки, либо он лежит в диапазоне 100.64.0.0/10. Решение — запросить у провайдера отдельный публичный адрес, если он предоставляется, либо пользоваться схемами, где вы сами подключаетесь к внешнему серверу, а не принимаете соединения. Если в вашем случае проблемы нет, ничего делать не нужно.