This question already has an answer here:

What's the difference in telling a service to run on localhost:xxxx, 127.0.0.1:xxxx and 0.0.0.0:xxxx?

I needed to use 0.0.0.0 to get another host to be able to connect to my service.

marked as duplicate by womble linux Oct 4 '17 at 0:21

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

127.0.0.1:xxxx is the normal loopback address, and localhost:xxxx is the hostname for 127.0.0.1:xxxx.

0.0.0.0 is slightly different, it's an address used to refer to all IP addresses on the same machine. Or no specific IP address.

Here's a stack exchange post that explains the difference in more detail What's the difference between ip address 0.0.0.0 and 127.0.0.1?

localhost is a special virtual network interface, just like your ethernet or wifi each have a special interface.

The difference is that localhost, being a network interface, is very specific. When you say that you want to connect to 127.0.0.1, you are connecting specifically to localhost. Just like you specify IP of your wifi/ethernet to connect to those interfaces.

0.0.0.0 however, is not really an interface and it means to just try and connect to every available interface. This will try and connect to all the available interfaces instead of just 127.0.0.1.

Hence two are different.

EDIT: This here probably explains it a lot better an in greater detail: https://superuser.com/questions/949428/whats-the-difference-between-127-0-0-1-and-0-0-0-0

Not the answer you're looking for? Browse other questions tagged or ask your own question.