🏠 IPv4私有地址:内网专用的"门牌号"

253 阅读4分钟

知识点编号:021
难度等级:⭐⭐(必掌握)
面试频率:🔥🔥🔥🔥🔥


🎯 一句话总结

私有地址就像小区内部的门牌号,只在内网用,不能直接上公网!🏘️


🔐 三段私有地址

A类私有地址 🏰

范围:10.0.0.0 ~ 10.255.255.255
掩码:255.0.0.0 (/8)
数量:1A类网络
主机数:16,777,216个

用途:
✅ 大型企业内网
✅ 数据中心
✅ 云服务器内网

示例:
10.0.0.1
10.1.2.3
10.255.255.254

B类私有地址 🏘️

范围:172.16.0.0 ~ 172.31.255.255
掩码:255.255.0.0 (/16)
数量:16B类网络
主机数:1,048,576个

用途:
✅ 中型企业内网
✅ 学校网络
✅ Docker默认网络

示例:
172.16.0.1
172.20.1.1
172.31.255.254

C类私有地址 🏢

范围:192.168.0.0 ~ 192.168.255.255
掩码:255.255.255.0 (/24)
数量:256个C类网络
主机数:65,536个

用途:
✅ 家庭网络
✅ 小型办公室
✅ 路由器默认地址

示例:
192.168.0.1
192.168.1.1 (最常见!)
192.168.255.254

📊 私有地址总结表

类别范围CIDR网络数常见用途
A类10.0.0.0 ~ 10.255.255.25510.0.0.0/81大型内网
B类172.16.0.0 ~ 172.31.255.255172.16.0.0/1216Docker、企业
C类192.168.0.0 ~ 192.168.255.255192.168.0.0/16256家庭、小公司

🌐 私有地址 vs 公网地址

私有地址(内网)🏠

特点:
✅ 只在局域网内使用
✅ 不能直接访问互联网
✅ 可以重复使用(不同局域网)
✅ 免费使用
❌ 不能在互联网上路由

比喻:
小区内部门牌号
- 1号楼101室
- 只在小区内有效
- 别的小区也有1号楼101室

公网地址(外网)🌍

特点:
✅ 全球唯一
✅ 可以直接访问互联网
✅ 可以在互联网上路由
❌ 需要购买/租用
❌ IPv4地址不够用

比喻:
GPS坐标
- 全球唯一
- 任何人都能找到

🔄 NAT:私网到公网的桥梁

问题:
私有地址不能直接上网

解决:
NAT(Network Address Translation)
网络地址转换

过程:
内网设备(192.168.1.2) 
    ↓
    路由器NAT转换
    ↓
公网地址(58.1.2.3)
    ↓
    互联网

生活比喻:
你在公司内部打电话(内线8888)
打外部电话时,转接到公司总机(外线021-1234567

💻 Java代码判断

public class PrivateIPChecker {
    
    /**
     * 判断是否为私有IP地址
     */
    public static boolean isPrivateIP(String ip) {
        String[] parts = ip.split("\\.");
        int first = Integer.parseInt(parts[0]);
        int second = Integer.parseInt(parts[1]);
        
        // 10.0.0.0 ~ 10.255.255.255
        if (first == 10) {
            return true;
        }
        
        // 172.16.0.0 ~ 172.31.255.255
        if (first == 172 && second >= 16 && second <= 31) {
            return true;
        }
        
        // 192.168.0.0 ~ 192.168.255.255
        if (first == 192 && second == 168) {
            return true;
        }
        
        return false;
    }
    
    /**
     * 判断是否为公网IP
     */
    public static boolean isPublicIP(String ip) {
        return !isPrivateIP(ip) && !isSpecialIP(ip);
    }
    
    /**
     * 判断是否为特殊IP
     */
    public static boolean isSpecialIP(String ip) {
        // 127.0.0.0 ~ 127.255.255.255 (本地回环)
        // 0.0.0.0 (任意地址)
        // 255.255.255.255 (广播地址)
        String[] parts = ip.split("\\.");
        int first = Integer.parseInt(parts[0]);
        
        return first == 0 || first == 127 || first >= 224;
    }
    
    public static void main(String[] args) {
        String[] testIPs = {
            "10.0.0.1",
            "172.16.0.1",
            "192.168.1.1",
            "8.8.8.8",
            "114.114.114.114"
        };
        
        for (String ip : testIPs) {
            System.out.printf("%s -> %s\n", 
                ip, 
                isPrivateIP(ip) ? "私有地址" : "公网地址"
            );
        }
    }
}

// 输出:
// 10.0.0.1 -> 私有地址
// 172.16.0.1 -> 私有地址
// 192.168.1.1 -> 私有地址
// 8.8.8.8 -> 公网地址
// 114.114.114.114 -> 公网地址

🐛 常见面试题

Q1:IPv4私有地址有哪些?

答案:

三段私有地址:

1. A类:10.0.0.0 ~ 10.255.255.255
   - 10.0.0.0/8
   - 大型企业、数据中心

2. B类:172.16.0.0 ~ 172.31.255.255
   - 172.16.0.0/12
   - Docker、中型企业

3. C类:192.168.0.0 ~ 192.168.255.255
   - 192.168.0.0/16
   - 家庭、小公司(最常见)

记忆技巧:
"十点 一七二点十六到三十一 一九二点一六八"

特点:
- 只在内网使用
- 可以重复使用
- 需要NAT才能访问公网

Q2:为什么需要私有地址?

答案:

原因:

1. IPv4地址不够用 💀
   - IPv4总共:43亿个地址
   - 全球设备:远超43亿
   - 必须节省使用

2. 安全性 🔒
   - 私有地址不能从公网直接访问
   - 天然防火墙
   - 保护内网设备

3. 灵活性 🔄
   - 不同局域网可以使用相同私有地址
   - 组网更灵活
   - 不需要申请公网IP

4. 成本 💰
   - 私有地址免费
   - 公网IP需要购买/租用
   - 节省成本

实际应用:
家庭网络:
- 路由器公网IP:58.1.2.3(唯一)
- 内网设备私有IP:
  * 电脑:192.168.1.2
  * 手机:192.168.1.3
  * 电视:192.168.1.4

通过NAT共享一个公网IP上网

Q3:私有地址能直接访问公网吗?

答案:

❌ 不能直接访问!

原因:
- 私有地址不能在互联网上路由
- 路由器会丢弃私有地址的包
- 目标服务器无法回复(不知道往哪里回)

解决方案:NAT

过程:
1. 内网设备(192.168.1.2)发送请求
2. 路由器NAT转换:
   - 源IP:192.168.1.2 → 58.1.2.3(公网IP)
   - 记录映射关系
3. 外网服务器收到:来自58.1.2.3的请求
4. 外网服务器回复:发给58.1.2.3
5. 路由器收到,查映射表:
   - 目标IP:58.1.2.3 → 192.168.1.2
6. 转发给内网设备

生活比喻:
你写信给国外朋友
- 你的地址:1号楼101室(私有)
- 公司地址:北京xx路xx号(公网)
- 信封写公司地址
- 公司收到后转给你

🎓 总结

私有地址的关键点:

  1. 三段:10.x、172.16-31.x、192.168.x
  2. 内网用:不能直接上公网
  3. 可重复:不同局域网可以重复
  4. 需要NAT:通过NAT访问公网

记忆口诀

十点大公司 🏢
一七二Docker用 🐳
一九二家里见 🏠
都是私有地址群 🔒

文档创建时间:2025-10-31