Я розумію, що 127.0.0.1 вказує на localhost
так само, як і на 0.0.0.0 (виправте мене, якщо я помиляюся). Отже, яка різниця між 127.0.0.1 та 0.0.0.0?
2130706433
.
Я розумію, що 127.0.0.1 вказує на localhost
так само, як і на 0.0.0.0 (виправте мене, якщо я помиляюся). Отже, яка різниця між 127.0.0.1 та 0.0.0.0?
2130706433
.
Відповіді:
127.0.0.1
- це адреса зворотного зв'язку (також відомий як localhost).
0.0.0.0
це нерутальна мета-адреса, що використовується для позначення недійсної, невідомої або непридатної цілі (немає конкретного заповнювача адреси адреси).
У контексті запису маршруту він зазвичай означає маршрут за замовчуванням.
У контексті серверів 0,0.0.0 означає "всі адреси IPv4 на локальній машині". Якщо хост має дві ip адреси, 192.168.1.1 та 10.1.2.1, а сервер, який працює на хості, прослуховує на 0.0.0.0, він буде доступний для обох цих IP-адрес.
127.0.0.1 - адреса Інтернет-протоколу зворотного зв'язку (IP), яка також називається "localhost". Ця адреса використовується для встановлення IP-з'єднання до тієї ж машини або комп'ютера, якими користується кінцевий користувач.
Ця ж умова визначена і для комп'ютерів, які підтримують IPv6-адресування, використовуючи конотацію :: 1. Встановлення з'єднання за допомогою адреси 127.0.0.1 - найпоширеніша практика; однак, використовуючи будь-яку IP-адресу в діапазоні 127 . . * буде працювати тим самим чи подібним чином. Конструкція циклічного зворотного зв'язку дає комп'ютеру або пристрою, здатному мережу, можливість перевірити або встановити IP-стек на машині.
Джерело: 127.0.0.1 - у чому його використання та чому це важливо?
Мережі класу А класу 127 присвоюється функція "зворотного звороту", тобто дейтаграма, що надсилається протоколом вищого рівня на мережеву адресу 127, повинна повертатися назад всередині хоста. Жодна дейтаграма, "надіслана" за мережевою адресою 127, ніколи не повинна з’являтися в будь-якій мережі.
Джерело: Номери мережі
Призначення діапазону зворотного зв'язку - тестування реалізації протоколу TCP / IP на хості. Оскільки нижні шари мають коротке замикання, пересилання на адресу зворотного зв'язку дозволяє ефективно перевіряти вищі шари (IP та вище) без шансу проявитись проблеми на нижніх шарах. 127.0.0.1 - адреса, яка найчастіше використовується для тестування.
Джерело: Зарезервовані IP-адреси, Loopback та приватні адреси
Для отримання додаткової інформації дивіться https://askubuntu.com питання Що таке пристрій для зворотного зв'язку та як ним користуватися? і чому IP-адреса із зворотним зв'язком від 127.0.0.1 до 127.255.255.254? .
"0.0.0.0" - синтаксис дійсної адреси. Таким чином, він повинен розбиратись як дійсний там, де очікується IP-адреса в традиційній точково-десятковій нотації. Після розбору та перетворення його в працюючу числову форму, то його значення визначає, що буде далі.
Значення "нуль" має особливе значення. Отже, він "дійсний", але має значення, яке може бути невідповідним (і таким чином трактуватися як недійсне) для певних обставин. Це в основному заповнювач місця "без конкретної адреси". Для таких речей, як прив'язка адреси мережевих з'єднань, результатом може бути призначення присвоєння відповідної адреси інтерфейсу. Якщо ви використовуєте його для налаштування інтерфейсу, він може замість нього видалити адресу. Це залежить від контексту використання для визначення того, що насправді робить "жодна конкретна адреса".
У контексті запису маршруту він зазвичай означає маршрут за замовчуванням . Це відбувається в результаті більшої кількості маски адреси, яка вибирає біти для порівняння. Маска "0.0.0.0" не вибирає біт, тому порівняння завжди буде успішним. Отже, коли такий маршрут налаштований, пакети завжди є десь (якщо вони налаштовані з дійсним пунктом призначення).
У деяких випадках просто "0" також буде працювати і мати такий же ефект. Але це не гарантується. Форма "0.0.0.0" - це стандартний спосіб сказати "немає конкретної адреси" (в IPv6, тобто ":: 0" або просто "::").
Джерело: Яке значення IP-адреси 0.0.0.0
У версії 4 Інтернет-протоколу адреса 0.0.0.0 - це мета-адреса, що не використовується маршрутизацією, яка використовується для позначення недійсної, невідомої або непридатної цілі. Для надання особливого значення інакше недостовірним фрагментам даних є додаток внутрішньодіапазонної сигналізації.
У контексті серверів 0,0.0.0 означає "всі адреси IPv4 на локальній машині". Якщо хост має дві ip адреси, 192.168.1.1 та 10.1.2.1, а сервер, який працює на хості, прослуховує на 0.0.0.0, він буде доступний для обох цих IP-адрес.
У контексті маршрутизації 0,0.0,0 зазвичай означає маршрут за замовчуванням, тобто маршрут, який веде до "решти" Інтернету, а не десь у локальній мережі.
Використання включає:
- Адреса, яку хост вважає власною, коли ще не була призначена адреса. Наприклад, при відправці початкового пакета DHCPDISCOVER при використанні DHCP.
- Адреса, яку хост призначає собі, коли запит адреси через DHCP не вдався, за умови, що IP стек хоста підтримує це. Це використання було замінено механізмом APIPA в сучасних операційних системах.
- Спосіб вказати "взагалі будь-який IPv4-хост". Він використовується таким чином при визначенні маршруту за замовчуванням.
- Спосіб чітко вказати, що ціль недоступна. 1
- Спосіб визначення "взагалі будь-якої адреси IPv4". Він використовується таким чином при налаштуванні серверів (тобто при прив'язці прослуховувань розеток). Це відомо програмістам TCP як INADDR_ANY. (bind (2) пов'язує адреси, а не інтерфейси.)
У IPv6 адреса "всі нулі" записується як "::".
Джерело: 0.0.0.0
Коли клієнт завантажується вперше, він, як кажуть, перебуває у стані ініціалізації та передає повідомлення DHCPDISCOVER у локальній фізичній підмережі через порт 67 протоколу користувача Datagram (UDP) (сервер BootP). Оскільки клієнт не може дізнатися підмережу, до якої він належить, DHCPDISCOVER - це трансляція всіх підмереж (IP-адреса призначення 255.255.255.255) з вихідною IP-адресою 0,0.0.0. IP-адреса джерела - 0,0.0,0, оскільки клієнт не має налаштованої IP-адреси.Якщо DHCP-сервер існує в цій локальній підмережі і налаштований і працює правильно, DHCP-сервер почує трансляцію та відповість повідомленням DHCPOFFER. Якщо DHCP-сервера не існує в локальній підмережі, у цій локальній підмережі повинен бути агент реле DHCP / BootP для пересилання повідомлення DHCPDISCOVER на підмережу, що містить DHCP-сервер.
Цей ретрансляційний агент може бути або виділеним хостом (наприклад, Microsoft Windows Server), або маршрутизатором (наприклад, маршрутизатором Cisco, налаштованим на IP-інтерпретатори рівня оператора).
...
Після того, як клієнт отримує DHCPOFFER, він відповідає на повідомлення DHCPREQUEST, вказуючи намір про прийняття параметрів у DHCPOFFER, і переходить у стан запиту. Клієнт може отримувати кілька повідомлень DHCPOFFER, по одному від кожного сервера DHCP, який отримав оригінальне повідомлення DHCPDISCOVER. Клієнт вибирає один DHCPOFFER і відповідає лише на той DHCP-сервер, негайно відхиляючи всі інші повідомлення DHCPOFFER. Клієнт ідентифікує обраний сервер, заповнивши поле параметра Ідентифікатор сервера IP-адресою сервера DHCP. DHCPREQUEST - це також трансляція, тому всі сервери DHCP, які надіслали DHCPOFFER, побачать DHCPREQUEST, і кожен буде знати, прийнятий чи відхилений його DHCPOFFER. Будь-які додаткові параметри конфігурації, необхідні клієнту, будуть включені в поле параметрів повідомлення DHCPREQUEST.Незважаючи на те, що клієнту було запропоновано IP-адресу, він надішле повідомлення DHCPREQUEST з вихідною IP-адресою 0,0.0.0. Наразі клієнт ще не отримав підтвердження того, що ясно використовувати IP-адресу.
...
Розмова клієнт-сервер для отримання клієнтом DHCP-адреси, де клієнт і сервер DHCP проживають у одній підмережі
Джерело: Розуміння та усунення несправностей DHCP в Catalyst Switch або Enterprise Networks
Цей документ пояснює, як налаштувати маршрут за замовчуванням або крайній шлюз. Ці команди IP використовуються:
ip-шлюз за замовчуванням
ip за замовчуванням
і ip маршрут 0.0.0.0 0.0.0.0
ip маршрут 0.0.0.0 0.0.0.0
Створення статичного маршруту до мережі 0.0.0.0 0.0.0.0 - це ще один спосіб встановлення на маршрутизаторі крайнього шлюзу. Як і в ip-мережевій команді ip, використання статичного маршруту до 0.0.0.0 не залежить від протоколів маршрутизації. Однак ip маршрутизація повинна бути включена на маршрутизаторі.
Примітка: IGRP не розуміє маршрут до 0,0.0.0. Отже, він не може поширювати маршрути за замовчуванням, створені за допомогою команди ip route 0.0.0.0 0.0.0.0. Використовуйте команду ip default network, щоб IGRP розповсюджував маршрут за замовчуванням.
Джерело: Налаштування шлюзу останньої інстанції за допомогою команд IP
Вони не однакові.
127.0.0.1
є частиною мережі 127/8, яка зарезервована і вказує на той самий комп'ютер.
0.0.0.0
- це спеціальна IP-адреса, яка означає різні речі залежно від контексту.
У версії 4 протоколу Internet, адреса 0.0.0.0 - це мета-адреса, що не використовується маршрутизацією, яка використовується для позначення недійсної, невідомої або непридатної цілі. Для надання особливого значення інакше недостовірним фрагментам даних є додаток внутрішньодіапазонної сигналізації.
Можливо, ви помилилися 0.0.0.0 для 127.0.0.1, подивившись на netstat і побачивши, що місцева адреса прослуховується як 0.0.0.0, але це інший спосіб, коли використовується 0.0.0.0.
У контексті серверів 0,0.0.0 означає "всі адреси IPv4 на локальній машині". Якщо хост має дві ip адреси, 192.168.1.1 та 10.1.2.1, а сервер, який працює на хості, прослуховує на 0.0.0.0, він буде доступний для обох цих IP-адрес.
У контексті маршрутизації 0,0.0,0 зазвичай означає маршрут за замовчуванням, тобто маршрут, який веде до "решти" Інтернету, а не десь у локальній мережі.
0.0.0.0
може також іноді вказувати трансляцію, що означає всі комп'ютери в мережі.
255.255.255.255
(або більш реально щось на зразок 192.168.1.255
локальної мережі)
A special definition exists for the IP broadcast address 255.255.255.255. It is the broadcast address of the zero network or 0.0.0.0, which in Internet Protocol standards stands for this network, i.e. the local network. Transmission to this address is limited by definition, in that it is never forwarded by the routers connecting the local network to other networks.
127.0.0.1 - це одна з адрес локального комп'ютера, але будь-яка адреса 127.xyz також є іншою адресою комп'ютера (називається "адреса зворотного зв'язку"), за винятком 127.0.0.0 (підвідмережа зворотного зв'язку) та 127.255.255.255 (адреса широкомовної передачі для підмережа петлі).
127.xyz означає «тут».
0.0.0.0 зовсім інше: 0.0.0.0 - це не адреса нічого , це жарт, як *
у оболонці.
Ви не можете надсилати дані до 0.0.0.0 або активно відкривати TCP-з'єднання до 0.0.0.0, оскільки там нічого немає; 0.0.0.0 навіть не є недоступною або не маршрутизованою адресою, це безглуздо в контексті, де очікується адреса .
Ви можете використовувати joker 0.0.0.0 в контекстах, де можна необов'язково вказати адресу , це означає, що мені все одно .
Наприклад, коли ви активно відкриваєте з'єднання TCP з деяким сервером TCP (сервер TCP створюється пасивним відкритим TCP), вам потрібно вказати адресу сервера TCP (IP та номер порту), і ви можете необов'язково вибрати місцева адреса. (Оскільки ваш сокет не є серверним сокетом, ніхто не може відкрити з'єднання до нього, а адреса з вашого боку з'єднання, як правило, не дуже важлива.)
bind
Системний виклик використовується для вибору адреси локального сокета TCP. Передані дані - bind
це справді набір обмежень: обмеження на IP-адресу, обмеження на порту TCP. Звичайне текстове позначення - IP: порт. 0,0.0,0 0,0 означає будь-який IP та будь-який порт прийнятний, це нульове обмеження. 0.0.0.0:20 означає, що локальний порт повинен бути 20, будь-який IP прийнятний (0.0.0.0:20 використовується для узгодження FTP-серверів для з'єднання даних в активному режимі).
Підсистема TCP / IP вибере адресу для вашої сторони з'єднання TCP, якщо ви її не вибрали, використовуючи таблицю маршрутизації, виходячи з адреси призначення: локальна адреса сокета TCP буде локальною адресою, пов'язаною з маршрутом, відповідним до адреси призначення.
Раніше я згадував оболонку "метасимвол" *
, але сила комбінування мета-символів з такими символами, як *foo*
(будь-яке ім'я файлу, що містить "foo") не існує з обмеженнями IP-адреси, це все або нічого: або одна IP-адреса вважається прийнятним або всі адреси є. Логіка не диктує, що так має бути. Ви можете розширити інтерфейс більш насиченою мовою обмежень.
Точність:
Речення 127.xyz означає "тут" не означає, що всі ці адреси однакові. Вони представляють різні "місця" (адреси сокета), всередині локального "комп'ютера", фактично всередині локального стеку IP.
Зауваження: комп’ютер з віртуалізацією (емуляція, апаратна віртуалізація, паравіртуалізація, що ви можете придумати ...) має кілька незалежних стеків IP.
-n
або -d
прапор netstat
і пов’язані з ними програми для показу числових адрес, а не імен. 127.0.0.1 - не та сама адреса IP, як 127.16.23.42. Таким чином, 127.0.0.1:80 та 127.16.23.42:80 представляють різні адреси кінцевих точок TCP, веб-сервер за однією адресою неможливо знайти за іншою адресою.
Зазвичай ви використовуєте bind-адресу 0.0.0.0, щоб дозволити з'єднання із зовнішніх мереж та джерел. Багато серверів, таких як MySQL, зазвичай пов'язуються з 127.0.0.1, дозволяючи лише з'єднання із зворотним зв'язком, вимагаючи від адміністратора змінити його на 0,0.0.0, щоб увімкнути зовнішнє підключення.
0.0.0.0
введення адреси.