Если я привязываю http-службу к 192.168.1.2, будет ли он делать дополнительные запросы к моему маршрутизатору, чтобы определить, какой у меня локальный IP-адрес, или он будет сравнивать IP-адрес с конфигурацией локальной сети и, если они совпадают, никуда не денется?
Также почему я не могу привязать службу к 127.0.0.1:8888?
Если ваш хост уже настроил 192.168.1.2 в качестве своего IP-адреса, никаких дополнительных запросов к маршрутизатору не нужно делать, чтобы привязать и прослушивать порт с этим IP.
Однако многие HTTP-серверы будут выполнять обратный DNS-поиск IP-адреса, чтобы попытаться понять, какое имя хоста связано с этим IP-адресом. Вероятно, вам не о чем беспокоиться.
Если конкретный IP-адрес настроен локально на сетевом интерфейсе, сервер будет соответствовать IP-адресу, который вы ему даете, интерфейсу, на котором находится IP. Тогда он будет только прослушивать трафик, поступающий через это устройство. (Не нужно «проверять» в сети).
Это может быть хорошей мерой безопасности, например, если у вас есть служба, которая нужна только локально (например, MySQL), не привязывайте ее к своему интернет-интерфейсу.
Обычно, если вы даете службе IP-адрес, который не существует локально, она возвращает ошибку типа «не удалось выполнить привязку к X». Однако бывают ситуации, когда вам необходимо привязать службу к IP-адресу, который в настоящее время может не существовать в службе. Примером может служить установка высокой доступности, когда IP-адреса могут перемещаться между серверами.
В этом случае настройка sysctl net.ipv4.ip_nonlocal_bind
позволит вам сделать это без ошибок.
Я бы сказал, что ваш первый вопрос зависит от операционной системы, но я не могу представить себе современную ОС, которая бы работала таким образом. Если у вас есть этот IP-адрес, назначенный сетевой карте, локальной для машины, ваш трафик не будет покидать сетевую карту.
Что касается второго вопроса, вам необходимо сообщить нам, какой HTTP-сервер вы используете и какую ОС вы используете.