1. IP 地址是什么
1.1 类比
IP 地址就像门牌号。
现实世界: 北京市 → 朝阳区 → 某某街 → 42号
IP 世界: 192 . 168 . 104 . 20
每台联网设备都需要一个 IP 地址来标识自己,就像每栋楼需要门牌号才能收快递。
1.2 IPv4 的格式
IPv4 地址由 4 个数字 组成,每个数字范围是 0~255,用点分隔:
192.168.104.20
│ │ │ │
│ │ │ └── 第四段(主机号的一部分)
│ │ └────── 第三段
│ └────────── 第二段
└─────────────── 第一段
每个数字实际上是 8 位二进制(8 bit = 1 Byte),所以 IPv4 总共是 32 位。
1.3 公网 IP vs 内网 IP
公网 IP(全球唯一):
119.8.178.32 ← 你公司新加坡出口
8.8.8.8 ← Google DNS
可以在互联网上直接访问
内网 IP(局域网内使用,可以重复):
192.168.x.x ← 最常见的家庭/办公内网
10.x.x.x ← 大型企业内网
172.16.x.x ~ 172.31.x.x ← 中型企业内网
不能直接被外网访问
为什么要分公网和内网?
IPv4 总共只有约 43 亿个地址,不够全球设备用。所以大家在内网共享,通过 NAT(后面会讲)共用一个公网 IP 出去。你公司几十台电脑,对外只显示一个新加坡 IP,就是这个原理。
1.4 特殊 IP 地址
127.0.0.1 ← localhost,自己访问自己
0.0.0.0 ← 代表"所有地址",服务器监听时常用
255.255.255.255 ← 广播地址,发给子网内所有设备
169.254.x.x ← DHCP 分配失败时自动分配的,说明网络有问题
2. 二进制------理解 IP 的钥匙
要真正理解子网掩码,必须懂二进制。不难,花 5 分钟就行。
2.1 十进制 vs 二进制
十进制 二进制
0 = 00000000
1 = 00000001
2 = 00000010
3 = 00000011
4 = 00000100
...
128 = 10000000
192 = 11000000
254 = 11111110
255 = 11111111
位置: 7 6 5 4 3 2 1 0
值: 128 64 32 16 8 4 2 1
例子:192 怎么算?
192 = 128 + 64 = 11000000
128 64 32 16 8 4 2 1
1 1 0 0 0 0 0 0 = 192
2.2 把 IP 地址写成二进制
192.168.104.20 的二进制:
192 = 11000000
168 = 10101000
104 = 01101000
20 = 00010100
完整:11000000.10101000.01101000.00010100
2.3 为什么每段最大 255?
8 位全部为 1:11111111 = 128+64+32+16+8+4+2+1 = 255
所以每段最大值就是 255
3. 子网掩码------划分网络的刀
3.1 核心概念
一个 IP 地址其实包含两部分信息:
IP 地址 = 网络号 + 主机号
~~~~~~ ~~~~~~
你在哪个小区 你是小区里的几号楼
子网掩码就是那把刀,决定了从哪里切开------哪些位是网络号,哪些位是主机号。
规则:
掩码中 1 的位 → 对应 IP 中的"网络号"
掩码中 0 的位 → 对应 IP 中的"主机号"
3.2 最常见的例子:255.255.255.0
掩码:255 .255 .255 . 0
二进制:11111111.11111111.11111111.00000000
^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^
网络号 网络号 网络号 主机号
IP: 192 .168 .104 . 20
─────────────────── ──
网络号部分 主机号
网络号:192.168.104(前 24 位)
主机号:20(后 8 位)
意味着什么?
- 网络号相同的设备在同一个子网,可以直接通信
- 192.168.104.1 和 192.168.104.20 → 网络号都是 192.168.104 → ✅ 同一子网
- 192.168.104.1 和 192.168.105.20 → 网络号分别是 104 和 105 → ❌ 不同子网
3.3 你公司的例子:255.255.254.0
掩码:255 .255 .254 . 0
二进制:11111111.11111111.11111110.00000000
^^^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^
网络号 网络号 网络号↑ 主机号
│
注意!这里最后一位是 0
属于主机号部分
前 23 位 是网络号,后 9 位是主机号。
现在来看为什么 104 和 105 在同一个子网:
104 的二进制:01101000
105 的二进制:01101001
^
只有最后一位不同
掩码 254 = 11111110
^^^^^^^
这 7 位是网络号部分
104: 0110100 | 0 ← 网络号 0110100,主机号部分的起始位 0
105: 0110100 | 1 ← 网络号 0110100,主机号部分的起始位 1
^^^^^^^
网络号相同!
所以 192.168.104.x 和 192.168.105.x 属于同一个子网
3.4 AND 运算------判断是否同子网
计算机用**按位与(AND)**来提取网络号:
AND 规则:1 AND 1 = 1,其他都 = 0
计算 192.168.104.20 的网络号:
IP: 11000000.10101000.01101000.00010100
掩码: 11111111.11111111.11111110.00000000
AND: 11000000.10101000.01101000.00000000
结果 = 192.168.104.0 ← 网络号
计算 192.168.105.20 的网络号:
IP: 11000000.10101000.01101001.00010100
掩码: 11111111.11111111.11111110.00000000
AND: 11000000.10101000.01101000.00000000
结果 = 192.168.104.0 ← 网络号
两个网络号相同 → 同一子网 ✅
如果掩码是 255.255.255.0:
计算 192.168.105.20 的网络号:
IP: 11000000.10101000.01101001.00010100
掩码: 11111111.11111111.11111111.00000000
AND: 11000000.10101000.01101001.00000000
结果 = 192.168.105.0 ← 网络号
192.168.104.0 ≠ 192.168.105.0 → 不同子网 ❌
网关 192.168.104.1 不在你的子网里,找不到它,上不了网
3.5 一个子网能容纳多少台设备?
公式:可用主机数 = 2^(主机号位数) - 2
为什么 -2?
全 0 → 网络地址(代表这个子网本身)
全 1 → 广播地址(发给子网内所有人)
这两个不能分配给设备
例子:
/24(255.255.255.0): 主机号 8 位 → 2^8 - 2 = 254 台
/23(255.255.254.0): 主机号 9 位 → 2^9 - 2 = 510 台
/16(255.255.0.0): 主机号 16 位 → 2^16 - 2 = 65534 台
你公司用 /23,所以同一个子网最多可以放 510 台设备。
3.6 子网的地址范围
你公司子网(192.168.104.0/23)的完整范围:
网络地址: 192.168.104.0 ← 不可分配
第一个可用: 192.168.104.1 ← 你们的网关
...
192.168.104.255
192.168.105.0
...
最后一个可用:192.168.105.254
广播地址: 192.168.105.255 ← 不可分配
可用 IP:192.168.104.1 ~ 192.168.105.254(共 510 个)
4. 网关------子网的出口大门
4.1 是什么
网关(Gateway)是子网通往外部世界的唯一出口。
你要访问 8.8.8.8(Google DNS):
1. 电脑先算:8.8.8.8 和我在同一子网吗?
我的网络号:192.168.104.0
8.8.8.8 AND 掩码 → 明显不在同一子网
2. 不在同一子网 → 把数据包交给网关
"网关大哥,这个包我发不出去,你帮我转发"
3. 网关收到包,通过自己的路由表决定下一步怎么走
4.2 同子网 vs 跨子网通信
同子网通信(直接通信):
192.168.104.20 → 192.168.104.30
直接通过交换机转发,不需要网关
跨子网通信(必须经过网关):
192.168.104.20 → 8.8.8.8
192.168.104.20 → 192.168.200.1(另一个子网)
都必须先发给网关 192.168.104.1,由它转发
4.3 为什么网关必须在你的子网内
你的 IP: 192.168.105.20
掩码: 255.255.255.0(/24)
网关: 192.168.104.1
电脑想发包给网关,先判断:网关在我的子网内吗?
我的网络号:192.168.105.0
网关网络号:192.168.104.0
不同子网!
问题来了:要到不同子网得通过网关,但网关本身就不在我的子网...
→ 死循环,完全无法通信 💀
所以掩码必须改成 255.255.254.0(/23),让 104 和 105 在同一子网
这样网关 192.168.104.1 就在你的子网内了
5. CIDR 表示法
5.1 什么是 CIDR
CIDR(无类别域间路由)是一种简写方式,用 /数字 表示掩码中有多少个 1:
192.168.104.0/24
/24 = 前 24 位是 1
= 11111111.11111111.11111111.00000000
= 255.255.255.0
5.2 常见对照
/8 = 255.0.0.0 = 16,777,214 台主机
/16 = 255.255.0.0 = 65,534 台主机
/23 = 255.255.254.0 = 510 台主机 ← 你公司
/24 = 255.255.255.0 = 254 台主机 ← 最常见
/25 = 255.255.255.128 = 126 台主机
/26 = 255.255.255.192 = 62 台主机
/27 = 255.255.255.224 = 30 台主机
/28 = 255.255.255.240 = 14 台主机
/30 = 255.255.255.252 = 2 台主机 ← 点对点链路
/32 = 255.255.255.255 = 1 台主机 ← 单个地址
5.3 快速心算技巧
主机数 = 2^(32 - CIDR位数) - 2
/24 → 2^(32-24) - 2 = 2^8 - 2 = 254
/23 → 2^(32-23) - 2 = 2^9 - 2 = 510
/26 → 2^(32-26) - 2 = 2^6 - 2 = 62
6. 子网划分实战
6.1 场景:把一个 /24 切成多个小子网
公司分了 4 个部门,每个最多 50 人,你有一个 192.168.1.0/24。
思路:
每组最多 50 人 → 需要至少 50+2=52 个地址(加上网络地址和广播地址)
2^6 = 64 ≥ 52 ✅ → 主机号需要 6 位
网络号位数 = 32 - 6 = 26 → 每组是 /26
一个 /24 可以切出 2^(26-24) = 4 个 /26,刚好 4 个部门
划分结果:
子网 1(开发部): 192.168.1.0/26
范围:192.168.1.1 ~ 192.168.1.62
网关:192.168.1.1
广播:192.168.1.63
子网 2(设计部): 192.168.1.64/26
范围:192.168.1.65 ~ 192.168.1.126
网关:192.168.1.65
广播:192.168.1.127
子网 3(市场部): 192.168.1.128/26
范围:192.168.1.129 ~ 192.168.1.190
网关:192.168.1.129
广播:192.168.1.191
子网 4(行政部): 192.168.1.192/26
范围:192.168.1.193 ~ 192.168.1.254
网关:192.168.1.193
广播:192.168.1.255
6.2 怎么快速算子网范围
技巧:看掩码最后一个不是 255 的那段
掩码 255.255.255.192 → 看第四段
256 - 192 = 64 → 每个子网间隔 64
子网:.0, .64, .128, .192
掩码 255.255.254.0 → 看第三段
256 - 254 = 2 → 每个子网间隔 2
子网:.0.0, .2.0, .4.0, .6.0 ...
你公司 104 和 105 就是一组(间隔 2)
掩码 255.255.255.0 → 看第三段
256 - 255 = 1 → 每个子网间隔 1
104 和 105 是两个不同子网
7. 你公司网络的完整解析
7.1 你的网络配置
电脑 1(之前的配置):
IP: 192.168.104.20
掩码: 255.255.255.0 (/24)
网关: 192.168.104.1
电脑 2(后来改的):
IP: 192.168.105.20
掩码: 255.255.254.0 (/23)
网关: 192.168.104.1
7.2 为什么两种配置都能用
配置 1:IP 在 104 段,掩码 /24
子网范围:192.168.104.0 ~ 192.168.104.255
网关 192.168.104.1 在这个范围内 → ✅ 能上网
配置 2:IP 在 105 段,掩码 /23
子网范围:192.168.104.0 ~ 192.168.105.255
网关 192.168.104.1 在这个范围内 → ✅ 能上网
7.3 如果配错了会怎样
错误配置:IP 192.168.105.20 + 掩码 255.255.255.0
子网范围:192.168.105.0 ~ 192.168.105.255
网关 192.168.104.1 不在范围内 → ❌ 完全断网
7.4 你公司的 IP 分配逻辑
网管用了 /23 把 104 和 105 合成一个大子网,可能的分配方式:
192.168.104.1 ← 网关(代理服务器)
192.168.104.2~254 ← 第一批工位(约 253 台)
192.168.105.1~254 ← 第二批工位(约 254 台)
总共可容纳 510 台设备,一层楼或一个部门绰绰有余
7.5 你那四个网络适配器的作用
从截图里看到你有 4 个网络适配器:
1. 本地连接 --- Array Networks TAP-Windows Adapter [禁用]
→ VPN 虚拟网卡(TAP 设备),Array SSL VPN 创建的
2. 以太网 --- Array Networks SSL VPN Adapter [启用]
→ SSL VPN 客户端的虚拟网卡
→ 你可能同时还有一套 VPN 可以用
3. 以太网 3 --- Intel I225-T1 [未连接/禁用]
→ 第二个物理网口(2.5G 网卡),没插线
4. 以太网 2 --- Intel I219-LM [启用,在用]
→ 你当前使用的物理网口(千兆)
→ IP: 192.168.105.20
→ 链接速度 1000 Mbps,已运行 12 小时 50 分钟
你目前的流量走的是 以太网 2(物理网卡)→ 交换机 → 代理网关 → 新加坡。
8. 常见子网速查表
8.1 完整对照表
CIDR 掩码 主机数 典型用途
──── ──── ────── ────────
/8 255.0.0.0 16,777,214 超大企业内网(10.0.0.0/8)
/12 255.240.0.0 1,048,574 大型数据中心
/16 255.255.0.0 65,534 中型企业(172.16.0.0/16)
/20 255.255.240.0 4,094 云服务 VPC 子网
/21 255.255.248.0 2,046 大型办公楼
/22 255.255.252.0 1,022 中型办公楼
/23 255.255.254.0 510 你公司 ←
/24 255.255.255.0 254 最常见,家庭/小办公室
/25 255.255.255.128 126 小型办公室
/26 255.255.255.192 62 部门子网
/27 255.255.255.224 30 小组/会议室
/28 255.255.255.240 14 服务器区
/29 255.255.255.248 6 极小子网
/30 255.255.255.252 2 路由器之间的点对点链路
/31 255.255.255.254 2* 点对点(无广播,特殊)
/32 255.255.255.255 1 单台主机路由
8.2 掩码中不是 255 和 0 的那些数字
只有这几个值会出现在子网掩码中:
二进制 十进制 对应 CIDR 位
00000000 = 0 +0 位
10000000 = 128 +1 位
11000000 = 192 +2 位
11100000 = 224 +3 位
11110000 = 240 +4 位
11111000 = 248 +5 位
11111100 = 252 +6 位
11111110 = 254 +7 位
11111111 = 255 +8 位
掩码必须是连续的 1 后面跟连续的 0
所以 255.255.253.0 这种是非法的(253 = 11111101,中间有个 0)
9. 进阶:VLAN、NAT、DNS
9.1 VLAN --- 虚拟局域网
问题:100 台电脑插在同一个交换机上,默认都在同一个广播域。广播风暴会影响性能,而且安全隔离差。
解决:在交换机上划分 VLAN,逻辑上把一个物理网络分成多个虚拟网络。
物理上都在同一个交换机:
┌─────────────────────────┐
│ 交换机 │
│ 口1 口2 口3 口4 口5 │
└─┬────┬────┬────┬────┬───┘
│ │ │ │ │
PC1 PC2 PC3 PC4 PC5
逻辑上被 VLAN 隔离:
VLAN 10(开发部): 口1, 口2 → 192.168.10.0/24
VLAN 20(市场部): 口3, 口4 → 192.168.20.0/24
VLAN 30(访客) : 口5 → 192.168.30.0/24
VLAN 10 和 VLAN 20 之间不能直接通信
必须通过三层交换机或路由器转发
你公司可能的情况 :
如果你们有多个部门,网管可能在交换机上划了 VLAN,每个 VLAN 对应一个子网。你所在的 VLAN 分配了 192.168.104.0/23 这个子网。
9.2 NAT --- 网络地址转换
问题:内网 IP(192.168.x.x)不能直接上公网。
解决:NAT 设备(路由器/防火墙)在内网 IP 和公网 IP 之间做翻译。
你发一个请求到 claude.ai:
发送时(SNAT,源地址转换):
你的电脑: 源 IP 192.168.105.20 : 端口 54321
↓ 经过代理网关
华为云中国: 源 IP 123.60.230.1 : 端口 xxxxx
↓ 经过隧道
华为云新加坡: 源 IP 119.8.178.32 : 端口 yyyyy ← claude.ai 看到的
↓
claude.ai 收到请求
返回时(DNAT,目标地址转换):
claude.ai 回复到 119.8.178.32:yyyyy
↓
华为云新加坡 → 隧道 → 华为云中国 → 你的电脑 192.168.105.20:54321
你的电脑始终以为自己在直接和 claude.ai 通信
实际上中间经过了至少两层 NAT
NAT 的类型:
SNAT(源 NAT): 改写源 IP,让内网设备能出去
DNAT(目标 NAT): 改写目标 IP,让外网请求能进来(端口映射)
MASQUERADE: 动态 SNAT,适用于公网 IP 会变的情况
9.3 DNS --- 域名解析
问题:人记不住 IP 地址。
解决:DNS 把域名翻译成 IP。
你输入 claude.ai
1. 电脑先查本地缓存:知道 claude.ai 的 IP 吗?不知道
2. 问 DNS 服务器(你配的 8.8.8.8):claude.ai 的 IP 是什么?
3. 8.8.8.8 经过递归查询,返回:104.18.xx.xx
4. 电脑拿到 IP,开始建立连接
你配的 8.8.8.8 的问题 :
你在中国,DNS 查询要先到 Google(美国),绕了一大圈。而且你的流量走的是新加坡出口,所以 DNS 解析结果可能指向新加坡/亚太的服务器,这其实反而有利于降低延迟。
常用 DNS:
8.8.8.8 ← Google(全球通用)
1.1.1.1 ← Cloudflare(速度快)
223.5.5.5 ← 阿里云(国内快)
119.29.29.29 ← 腾讯 DNSPod(国内快)
9.4 DHCP --- 自动分配 IP
你的配置是手动的("使用下面的 IP 地址"),但也可以设成"自动获得 IP 地址":
手动(静态 IP):
优点:IP 固定,不会变
缺点:要手动配置,改错了就断网
适用:服务器、网关、打印机
自动(DHCP):
优点:即插即用,自动分配
缺点:IP 可能会变(租期到了换一个)
适用:普通办公电脑、手机、笔记本
你公司可能更喜欢手动分配,方便管理哪个工位用哪个 IP。
9.5 ARP --- 找到同子网设备的物理地址
你要发数据给 192.168.104.1(网关),但网线上传输的不是 IP,
而是 MAC 地址(物理地址,如 AA:BB:CC:DD:EE:FF)
流程:
1. 你的电脑广播:谁是 192.168.104.1?请把你的 MAC 地址告诉我
2. 网关回复:我是 192.168.104.1,我的 MAC 是 XX:XX:XX:XX:XX:XX
3. 你的电脑记住这个映射(ARP 缓存),然后用这个 MAC 发数据帧
查看你电脑的 ARP 缓存:
Windows: arp -a
这能看到你子网内所有设备的 IP ↔ MAC 对应关系
为什么同子网才能直接通信? 因为 ARP 广播只在子网内有效。跨子网的设备收不到你的 ARP 请求,你永远找不到它的 MAC 地址。所以跨子网必须通过网关。
附录:概念关系总图
你的电脑想访问 claude.ai,完整链路:
① DNS 解析
电脑 → DNS(8.8.8.8) → 得到 claude.ai 的 IP
② 判断目标是否在子网内
claude.ai 的 IP AND 子网掩码 ≠ 我的网络号
→ 不在子网内 → 发给网关
③ ARP 找网关的 MAC 地址
广播:谁是 192.168.104.1?
网关回复:我是,MAC 是 XX:XX:XX:XX:XX:XX
④ 数据包发给网关
源 IP: 192.168.105.20
目标 IP: 104.18.xx.xx (claude.ai)
⑤ 网关做 NAT + 代理
流量通过 VPN 隧道 → 华为云中国 → 华为云新加坡
⑥ 从新加坡出口访问 claude.ai
源 IP 已变成 119.8.178.32(新加坡公网 IP)
⑦ claude.ai 返回响应,原路返回到你的电脑