同一个局域网里靠 MAC 地址就能找到人,但互联网上有几十亿台设备,不可能让每台路由器背下全球所有网卡的 MAC 地址。
因此跨网络通信需要一套带层次、能按网段聚合的逻辑地址,也就是 IP 地址(Internet Protocol Address)。路由器不用认识每一块网卡,只要看一眼目的 IP 的前缀属于哪个网段、往哪个方向走,就能把 IP 数据包(IP Packet) 一跳跳传过去。
IPv4 地址
常见的 IPv4 地址长 32 位(4 字节),分成 4 段 8 位二进制,每段转成十进制是 0~255,中间用点隔开,叫点分十进制(比如 192.168.12.170)。如果看到 192.168.12.300,一眼就能看出是错的,因为单段不可能超过 255。
每一段 8 位二进制从左到右的位权依次是 128、64、32、16、8、4、2、1。比如把 170 拆成二进制:
位权 128 64 32 16 8 4 2 1
二进制 1 0 1 0 1 0 1 0 → 128 + 32 + 8 + 2 = 170
把 192.168.12.170 四段全展开成 32 位二进制就是:
192 .168 .12 .170
11000000 .10101000 .00001100 .10101010
查看本机 IP
在 Linux 终端里运行 ip -br address 可以快速查看网卡地址:
crow@laptop:~$ ip -br address
lo UNKNOWN 127.0.0.1/8 ::1/128
enp1s0 UP 192.168.12.170/26 fe80::10/64
lo是本地回环接口,127.0.0.1(IPv6 为::1)永远代表本机自己;enp1s0是有线网卡,后面的/26表示子网前缀长度(前 26 位是网络部分)。
在 Windows 下则可以运行 ipconfig /all 查看当前联网适配器的 IPv4 地址、子网掩码、默认网关和 DNS 服务器:
C:\Users\crow> ipconfig /all
无线局域网适配器 WLAN:
描述. . . . . . . . . . . . . . . : Intel(R) Wi-Fi 6 AX201 160MHz
物理地址. . . . . . . . . . . . . : A8-59-5F-**-**-**
DHCP 已启用 . . . . . . . . . . . : 是
IPv4 地址 . . . . . . . . . . . . : 192.168.124.3(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.124.1
DNS 服务器 . . . . . . . . . . . : 223.5.5.5
私有地址与公网地址
在家里、学校或办公室连网时,电脑拿到的 IP 往往是 192.168.x.x 或 10.x.x.x。根据 RFC 1918,有三段 IPv4 地址专门留给局域网内部作为私有地址(Private Address):
| 私有地址范围 | CIDR 简写 | 常见场景 |
|---|---|---|
10.0.0.0 ~ 10.255.255.255 | 10.0.0.0/8 | 大型企业内网、校园网、云 VPC |
172.16.0.0 ~ 172.31.255.255 | 172.16.0.0/12 | 中型企业网、Docker 容器网络 |
192.168.0.0 ~ 192.168.255.255 | 192.168.0.0/16 | 家用路由器、小型办公局域网 |
私有地址可以在不同的局域网里重复使用——你家里的 192.168.1.10 和隔壁邻居家里的 192.168.1.10 互不冲突,因为公网骨干路由器不会直接转发私有地址。当内网设备要访问互联网时,家用路由器会通过 NAT(网络地址转换) 把私有 IP 换成运营商分配的公网 IP。
注意
注意 172 开头的地址不全是私有地址:只有第二段在 16~31 之间(172.16.0.0 ~ 172.31.255.255)才是私有地址,像 172.32.x.x 已经是正常的公网地址了。
