127.0.0.1和localhost和本机IP三者的区别!

Posted Pipci

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了127.0.0.1和localhost和本机IP三者的区别!相关的知识,希望对你有一定的参考价值。

1,

先来说下回送地址(Loopback Address):

回送地址是主机用于向自身发送通信的一个特殊地址(也就是一个特殊的目的地址)。
可以这么说:同一台主机上的两项服务若使用回送地址而非分配的主机地址,就可以绕开TCP/IP协议栈的下层。(也就是说:不用再通过什么链路层,物理层,以太网传出去了,而是可以直接在自己的网络层,传输层进行处理了)

IPv4的回送地址为:127.0.0.0到127.255.255.255都是回送地址(只是有两个特殊的保留),此地址中的任何地址都不会出现在网络中
网络号为127的地址根本就不是一个网络地址(因为产生的IP数据报就不会到达外部网络接口中,是不离开主机的包)

当操作系统初始化本机的TCP/IP协议栈时,设置协议栈本身的IP地址为127.0.0.1(保留地址),并注入路由表。当IP层接收到目的地址为127.0.0.1(准确的说是:网络号为127的IP)的数据包时,不调用网卡驱动进行二次封装,而是立即转发到本机IP层进行处理,由于不涉及底层操作。因此,ping 127.0.0.1一般作为测试本机TCP/IP协议栈正常与否的判断之一。

所以说:127.0.0.1是保留地址之一,只是被经常的使用,来检验本机TCP/IP协议栈而已,我们可以Ping回送地址。通常如果回送地址Ping不通,就说明IP堆栈出了故障。如果通的话,表明网络出了问题。

2,

localhost首先是一个域名(如同:www.baidu.com),也是本机地址,它可以被配置为任意的IP地址(也就是说,可以通过hosts这个文件进行更改的),不过通常情况下都指向:(如下)
IPv4:表示   127.0.0.1

IPv6:表示   [::1]

整个127.*网段通常被用作loopback网络接口的默认地址,按照惯例通常设置为127.0.0.1。我们当前这个主机上的这个地址,别人不能访问,即使访问,也是访问自己。因为每一台TCP/IP协议栈的设备基本上都有local/127.0.0.1

在 Windows 中,这个域名是预定义的,从C:\Windows\System32\drivers\etc\ hosts 文件中可以看出:

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost    ( ipv4)
# ::1            localhost     (ipv6)

而在 Linux 中,其定义位于 /etc/hosts 中:
127.0.0.1 localhost
注意这个值是可修改的,比如我把它改成
192.168.2.1 localhost
然后再去 ping localhost,提示就变成了
PING localhost (192.168.2.1) 56(84) bytes of data.
127.0.0.1 这个地址通常分配给 loopback 接口。loopback 是一个特殊的网络接口(可理解成虚拟网卡),用于本机中各个应用之间的网络交互。只要操作系统的网络组件是正常的,loopback 就能工作。Windows 中看不到这个接口,Linux中这个接口叫 lo:
#ifconfig
eth0    Link encap:Ethernet hwaddr 00:00:00:00:00:00          
           inet addr :192.168.0.1 Bcase:192.168.0.255 Mask:255.255.255.0  
           ......
lo        Link encap:Local Loopback        
           inetaddr: 127.0.0.1 Mask: 255.0.0.0        
           ......
可以看出 lo 接口的地址是 127.0.0.1。事实上整个 127.* 网段都算能够使用,比如你 ping 127.0.0.2 也是通的。但是使用127.0.0.1作为loopback接口的默认地址只是一个惯例,比如下面这样:
#ifconfig lo 192.168.1.1
#ping localhost       # ping不通了
#ping 192.128.1.1  # 可以通

3,

本机IP,我们可以理解为本机有三块网卡,一块网卡叫做loopback(虚拟网卡),一块叫做ethernet(有线网卡),一块叫做wlan(你的无线网卡),

连接网络,网卡传输,受防火墙和网卡限制

用于本机和外部访问

以上是关于127.0.0.1和localhost和本机IP三者的区别!的主要内容,如果未能解决你的问题,请参考以下文章

localhost与127.0.0.1 本机IP

为啥localhost和127.0.0.1能访问tomcat,本机ip就不能访问

localhost127.0.0.1本机IP虚拟主机kotlin

localhost127.0.0.1本机ip0.0.0.0 的区别

127.0.0.1和localhost和本机IP三者的区别!

localhost与127.0.0.1的区别