Приватные адреса и NAT
Разбираемся, почему дома у всех «192.168.x.x», что такое приватные адреса и как работает NAT.
NAT (Network Address Translation) — подмена приватных адресов на один публичный при выходе в интернет. Позволяет целой локальной сети «прятаться» за единственным внешним IP.
Приватные диапазоны
Поскольку IPv4-адресов всего ~4,3 млрд, их не хватает на каждое устройство. Решение: выделить специальные приватные диапазоны, которые можно свободно использовать внутри любых локальных сетей. Они не маршрутизируются в интернете — их используют миллионы сетей одновременно, не конфликтуя.
| Диапазон | CIDR | Где встречается |
| 10.0.0.0 – 10.255.255.255 | 10.0.0.0/8 | крупные корпоративные сети, облака |
| 172.16.0.0 – 172.31.255.255 | 172.16.0.0/12 | средние сети, Docker |
| 192.168.0.0 – 192.168.255.255 | 192.168.0.0/16 | домашние роутеры |
Проверить, приватный ли адрес, легко на Python — у объекта адреса есть свойство is_private:
import ipaddress
print('Проверка адресов:')
for ip in ['10.0.0.5', '192.168.1.1', '172.16.0.1', '8.8.8.8', '93.184.216.34']:
a = ipaddress.ip_address(ip)
kind = 'приватный' if a.is_private else 'публичный'
print(f' {ip:16} -> {kind}')
Вывод:
Проверка адресов: 10.0.0.5 -> приватный 192.168.1.1 -> приватный 172.16.0.1 -> приватный 8.8.8.8 -> публичный 93.184.216.34 -> публичный
Как работает NAT
Дома десяток устройств с адресами 192.168.1.x, а от провайдера у вас один публичный IP. Как все они выходят в интернет? Роутер делает NAT: подменяет приватный адрес отправителя на свой публичный, запоминая соответствие в таблице.
Ноутбук 192.168.1.5:51000 --запрос--> Роутер --подмена--> 203.0.113.7:40000 --> сайт
Сайт отвечает на 203.0.113.7:40000 --> Роутер смотрит таблицу --> 192.168.1.5:51000
Роутер ведёт таблицу трансляций: «внутренний адрес:порт ↔ внешний адрес:порт». Когда приходит ответ, он по таблице понимает, какому из домашних устройств его вернуть. Поскольку различают по портам, такой вариант называют PAT (Port Address Translation), или NAT-overload — именно он работает в большинстве домашних роутеров.
Последствия NAT
- Плюс: экономия публичных адресов и побочная «защита» — снаружи к домашним устройствам напрямую не достучаться.
- Минус: входящие соединения извне не проходят без проброса портов (port forwarding). Поэтому хостить сервер дома сложнее.
- Отсюда же сложности с P2P, играми, видеозвонками — придумали обходные техники (STUN/TURN, UPnP).
Зачем это веб-разработчику
Когда вы видите в логах сервера один и тот же IP от сотни пользователей — скорее всего, они за общим NAT (офис, провайдер). Когда ваш локальный localhost:3000 не виден коллеге — это NAT и приватные адреса. Понимание NAT объясняет, почему «у меня работает, а снаружи нет».
Итог
- Приватные диапазоны:
10/8,172.16/12,192.168/16— не маршрутизируются в интернете. - NAT подменяет приватный адрес на публичный при выходе наружу.
- Роутер ведёт таблицу трансляций и различает соединения по портам (PAT).
- NAT экономит адреса, но усложняет входящие соединения.