В чем разница между Locahost и локальным IP-адресом?

Оглавление:

В чем разница между Locahost и локальным IP-адресом?
В чем разница между Locahost и локальным IP-адресом?

Видео: В чем разница между Locahost и локальным IP-адресом?

Видео: В чем разница между Locahost и локальным IP-адресом?
Видео: Windows 7. Подключение к Интернету - YouTube 2024, Ноябрь
Anonim
 Если вы много работаете с сетью, настраивая приложения на базе локальной сети и серверные инструменты, или просто любопытно, вы наверняка заметили, что существует локальный адрес локального IP-адреса. Читайте дальше, чтобы узнать различия.
Если вы много работаете с сетью, настраивая приложения на базе локальной сети и серверные инструменты, или просто любопытно, вы наверняка заметили, что существует локальный адрес локального IP-адреса. Читайте дальше, чтобы узнать различия.

Сегодняшняя сессия вопросов и ответов приходит к нам благодаря SuperUser - подразделению Stack Exchange, основанной на сообществах сайтам Q & A.

Вопрос

SuperUser reader Diogo хочет знать, почему команда ping обрабатывает локальный хост и локальный IP-адрес по-разному, когда на первый взгляд они выглядят одинаково:

Using cmd and ping on Windows gave me the following results:

Pinging “localhost”:

Pinging “192.168.0.10” (local IP address):
Pinging “192.168.0.10” (local IP address):
Aren’t both situations exactly the same?
Aren’t both situations exactly the same?

I mean, I’m pinging the same interface, the same machine and the same address. Why do I get such different results?

Очевидно, что есть какая-то разница, но что именно происходит, когда вы переключаетесь между ними?

Ответ

Докладчик SuperUser Том Вейсман предлагает следующее понимание тонких различий между ними:

You are not pinging the same interface, without any physical interfaces you still have a “local host”.

Your

localhost

используется для обозначения вашего компьютера с его «внутреннего» IP-адреса, а не с любых «внешних» IP-адресов вашего компьютера. Таким образом, пакеты ping не проходят через любой физический сетевой интерфейс; только через интерфейс обратной связи виртуального цикла, который напрямую отправляет пакеты из порта в порт без каких-либо физических перелетов.

Вы все еще можете удивиться, почему

localhost

разрешает

::1

в то время как традиционно мы ожидаем, что он решит адрес IPv4

127.0.0.1

Обратите внимание, что

.localhost

традиционно является TLD (см. RFC 2606), который указывает на обратный IP-адрес петли (для IPv4, см. RFC 3330, особенно 127.0.0.0/8).

Глядя вверх

localhost

с помощью

nslookup

дает нам:

nslookup localhost

… Name: localhost Addresses:::1 127.0.0.1

Таким образом, Windows предпочитает использовать IPv6 loop back IP-адрес

::1

(см. RFC 2373), поскольку он указан первым.

Итак, откуда это взялось, давайте посмотрим на файл hosts.

type %WINDIR%System32DriversEtcHosts

… # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost #::1 localhost …

Хм, нам нужно посмотреть настройки DNS в Windows.

В этой статье в KB рассказывается о настройке, которая влияет на то, что предпочитает Windows, выделено жирным шрифтом:

  1. В редакторе реестра найдите и выберите следующий подраздел реестра:

    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters

  2. Дважды щелкните DisabledComponents, чтобы изменить запись DisabledComponents. Примечание. Если запись DisabledComponents недоступна, вы должны ее создать. Для этого выполните следующие действия:

    1. В меню «Правка» выберите «Создать», а затем «Значение DWORD (32-бит)».
    2. Введите DisabledComponents и нажмите клавишу ВВОД.
    3. Дважды щелкните параметр «Отключенные компоненты».
  3. Введите любое одно из следующих значений в поле Значение: для настройки протокола IPv6 в нужное состояние и затем нажмите кнопку ОК:

    • Тип

      0

      для включения всех компонентов IPv6. (Настройка по умолчанию Windows)

    • Тип

      0xffffffff

      для отключения всех компонентов IPv6, за исключением интерфейса loopback IPv6. Это значение также позволяет Windows предпочитать использование протокола IP версии 4 (IPv4) по протоколу IPv6 путем изменения записей в таблице политик префикса. Для получения дополнительной информации см. Выбор источника и адреса назначения.

    • Тип

      0x20

      чтобы предпочесть IPv4 через IPv6, изменив записи в таблице политик префикса.

    • Тип

      0x10

      для отключения IPv6 на всех непереходных интерфейсах (как в интерфейсах LAN, так и в режиме Point-to-Point Protocol [PPP]).

    • Тип

      0x01

      для отключения IPv6 на всех туннельных интерфейсах. К ним относятся Intra-Site Automatic Tunnel Addressing Protocol (ISATAP), 6to4 и Teredo.

    • Тип

      0x11

      для отключения всех интерфейсов IPv6, за исключением интерфейса loopback IPv6.

  4. Перезагрузите компьютер, чтобы этот параметр вступил в силу.

Что это за таблица политик префикса?

netsh interface ipv6 show prefixpolicies

(или же

prefixpolicy

на более ранних версиях)

Precedence Label Prefix ---------- ----- -------------------------------- 50 0::1/128 45 13 fc00::/7 40 1::/0 10 4::ffff:0:0/96 7 14 2002::/16 5 5 2001::/32 1 11 fec0::/10 1 12 3ffe::/16 1 10::/96

В этой таблице определяется, какие префиксы имеют приоритет над другими префиксами во время разрешения DNS.

Ах, поэтому, используя этот КБ, мы могли бы добавить здесь записи, которые означают, что IPv4 имеет более высокий приоритет, чем IPv6.

Замечания: Нет причин переопределять это поведение, если у вас нет проблем с совместимостью. Изменение этого параметра на нашем Windows Server сломало наш почтовый сервер, поэтому его следует обрабатывать с осторожностью …

Нам ничего больше, чем подробный и информативный ответ со связанными вспомогательными документами. Очевидно, что локальный хост и локальный IP-адрес являются отдельными объектами, обслуживают разные цели, и теперь мы все знаем почему.

Есть что добавить к объяснению? Звучит в комментариях. Хотите узнать больше ответов от других пользователей Windows? Посмотрите здесь полную дискуссионную тему.

Рекомендуемые: