一文理解 localhost、127.0.0.1、本机 IP、公有 IP、私有 IP、网卡 (MAC) 等!
§1 本机IP

我们电脑主板上都内置了多种网卡,一般主要有以下几类:
虚拟网卡(Loopback)
注意:它是虚拟的,并不是物理网卡,也被称为是本地环回地址(或接口),一般将
127.0.0.1
作为本地环回地址。有线网卡/以太网卡(Ethernet)
这是以太网(局域网)使用的,我们日常说的网卡指的就是这个,插入的就是网线。
无线网卡(WLAN)
这是无线局域网所使用的网卡,笔记本上常内置此网卡,它用的是无线电技术,不需要像以太网卡那样插网线。
以上这些网卡都会绑定一个本机 IP...
§2 localhost是一种特殊的域名

首先 localhost
它并不是 IP,而是一种特殊的域名(没有后缀),默认的情况下它解析到的是本地 IP(即 127.0.0.1
),主要通过本机的 hosts
文件进行管理,如果你愿意,也可以把 localhost
域名解析到某个公网 IP 上去,也可以被配置为任意的 IP 地址(也就是说,可以通过 hosts 这个文件进行更改),不过通常情况下都(如下)指向:
IPv4:表示
127.0.0.1
IPv6:表示
[::1]
hosts 文件位置:C:\Windows\System32\drivers\etc
§3 127.0.0.1是一种本机保留的私有IP

127.0.0.1
它是一个私有 IP,代表(或者说真正的名称)的就是本机环回地址,其实本质上是绑定在虚拟网卡(loopback)上的 IP。
那什么是环回地址呢?它有什么作用呢?
环回地址:环回地址是主机用于向自身发送通信的一个特殊地址(也就是一个特殊的目的地址)。
可以这么说:同一台主机上的两项服务若使用环回地址而非分配的主机地址,就可以绕开 TCP/IP 协议栈的下层(也就是说:不用再通过什么链路层、物理层、以太网传出去了,而是可以直接在自己的网络层,运输层进行处理了)
网络号为 127 的地址根本就不是一个网络地址,因为产生的 IP 数据报就不会到达外部网络接口中,是不离开主机的包。
所以说:127.0.0.1
是保留地址之一,只是被经常的使用,来检验本机 TCP/IP 协议栈而已,如果我们可以 ping 通的话,就说明本机的网卡和 IP 协议安装都没有问题(跟我们当前主机有没有联网没有一点关系)。
事实上 IPv4 保留 127.0.0.0
整个网段的地址用于环回测试(只是有两个特殊的保留),127.0.0.1
只是其中一个,你可以 ping 通这个网段里的所有地址,也可以在浏览器中输入任意一个地址访问本机的 Web 服务。另外一个经常被混淆的 IP 地址是 0.0.0.0
,它才是真正意义上的本机地址,它的用法跟 127.0.0.1
完全不同。
举例说明:比如电脑有两块网卡,其中一块使用公网 IP 用于连接互联网,另外一块使用私有 IP 连接局域网,如果本机搭建了 Web 服务,并且希望外网和内网都能正常访问,可以在服务器的配置中将服务器地址改为 0.0.0.0
.
§4 Localhost、本机 IP、127.0.0.1 的区别

网络需求不同
localhost
和127.0.0.1
并不需要联网访问,即使在无网络环境下访问这两者都能找到本机。本机 IP 中的有线网 IP 和无线网 IP 都是需要联网后才能正常分配和访问的,它们是本机对外开放的 IP 地址。
localhost
是本机访问;127.0.0.1
是本机访问;本机 IP 是本机或外部访问。localhost
是域名,默认是指向127.0.0.1
;而本机 IP 就是本机对外放开访问的 IP 地址,这个网址就是与物理网卡绑定的 IP 地址。在一个局域网里,同一网段(即同一局域网下的同一网段)的其他电脑就可以用上面的 IP 地址来访问你的电脑(私有地址下文介绍)。
§5 网卡地址 & IP地址

⭐网卡地址
网卡地址即 MAC 地址,意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。
在 OSI 模型中,第三层网络层负责 IP 地址,第二层数据链路层则负责 MAC 地址。因此一个主机会有一个 MAC 地址,而每个网络位置会有一个专属于它的 IP 地址。
MAC 地址是网卡决定的,是固定的,也是唯一的。形象的说,MAC 地址就如同我们身份证上的身份证号码,具有全球唯一性。
⭐IP地址
IP 地址是指互联网协议地址。IP 地址是 IP 协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
⭐小结
通俗来讲就是物理地址是指网卡的硬件地址,一般是固化在网卡上的,全球没有任何两块网卡的物理地址是一样的,它具有唯一性!
IP 地址是网络分配给网卡使用的软地址,是可以改变的!
§6 公网IP & 私网IP

我们可以通过127.0.0.1访问本机,通过私有IP访问局域网内部的其它设备,通过公网IP访问互联网上的其它设备。
🌊公有 IP 地址(公网 IP)
组建一个企业级网络,需要去向 “电信运营商 ISP” 申请一个接入 Internet (我们常说的接入网) 的宽带,同时 ISP 还会给我们分配一个或多个 IP 地址,这些 IP 地址可以供我们企业内部上网,这些 ISP 分配给我们的 IP,就是公有 IP。
公有地址(Public address,也可称为公网地址)由 Internet NIC(Internet Network Information Center 因特网信息中心)负责。这些 IP 地址分配给注册并向 Internet NIC 提出申请的组织机构。通过它直接访问因特网,它是广域网范畴内的。
🌊私有 IP 地址(私网 IP)
我们企业或家庭内部组建局域网用的 IP,一般都会用私有 IP。
私有地址(Private address,也可称为专网地址)属于非注册地址,专门为组织机构内部使用,它是局域网范畴内的,私有 IP 禁止出现在 Internet 中,在 ISP 连接用户的地方,将来自于私有 IP 的流量全部都会阻止并丢掉。
如果在企业内部的电脑要访问 Internet,则需要在企业边界上用 “NAT 技术” 将私网 IP 转成公网 IP 才能正常的上网!
🍺公网与私网的访问
如果私网 IP 要访问公网网站的话,需要在私网和公网接口处,做 SNAT。
一般我们称运营商搭建的网络为公网,主要负责连接各个公司或者家庭的网络,里面的 IP 都是公网 IP,里面也只会出现公网 IP 组成的路由,因此私网 IP 进到公网后,是没有路由的,会被丢弃,所以上面提到私网访问公网的话,需要 SNAT,把私网 IP 换成公网 IP。
聪明的你肯定会想到,公网要访问私网咋办?这其实涉及到 DNAT、VPN 等技术。
还有就是两个私网要跨公网通信咋办?这可以通过 VPN 解决。
补充:内网的话,可以简单理解为私网,不过其实这个概念的出发点是对于企业而言,在企业内部叫私网,企业外部就叫外网。
从概念上讲一个企业以外的网络,可以包括运营商的网络(即公网),也可以包括其他企业或者家庭的网络(即私网)。
所以说,外网与公网不能化等号的。
但其实也没有那么特意去区分,公网=外网,私网=内网,可以简单这么理解,没必要去咬文嚼字(但至少还是要懂得我上面说的外网与公网的区别)。
⭐全部 IP 地址的范围
IP 地址,一共分成了 5 类,范围分别如下:
A类 IP:
1.0.0.1
–127.255.255.254
B类 IP:
128.0.0.1
–191.255.255.254
C类 IP:
192.0.0.1
–223.255.255.254
D类 IP:
224.0.0.0
–239.255.255.255
E类 IP:
240.0.0.0
–255.255.255.255
而其中,能在 Internet 或被用户使用的有 A、B、C 三类,而D类地址称为广播地址,供特殊协议向选定的节点发送信息时用,E类地址保留给将来使用。
🌊特殊的网址:
每一个字节都为 0 的地址(“
0.0.0.0
”)对应于当前主机;IP 地址中的每一个字节都为 1 的 IP 地址(“
255.255.255.255
”)是当前子网的广播地址;IP 地址中凡是以 “11110” 开头的 E 类 IP 地址都保留用于将来和实验使用。
IP 地址中不能以十进制 “127” 作为开头,该类地址中数字
127.0.0.1
到127.255.255.255
用于回路测试,如:127.0.0.1
可以代表本机IP地址,用 “http://127.0.0.1” 就可以测试本机中配置的 Web 服务器。网络 ID 的第一个 6 位组也不能全置为 “0”,全 “0” 表示本地网络。
⭐公有 IP 地址的范围
在 IP 地址 3 种主要类型里,各保留了 3 个区域作为私有地址,也就是比较常用的 IP 地址。其地址范围如下:
A 类的公有 IP:
1.0.0.0
~9.255.255.255
11.0.0.0
~126.255.255.255
B 类的公有 IP:
128.0.0.0
~172.15.255.255
172.32.0.0
~191.255.255.255
C 类的公有 IP:
192.0.0.0
~192.168.255.255
192.169.0.0
~223.255.255.255
⭐私有 IP 地址的范围
A 类私有 IP 地址:
10.0.0.0
~10.255.255.255
即10.0.0.0/8
B 类私有 IP 地址:
172.16.0.0
~172.31.255.255
即172.16.0.0/12
C 类私有 IP 地址:
192.168.0.0
~192.168.255.255
即192.168.0.0/16
这些地址是不会被 Internet 分配的,它们在 Internet 上也不会被路由,虽然它们不能直接和 Internet 连接,但通过技术手段仍旧可以和 Internet 通讯(NAT 技术)。我们可以根据需要来选择适当的地址类,在内部局域网中将这些地址像公用 IP 地址一样地使用。在 Internet 上,有些不需要与 Internet 通讯的设备,如打印机、可管理集线器等也可以使用这些地址,以节省 IP 地址资源。
§7 网段 & 局域网

网段是指一个计算机网络使用同一层物理层设备(如集线器,交换机)能够直接通信的那一部分,即每台电脑只能和自己同一网段的电脑直接进行通信。
局域网是指由交换机构成的一整个网络系统,局域网内的所有设备一般都处于同一网段,因此可以直接进行通信,但是局域网也可以划分成多个网段,如使用 VLAN。
关于 VLAN 的介绍,可以看这篇博客(强推):info.support.huawei.com/info-finder…
只有同一局域网内的相同网段的设备才可直接进行通信。所以我的理解,当局域网内只有一个网段时,该局域网就可以等价于网段。
⭐如何区分是否同一网段
理解了网段后,我们接下来来讲解下如何判别两网段是否为同一网段。
根据掩码确定 IP 地址网段只需要使用 IP 地址
&
子网掩码即可!
例 1
比如以下两个 IP 地址
IP 地址1:
192.168.1.1
子网掩码:255.255.255.0
IP 地址2:
192.168.1.2
子网掩码:255.255.255.0
我们可以直接的判断,它们是属于同一个 (192.168.1.0
) 网段的 IP 地址。
例 2
那么对于下面这样的呢?
IP 地址1:
192.168.1.1
子网掩码:255.255.255.0
IP 地址2:
192.168.1.2
子网掩码:255.255.0.0
这两个 IP 地址虽然在不看掩码的情况下,比较像,但他们并不是同一个网段内的。
这可以从子网掩码来判断:
IP 192.168.1.1
& 掩码 255.255.255.0
属于 192.168.1.0
网段;
而 IP 192.168.1.2
& 掩码 255.255.0.0
则属于 192.168.0.0
网段。
例 3
IP 地址1:
192.168.1.1
子网掩码:255.255.252.0
IP 地址2:
192.168.2.1
子网掩码:255.255.252.0
很明显,我们这个和上面例1 的 IP 地址是一样的,只是子网掩码不一样,如果不看子网掩码,首先可能就误判它们不是同一个网段。
经过判别,两个 IP 地址都是属于 192.168.0.0
网段,所以它们是同属于一个网段的。