Включённый интерфейс и правильный адрес — две разные вещи, и ip показывает их в одной строке.
Сетевой интерфейс — устройство, через которое ядро отправляет и принимает пакеты: сетевая карта или виртуальное устройство. У клиента это lab0. Приписка @if2 значит, что у lab0 есть парный конец на другой стороне.
IP-адрес назначают интерфейсу, по нему другие узлы находят машину. У одного интерфейса бывает несколько адресов, а бывает ни одного.
ip -brief link перечисляет интерфейсы и их состояние, ip -brief address — то же вместе с адресами. Ключ -4 оставляет только адреса IPv4 — четыре числа через точку. Без него видны и адреса IPv6, например ::1. Посмотри на саму машину:
У машины один интерфейс — lo, с адресами 127.0.0.1/8 и ::1/128. Это loopback: по этому адресу машина обращается сама к себе, наружу через него ничего не уходит. 127.0.0.1 есть у каждой машины свой, поэтому другому узлу он не подходит.
На сервере curl http://127.0.0.1/ печатает страницу сайта. Коллега открывает http://127.0.0.1/ в браузере на своём компьютере. Что он увидит?
-
Подсеть тут ни при чём:
127.0.0.1живёт наloи наружу не уходит. Соседу нужен адрес сетевого интерфейса сервера. -
127.0.0.1у каждой машины свой: браузер коллеги обратится к его же компьютеру. Сервер виден по адресу его сетевого интерфейса. -
Браузер открывает
127.0.0.1, как любой адрес, — только это его собственная машина. На сервере так же работаетcurl http://127.0.0.1/.
127.0.0.1 — адрес loopback: каждая машина отвечает по нему сама себе. Чтобы попасть на сервер, коллеге нужен адрес сетевого интерфейса сервера.
Главное в шаге
-
Адрес назначают интерфейсу: в выводе
ip -brief addressэто имя, состояние и адреса одной строкой. -
-4оставляет в выводеipтолько адреса IPv4. -
127.0.0.1наlo— сама машина, другим узлам этот адрес не подходит.