我們大多數人都聽說過“127.0.0.1”和“0.0.0.0”,但可能沒有考慮太多,但如果兩者似乎都指向同一個位置,那麼兩者之間的實際區別是什麼?今天的超級使用者問答帖子幫助困惑的讀者澄清了問題。
今天的問答環節是由SuperUser提供的,SuperUser是Stack Exchange的一個分支,是一個由社群驅動的問答網站分組。
照片由凱特·加德納(Flickr)提供。
超級使用者讀者Sagnik Sarkar想知道127.0.0.1和0.0.0.0之間的區別是什麼:
I understand that 127.0.0.1 points to localhost and that 0.0.0.0 also does as well (correct me if I am wrong). So, what is the difference between 127.0.0.1 and 0.0.0.0?
127.0.0.1和0.0.0.0之間有什麼區別?
超級使用者貢獻者DavidPostill為我們提供了答案:
What is the Difference Between 127.0.0.1 and 0.0.0.0?
In the context of a route entry, it usually means the default route.
In the context of servers, 0.0.0.0 means all IPv4 addresses on the local machine. If a host has two IP addresses, 192.168.1.1 and 10.1.2.1, and a server running on the host listens on 0.0.0.0, it will be reachable at both of those IPs.
What is the IP Address 127.0.0.1?
127.0.0.1 is the loopback Internet protocol (IP) address also referred to as the localhost. The address is used to establish an IP connection to the same machine or computer being used by the end-user.
The same convention is defined for computers that support IPv6 addressing using the connotation of ::1. Establishing a connection using the address 127.0.0.1 is the most common practice; however, using any IP address in the range of 127…* will function in the same or a similar manner. The loopback c***truct gives a computer or device capable of networking the capability to validate or establish the IP stack on the machine.
Source: 127.0.0.1 – What Are its Uses and Why is it Important?
Special Addresses
The class A network number 127 is assigned the loopback function, that is, a datagram sent by a higher level protocol to a network 127 address should loop back inside the host. No datagram sent to a network 127 address should ever appear on any network anywhere.
Source: Network Numbers
If it is Whole Class A, What is the Point of Other Arbitrary Values for the Last Three Octets?
The purpose of the loopback range is testing of the TCP/IP protocol implementation on a host. Since the lower layers are short-circuited, sending to a loopback address allows the higher layers (IP and above) to be effectively tested without the chance of problems at the lower layers manifesting themselves. 127.0.0.1 is the address most commonly used for testing purposes.
Source: IP Reserved, Loopback and Private Addresses
For more information see the Ask Ubuntu question: What is the Loopback Device and How do I Use it?
What is the IP Address 0.0.0.0?
0.0.0.0 is a valid address syntax. So it should parse as valid wherever an IP address in traditional dotted-decimal notation is expected. Once parsed and converted to workable numeric form, then its value determines what happens next.
The all-zero value does have a special meaning. So it is valid, but has a meaning that may not be appropriate (and thus treated as not valid) for particular circumstances. It is basically the ‘no particular address’ placeholder. For things like address binding of network connecti***, the result can be to assign an appropriate interface address to the connection. If you are using it to configure an interface, it can instead remove an address from the interface. It depends on the context of use to determine what ‘no particular address’ really does.
In the context of a route entry, it usually means the default route. That happens as a result more of the address mask, which selects the bits to compare. A mask of 0.0.0.0 selects no bits, so the comparison will always succeed. So when such a route is configured, there is always somewhere for packets to go (if configured with a valid destination).
In some cases, merely ‘0’ will also work and have the same effect. But this is not guaranteed. The 0.0.0.0 form is the standard way to say ‘no particular address’ (in IPv6 that is ::0 or just ::).
Source: What is the Meaning of the IP Address 0.0.0.0?
In Internet Protocol version 4, the address 0.0.0.0 is a non-routable meta-address used to designate an invalid, unknown, or non applicable target. To give a special meaning to an otherwise invalid piece of data is an application of in-band signaling.
In the context of servers, 0.0.0.0 means all IPv4 addresses on the local machine. If a host has two IP addresses, 192.168.1.1 and 10.1.2.1, and a server running on the host listens on 0.0.0.0, it will be reachable at both of those IPs (Note: This particular text is repeated from above as part of the overall answer).
In the context of routing, 0.0.0.0 usually means the default route, i.e. the route which leads to ‘the rest of’ the Internet instead of somewhere on the local network.
Uses Include:
In IPv6, the all-zeros-address is written as ::
Source: 0.0.0.0 [Wikipedia]
DHCP Discovery/Request
When a client boots up for the first time, it is said to be in the initializing state, and tran**its a DHCPDISCOVER message on its local physical subnet over User Datagram Protocol (UDP) port 67 (BootP server). Since the client has no way of knowing the subnet to which it belongs, the DHCPDISCOVER is an all subnets broadcast (destination IP address of 255.255.255.255), with a source IP address of 0.0.0.0. The source IP address is 0.0.0.0 since the client does not have a configured IP address.
If a DHCP server exists on this local subnet and is configured and operating correctly, the DHCP server will hear the broadcast and respond with a DHCPOFFER message. If a DHCP server does not exist on the local subnet, there must be a DHCP/BootP Relay Agent on this local subnet to forward the DHCPDISCOVER message to a subnet that contains a DHCP server.
This relay agent can either be a dedicated host (Microsoft Windows Server, for example) or a router (a Cisco router configured with interface level IP helper statements, for example).
…
After the client receives a DHCPOFFER, it responds with a DHCPREQUEST message, indicating its intent to accept the parameters in the DHCPOFFER, and moves into the requesting state. The client may receive multiple DHCPOFFER messages, one from each DHCP server that received the original DHCPDISCOVER message. The client chooses one DHCPOFFER and responds to that DHCP server only, implicitly declining all other DHCPOFFER messages. The client identifies the selected server by populating the Server Identifier option field with the DHCP server’s IP address.
The DHCPREQUEST is also a broadcast, so all DHCP servers that sent a DHCPOFFER will see the DHCPREQUEST, and each will know whether its DHCPOFFER was accepted or declined. Any additional configuration opti*** that the client requires will be included in the opti*** field of the DHCPREQUEST message. Even though the client has been offered an IP address, it will send the DHCPREQUEST message with a source IP address of 0.0.0.0. At this time, the client has not yet received verification that it is clear to use the IP address.
…
Client-server conversation for a client obtaining a DHCP address where the client and DHCP server reside on same subnet:
Source: Understanding and Troubleshooting DHCP in Catalyst Switch or Enterprise Networks
Default Route
This document explains how to configure a default route or gateway of last resort. These IP commands are used:
IP Route 0.0.0.0 0.0.0.0
Creating a static route to the network 0.0.0.0 0.0.0.0 is another way to set the gateway of last resort on a router. As with the ip default-network command, using the static route to 0.0.0.0 is not dependent on any routing protocols. However, IP routing must be enabled on the router.
Note: IGRP does not understand a route to 0.0.0.0. Therefore, it cannot propagate default routes created using the ip route 0.0.0.0 0.0.0.0 command. Use the ip default-network command to have IGRP propagate a default route.
Source: Configuring a Gateway of Last Resort Using IP Commands
有什麼要補充的解釋嗎?在評論中發出聲音。想從其他精通技術的Stack Exchange使用者那裡瞭解更多答案嗎?在這裡檢視完整的討論主題。
有沒有想過如何在兩種程式語言之間傳送資料?是否嘗試傳送一個物件或多個數據段? ...
...且只與某些系統相容。以下是DDR2和DDR3 RAM與較新的DDR4 RAM之間的區別。 ...
... 127.0.0.1和localhost之間沒有真正的區別。有些程式可能喜歡一個而不是另一個,但它們都指向同一個位置:您的計算機。 ...
...,它允許CPU更快地處理指令。 特性細節可能在不同的代之間發生變化。隨著技術的進步,**效能更高的低端零件變得更便宜。這也意味著一旦在核心i3這樣的部件中發現特性,就可以從類中完全消失。 類似CPU的一般效能也會在...
...個數字都是255或0。從255到0的位置變化表示網路和主機ID之間的劃分。255s從等式中“掩蓋”了網路ID。 注意:我們在這裡描述的基本子網掩碼稱為預設子網掩碼。在更大的網路上,事情會變得更復雜。人們經常使用自定義子網掩...