聊到 IP 地址很多刚入门的朋友第一件事就是打开浏览器去搜“我的 IP 是多少”然后看到一串类似58.xxx.xxx.xxx的数字又去路由器后台看一眼发现 WAN 口和 LAN 口的地址完全不一样甚至和自己电脑上ipconfig出来的结果也对不上这时候就开始迷糊了我到底有几个 IP哪个才是真的其实答案很简单——你同时拥有私有 IP 地址和公有 IP 地址它们各自负责不同层面的通信。这篇文章就把这两个概念彻底讲透从 Why 到 How从协议原理到实际排障尽量用我能用的大白话讲清楚希望能帮你省下以后反复查资料的功夫。这篇内容适合三类人一是刚入行的网络工程师或运维需要把基础概念掰开揉碎二是经常要跟路由器、NAS、云服务器打交道的独立开发者或 Homelab 玩家三是纯粹被“内网 IP 和外网 IP”绕晕、想搞明白家里网络是怎么工作的普通用户。读完你至少能解决三件事第一一眼判断一个 IP 是私有还是公有第二知道家里路由器为什么要做 NAT、端口映射到底在干什么第三遇到“能上内网不能上外网”这类故障时知道从哪里下手排查。1. 为什么要把 IP 地址分成私有和公有1.1 一个根本矛盾IPv4 地址根本不够用要理解私有和公有的划分得先回到 IPv4 的底子上去。IPv4 的地址长度是 32 位也就是2^32个组合换算过来大约 43 亿个地址。听着很多但地球上的设备数量早就远超这个数了光是一部手机可能就同时占用两三个 IPWi-Fi、蜂窝网络、蓝牙共享更别说每人手头还有电脑、平板、智能电视、摄像头、路由器。43 亿个地址放到今天这个物联网时代连塞牙缝都不够。这件事在互联网早期就被业界看出来了。如果每个设备都必须有一个全球唯一的公网 IP 才能上网那 IPv4 地址池早在上世纪就该耗尽整个互联网也撑不到现在。于是设计者想了一个办法把地址分成两类一类是公网 IP全球唯一、可在互联网上路由另一类是私有 IP只在本地网络内有效、可以反复使用不同局域网之间互不干扰。这个思路本质上就是“对内重复利用对外才需要唯一身份”就像写字楼里的房间号设计——楼里面每层都可以有“101 室”但整栋楼的收发室要用唯一的“XX 路 XX 号”。1.2 RFC 1918 给内网划出的三块“自留地”私有 IP 不是随便哪个网段都能用的而是由标准组织 IETF 在 RFC 1918 文档里明确划定了三段保留地址。任何组织和个人都可以在自己的内网里自由使用这三段地址不需要向任何机构申请也不产生费用。但前提是这些地址不会出现在公网路由表里互联网上的路由器看到这些目标地址要么直接丢弃要么根本不知道怎么转发。这三段地址就是大家耳熟能详的10.0.0.0/8从10.0.0.0到10.255.255.255这是最大的一段约 1677 万个地址。172.16.0.0/12从172.16.0.0到172.31.255.255约 104 万个地址。192.168.0.0/16从192.168.0.0到192.168.255.255约 65536 个地址家用设备最常见。这三段地址的分配逻辑很有讲究A 类私网段给超大型网络用B 类给中大型机构用C 类给小型网络用。实际上现在大家的使用早就超越了这种原始规划家用路由器默认就是192.168.x.x而很多大型云厂商的 VPC 默认网段则会选10.0.0.0/16甚至更大。重点不在于“必须按规模选”而在于这些网段被保留之后全世界所有内网都可以放心沿用彼此不会冲突——因为它们在各自的局域网里“关起门来自己玩”。1.3 公网 IP 的分配体系与“门牌号”意义与私有 IP 的随取随用不同公网 IP 是稀缺资源需要层级化分配。从顶层看IANA互联网数字分配机构把大块地址分配给五个区域注册机构区域注册机构再分给各国的国家级注册机构或运营商运营商最终分配给企业和个人用户。每一层都有记录每一段都有归属这样才能保证公网 IP 的唯一性也让路由器在做全球路由时能根据 IP 前缀准确找到目的地。拿现实生活打比方公网 IP 就像你的家庭住址全球唯一别人寄快递能精准找到你私有 IP 就像你在小区内部的房号只在小区的物业系统里有意义快递员并不看这个房号来派件。当你家里有多台设备时运营商只分配给你一个公网 IP相当于一个小区大门只有一个对外门牌小区里每户再自己编房号私有 IP。外人要联系你先找到小区大门再由物业路由器转交到具体住户。这就是整个内外网通信的基本框架。2. 三类私有网段的原理、选型与常见误区2.1 三个网段到底怎么选很多人只知道家用路由器默认是192.168.1.1但真要自己规划一个稍微像样的网络时就不知道该选哪段了。先看一张速查表网段CIDR地址范围默认掩码可用主机数典型场景A 类私网10.0.0.0/810.0.0.0 - 10.255.255.255255.0.0.016,777,214大型企业、云 VPC、跨地域组网B 类私网172.16.0.0/12172.16.0.0 - 172.31.255.255255.240.0.01,048,574中型机构、学校、多分支互联C 类私网192.168.0.0/16192.168.0.0 - 192.168.255.255255.255.0.065,534家庭、小型办公室、实验室注意一个很容易踩的细节172.16.0.0/12并不是覆盖整个172.x.x.x段它只覆盖172.16到172.31这 16 个 B 段。如果你把内网配成172.32.x.x那它其实不是私有地址而是一个公网地址——虽然它在内网里也能用但严格来说违反了 RFC 1918 的约定将来万一要跟其他网络互联可能会出问题。我自己就见过有人把办公网配成172.32.1.0/24跟第三方联调时双方都以为自己在用私网段结果路由怎么都写不对排查半天才反应过来。2.2 选网段背后的计算逻辑选定网段不光是“挑一个大类”你还要决定子网掩码也就是决定这个网络里能容纳多少台设备。CIDR 写法的斜杠后面的数字代表网络位占多少位剩下的位数决定主机数。比如192.168.1.0/24网络位 24 位主机位 8 位可用地址就是2^8 - 2 254个去掉网络地址和广播地址。如果你家里只有十几台设备/24绰绰有余但如果你在公司规划一个能容纳几千台设备的网段就得用10.0.0.0/16甚至10.0.0.0/12。这里我给一个实操建议除非网络规模真的很大否则别一上来就选/8那样广播域太大二层广播报文会淹没整个网络。更合理的做法是选一个大段再细分多个小段比如在10.0.0.0/16下面按部门切成10.0.1.0/24、10.0.2.0/24每个部门一个广播域配合 VLAN 隔离排障和安全策略都好做得多。这就像一个大楼只有一个小区地址但你按楼层和房间编号来管理既清晰又可控。2.3 常被误解的三个知识点第一个误解私有 IP 不能上网。准确说法是“私有 IP 不能在公网直接被路由”但通过 NAT 转换后完全可以上网。你家每台设备都是私有 IP不都能刷视频吗所以“私有 IP 不能上网”这句话只对了一半它不能作为公网源地址直接发包出去但可以借路由器的公网 IP 出去。第二个误解169.254.x.x也是私有 IP。这个地址段叫 APIPA自动专用 IP 寻址是设备开了 DHCP 但没拿到地址时临时用来自动组网的属于“链路本地地址”连路由都不可跨越跟 RFC 1918 的私有地址不是一回事。你如果看到电脑上出现169.254.x.x最可能的含义是 DHCP 失败了而不是进入了什么私有网段。第三个误解127.0.0.1是私有 IP。127.0.0.0/8是回环地址只代表“本机自己”数据包根本不会离开网卡。它和私有 IP 一样“不可公网路由”但用途完全不同。后面排查网络时千万别把回环地址和私有地址混为一谈。3. NAT连接私有与公有网的关键枢纽3.1 NAT 到底改了什么NATNetwork Address Translation网络地址转换是私有 IP 和公有 IP 之间的桥。它的核心动作就是把数据包里的 IP 地址换掉内网设备发出去时把源地址从私有 IP 改成路由器的公网 IP回应包回来时再把目的地址从公网 IP 改回那个私有 IP。这个过程对内网设备完全透明它们甚至不知道自己被“翻译”过。我举个例子。电脑 A 的私有 IP 是192.168.1.10它要访问公网服务器93.184.216.34。数据包从电脑到路由器时是这样的方向源 IP源端口目的 IP目的端口电脑 - 路由器192.168.1.105000093.184.216.3480路由器做完 NAT 后发往公网的包变成方向源 IP源端口目的 IP目的端口路由器 - 公网100.64.0.106000093.184.216.3480服务器回包时不知道192.168.1.10的存在它只回复给100.64.0.10:60000。路由器收到后查表发现端口 60000 对应的是内网192.168.1.10:50000于是把回包还原再发给电脑。整个过程就是一个有状态的映射关系路由器得记着这张“翻译对照表”否则回包来了不知道该往哪儿送。3.2 PAT 端口复用一个公网 IP 怎么养活整个局域网如果只有一个公网 IP但内网同时有几十台设备在刷网页、看视频、打游戏路由器不可能为每台设备都分配一个不同的公网 IP。它靠的是 PATPort Address Translation端口地址转换也就是让多个内网 IP 共享同一个公网 IP但用不同的源端口来区分。比如电脑 A 和电脑 B 同时访问同一个网站路由器把 A 的源端口映射成公网 IP 的 60000把 B 的源端口映射成 60001。服务器回包时目标 IP 都是路由器公网 IP但目标端口不同路由器就能根据端口号反查出真正的内网设备。这就是为什么你的浏览器打开很多 TCP 连接时每个连接源端口都不一样——这些都是 NAT 表里用来区分不同会话的“临时编号”。需要注意NAT 表的条目不是永久存在的它通常有超时时间。UDP 的 NAT 表项可能几十秒就过期TCP 的一般能撑几分钟到几小时不等。这就是为什么 TCP 长连接比 UDP 更容易穿透 NAT也是很多 P2P 应用打洞困难的根本原因。3.3 端口映射把内网服务“放出去”给公网用户NAT 默认挡掉所有从公网主动发起的连接这既是保护也是限制。如果你想在家里搭个网站、开个游戏服务器、远程访问 NAS就得在路由器上做端口映射也就是 DNAT目的地址转换。操作上就是告诉路由器公网 IP 的某个端口进来的流量转发给内网某台设备的某个端口。举个例子内网有一台 Web 服务器192.168.1.20:8080你想让公网用户通过http://你家公网IP:80访问。那就在路由器上配置一条映射把公网 IP 的 TCP 80 端口转发到192.168.1.20:8080。这条规则本质上是“端口层面的托管”公网用户根本不知道后端是 8080 端口。除了端口映射还有一种更粗暴的方式叫 DMZ 主机直接把公网 IP 的所有入站流量都转发给某台内网设备相当于完全裸奔除非必要我不建议在生产环境用。云服务器上的“安全组”“防火墙”规则其实也类似只不过它们大多在网络层就做了访问控制比你家用路由器更细粒度。你既要配安全组放行端口也要保证云主机的实例系统防火墙没有拦截对应流量两层都得放行才能通。3.4 IPv6 时代的私网概念变了吗IPv6 地址空间巨大理论上每一粒沙子都能分到地址那私有 IP 是不是就没意义了其实不是。IPv6 的大量地址让公网分配不再紧张但出于安全和管理需要局域网内仍然经常使用本地唯一地址ULAUnique Local Address前缀是fc00::/7常用的是fd00::/8开头的地址。它类似 IPv4 的私有地址不会在公网上被路由专门用于内部通信。不过现实中大多数家庭和办公网络在 IPv6 环境下用的是 SLAAC 或 DHCPv6 拿到的公网地址而不是 ULA因为 IPv6 的公网地址多到任何设备都可以直接分配一个NAT 不再是刚需。但这也带来一个新的安全习惯问题IPv6 下每台设备都有公网地址如果防火墙策略没跟上内网设备可能直接暴露在公网上。很多人配 IPv6 时只想着“能用就行”没注意防火墙要默认拒绝入站这是个值得警惕的坑。4. 实操IP 规划、身份判断与故障排查实录4.1 不同场景下的 IP 规划参考我先给几个可以直接抄作业的规划方案覆盖最常见的场景。家庭网络设备数量少用192.168.1.0/24最省事。路由器固定为192.168.1.1DHCP 地址池设置为192.168.1.100 - 192.168.1.200这样前 99 个地址留给你手动配置的 NAS、打印机、摄像头等固定设备避免 DHCP 分配的地址和静态设备冲突。我自己家里就是这么干的稳定跑了几年没出过 IP 冲突。小型办公室人不多但设备杂电脑、手机、Wi-Fi 摄像头、考勤机、门禁可以用192.168.10.0/24按用途切 VLAN办公网192.168.10.0/25、监控网192.168.10.128/25或者干脆用10.0.10.0/24分给办公10.0.20.0/24分给安防。关键是把 IoT 设备和办公网隔开防止摄像头被攻破后横向进入办公网。公司或云上多环境用10.0.0.0/16做总体池按环境切/24子网。比如生产环境10.0.1.0/24、测试环境10.0.2.0/24、数据库10.0.3.0/24、办公10.0.10.0/24。云上 VPC 规划要更谨慎一定要提前避开云厂商占用的网段和将来可能要打对等连接的网段否则后期打通 VPC 时发现跟对方重叠只能推倒重来。4.2 三步判断一个 IP 是私有还是公有拿到一个 IP 地址不用背地址段按下面三步走就行。第一步看它落不落在 RFC 1918 三个段里。落在10.x.x.x、172.16.x.x到172.31.x.x、192.168.x.x就是私有 IP。命令行的操作是Windows 下ipconfigLinux/macOS 下ip addr或ifconfig看到的内网网卡地址基本都是私有 IP。第二步判断你“对外”的 IP 是什么。需要注意的是本机网卡上显示的地址只是内网视角你真正暴露在公网上的地址得通过外部服务来确认。最简单的方式是访问一个能看到来访者 IP 的网站看到的就是你的公网出口 IP。如果你在手机流量下查到的 IP 和家里宽带查到的 IP 不一样很正常因为每次上网出口线路不同。第三步用路由表反向验证。在电脑上查默认路由Windows 用route printLinux 用ip routemacOS 用netstat -rn。默认路由的网关地址通常是私有 IP比如192.168.1.1说明你是通过 NAT 出去的。如果你的默认网关直接是一个公网 IP说明这台设备很可能拥有独立的公网地址比如机房服务器或用了桥接模式的云主机。4.3 故障排查实录几个高频问题的来龙去脉先说最常见的“能上内网、不能上外网”。内网能通说明物理链路和 IP 配置没问题外网不通重点查三个地方第一默认网关是否配置正确能不能 ping 通网关第二DNS 是否正常很多情况下外网“打不开网页”其实是 DNS 解析失败用nslookup查一下域名能不能解析第三NAT 表是否正常工作路由器重启后 NAT 会话会清空如果路由器没配置上网行为管理但就是出不去重启一下往往能解决。第二个高频问题是“IP 冲突”。症状很典型某台电脑间歇性断网或者两台设备轮流掉线。排查方式很简单断开可疑设备ping 它的 IP如果有响应说明有人占用再用arp -a查看 IP 对应的 MAC 地址就能锁定设备。治本的方法是把所有静态设备放进保留地址池之外或者给每个设备设独立的 DHCP 保留绑定。第三个问题很隐蔽在云服务器上明明安全组放行了端口外部还是访问不了。这时候要查两层。第一层云平台的安全组/防火墙规则是否同时放行了入站和出站方向第二层操作系统自己的防火墙是否拦截了对应端口Linux 上可以用ss -lntp看端口有没有监听用iptables -L -n看规则。很多新手只盯着云控制台忘了系统里还有个本地防火墙叠在下面。第四个问题跟双网卡有关。电脑同时插了有线和无线结果流量走了错误的网卡造成内网设备能 ping 通、公网时通时断。Windows 上可以手动调整接口跃点interface metric把优先级调正确Linux 上则要检查路由表的默认路由确保ip route里指向外网的默认路由走的是正确的网卡。5. 安全视角私有与公网的边界就是你的防线5.1 公网 IP 就是暴露面这点必须清醒在互联网上有公网 IP 的设备就等于站在街边玻璃窗里的店铺任何路过的人都看得到你能不能进来取决于门锁。攻击者不需要特别针对你只要用扫描工具对整个 IP 段扫一遍就会自动发现开放了 22 端口SSH、3389 端口远程桌面、3306MySQL、5432PostgreSQL的设备。这类全网扫描每天都在发生所以凡是公网可达的设备密码必须强、补丁必须及时、不必要的端口必须关掉。我自己在踩过坑之后养成一个习惯任何新公网服务器上线我都先去扫一遍自己的端口确认只有预期端口对外开放。扫描工具用 nmap比如nmap -sS -p- 你的公网IP扫完检查每一个开放端口问问自己“这个端口真的需要公网访问吗”。不需要的一律关掉或在防火墙里限制来源 IP 白名单。5.2 私网隔离是第一道防线不是摆设私有 IP 存在的意义不完全是为了省地址它同时也是网络的天然屏障。因为没有路由条目能到达私有地址公网默认就“看不见”这些设备。但如果你的内网有设备被攻破攻击者就会把它当跳板在内网横向移动。所以光靠私网隔离还不保险还要在内部再做一层隔离办公网和服务器网分开普通员工网段和核心数据库网段之间加防火墙策略IoT 设备单独放一个网段。一句话私网隔离是基础微隔离才是进阶。5.3 几个能直接落地的边界安全习惯第一端口映射规则要定期梳理。很多路由器里堆着几年前配置的端口映射员工离职了、服务下线了规则还在那就是给攻击者开的暗门。每季度把 NAT 规则导出来过一遍看到没人用的直接删。第二远程管理入口别暴露在公网。真要远程管理路由器或服务器用强密码加动态口令是底线能限制来源 IP 就限制不能限制的就把默认管理端口换到非标准端口同时开启登录失败锁定。别嫌麻烦被爆破成功一次就够你难受的。第三日志要存且要看。家用路由器日志能力弱但云服务器好歹有日志服务至少开通云平台的安全告警密码错误次数、异常登录 IP、端口扫描行为都要能查到。很多入侵事件发现晚就是因为日志看了也白看全丢了或者没开。另外提醒一句IPv6 环境下每台设备都有公网地址防火墙默认策略最好是“入站拒绝、出站允许”除非明确放行某些端口。别以为家里内网设备没有公网 IP 就安全IPv6 启用后这句假设就不成立了。写在最后的一点个人经验我做网络排障这些年最深的一个体会是大量看似诡异的故障根源都是对私有 IP 和公有 IP 的边界理解不够。比如在两个办公网络通过专线或隧道并网时如果双方都用192.168.1.0/24路由就会产生冲突流量要么绕路要么直接被丢弃再比如你在内网访问自己的公网 IP 去连家里 NAS很多路由器默认不支持 NAT 回流所以从内网客户端根本访问不通但从手机流量就能通——这不是设备坏了是 NAT 规则本身的限制。还有一次在云上排查一个数据库连接超时问题折腾了半天安全组和系统防火墙最后发现是应用配置里写错了地址把内网连接写成了公网地址流量绕了一大圈到 NAT 网关又被丢掉了。所以现在我在任何配置里写 IP 之前都会先在纸上标清楚这是私有还是公有这个地址是出现在源端还是目的端数据包路径上有几层 NAT把这些想明白了80% 的问题在动手之前就能避免。数据包在网络上走的每一步都是有原因的而私有地址和公有地址的分界决定了这个包是被翻译还是被丢弃是能出境还是只能在内网打转。希望这篇内容能帮你少走点弯路下次再看到192.168.x.x和100.x.x.x的时候心里能立刻浮现出一张清晰的地图。