Каква е разликата между локалния и локалния IP адрес?

Съдържание:

Каква е разликата между локалния и локалния IP адрес?
Каква е разликата между локалния и локалния IP адрес?

Видео: Каква е разликата между локалния и локалния IP адрес?

Видео: Каква е разликата между локалния и локалния IP адрес?
Видео: 2023 cyber security getting started - YouTube 2024, Март
Anonim
 Ако правите много мрежови манипулации, конфигуриране на LAN приложения и сървърни инструменти или просто любопитни, вероятно сте забелязали, че има разлика между localhost и локалния IP адрес. Прочетете, за да научите разликите.
Ако правите много мрежови манипулации, конфигуриране на LAN приложения и сървърни инструменти или просто любопитни, вероятно сте забелязали, че има разлика между localhost и локалния IP адрес. Прочетете, за да научите разликите.

Днешната сесия за въпроси и отговори ни идва с любезното съдействие на SuperUser - подразделение на Stack Exchange - обединяване на уеб сайтове с въпроси и отговори.

Въпроса

Четецът на SuperUser 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?

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

Отговорът

Contributor на SuperUser Tom Wijsman предлага следното разбиране за фините разлики между двете:

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 обратния IP адрес

::1

(вж. RFC 2373), както е посочено първо.

Добре, откъде идват, нека да разгледаме файла на хостовете.

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 и след това натиснете ENTER.
    3. Кликнете два пъти върху DisabledComponents.
  3. Въведете една от следните стойности в полето Данни за стойността: за да конфигурирате протокола IPv6 до желаното състояние и след това щракнете върху OK:

    • Тип

      0

      за да активирате всички компоненти на IPv6. (Настройка по подразбиране за Windows)

    • Тип

      0xffffffff

      за да деактивирате всички компоненти на IPv6, с изключение на интерфейса за IPv6 loopback. Тази стойност също така конфигурира Windows да предпочита използването на Internet Protocol version 4 (IPv4) през IPv6 чрез промяна на записи в таблицата с правила за префикс. За повече информация вижте Избор на източник и целеви адрес.

    • Тип

      0x20

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

    • Тип

      0x10

      да деактивирате IPv6 на всички nontunnel интерфейси (както на LAN и Point-to-Point Protocol [PPP] интерфейси).

    • Тип

      0x01

      да деактивирате IPv6 на всички тунелни интерфейси. Те включват протокола за адресиране на автоматичен тунел (ISATAP) в рамките на обекта, 6to4 и Teredo.

    • Тип

      0x11

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

  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.

Ах, така че използвайки тази KB, можем да добавим вписвания тук, които означават, че IPv4 има по-висок приоритет от IPv6.

Забележка: Няма причина да пренебрегвате това поведение, освен ако не изпитвате съвместими проблеми. Промяната на тази настройка на нашия Windows Server разруши нашия пощенски сървър, така че трябва да се борави внимателно …

Няма нищо, което да ни хареса повече от задълбочен и информативен отговор с свързаните с тях документи за подкрепа. Ясно е, че localhost и локалният IP адрес са отделни обекти, обслужват различни цели и сега всички знаем защо.

Имате ли нещо, което да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други потребители на Stack Exchange? Вижте цялата тема на дискусията тук.

Препоръчано: