程序员工作必需之公网和私网

公网IP和私网IP

公网 IP 和私网 IP 的设置方式、用途及特性有本质区别,核心差异在于 "是否能直接被互联网访问";

  • 公网IP主要用于广域网,私网IP主要用于局域网;
  • 公网 IP 是设备在互联网的 "公开门牌号",用于对外提供服务或被全球访问,需向运营商申请。
  • 私网 IP 是设备在局域网的 "内部门牌号",用于本地设备互访,用户可自由设置,安全性更高但无法直接被互联网访问。

实际场景中,多数设备(如手机、电脑、机器人)仅需私网 IP 即可满足本地通信和通过路由器访问互联网;仅当需要被外部设备直接访问时(如搭建服务器、远程控制公网机器人),才需要公网 IP。

公网 IP 与私网 IP 的设置方式

1. 公网 IP:由运营商分配,用户无法自行设置

公网 IP 是全球唯一且可被互联网直接访问的 IP 地址,由国际互联网组织(如 ICANN)统一分配给运营商,再由运营商分配给用户,用户无法自行指定或修改:

  • 家庭 / 企业场景:向运营商(如电信、联通)申请 "公网 IP 权限" 后,光猫 / 路由器会从运营商服务器自动获取公网 IP(通过 DHCP 协议),通常是动态的(重启设备可能变化),固定公网 IP 需额外付费。
  • 服务器场景:机房或云服务器(如阿里云、AWS)的公网 IP 由服务商分配,可选择动态或固定(固定 IP 需付费),通过服务商控制台配置网络即可。
2. 私网 IP:用户可在本地网络自行设置,仅在局域网内有效

私网 IP 是局域网内设备的标识,范围由国际规定(见下文),用户可在路由器或设备中手动设置,或由路由器通过 DHCP 自动分配:

  • 自动分配(推荐) :路由器默认开启 DHCP 功能,设备(电脑、手机、机器人等)连接网络时,会自动获取私网 IP(如192.168.1.xxx),无需手动操作。
  • 手动设置 :在设备的网络设置中,手动填写 IP 地址(需在私网 IP 范围内)、子网掩码(如255.255.255.0)、网关(路由器的私网 IP,如192.168.1.1)。例:给电脑设置固定私网 IP 192.168.1.100,确保与同网段其他设备不冲突即可。

公网 IP 与私网 IP 的核心区别

维度 公网 IP 私网 IP
范围 全球唯一,无重复(如113.57.xxx.xxx 仅限私网范围,不同局域网可重复:① 10.0.0.0 ~ 10.255.255.255172.16.0.0 ~ 172.31.255.255192.168.0.0 ~ 192.168.255.255
访问性 可被互联网中任何设备直接访问(如服务器) 仅能在本地局域网内访问,无法被互联网直接访问
用途 标识设备在互联网中的位置(如网站服务器、公网摄像头) 标识设备在局域网内的位置(如家庭电脑、公司打印机、机器人)
分配方 运营商或云服务商(需申请) 用户自行分配(通过路由器 DHCP 或手动设置)
数量 稀缺(IPv4 仅剩约 43 亿个,已基本耗尽) 无限制(同一私网范围可在不同局域网重复使用)
安全性 直接暴露在互联网,需防火墙防护 隐藏在局域网内,天然受路由器 NAT 保护,安全性更高

设置后的关键差异:通信能力不同

  1. 公网 IP 的通信能力

    • 可直接与互联网中其他公网 IP 设备通信(如你的公网服务器可被全球用户访问)。
    • 例:网站服务器的公网 IP 203.0.113.5,用户通过该 IP 可直接访问网站。
  2. 私网 IP 的通信能力

    • 仅能与同一局域网内的私网 IP 设备通信(如家庭内网中,手机192.168.1.5可直接访问电脑192.168.1.6)。
    • 若要访问互联网,需通过路由器的 "NAT 转换":路由器将私网 IP 转换为自身公网 IP,再与外部通信(返回数据时再转回私网 IP)。
    • 互联网设备无法直接访问私网 IP(如外部用户无法直接访问你家电脑的192.168.1.100)。

为什么ip地址不够用?

一般需要给每台主机都需要设置一台IP地址,那有了公网和私网,就可以划分区域,在局域网内部用私网IP,外部接口等用公网IP,这样不同局域网下的私网IP可以重复,减少了不够用的情况。

IP地址的分类

IP 地址分类本质是早期互联网为了高效分配和管理有限的 IPv4 地址资源而设计的方案,核心是通过固定的地址前缀快速区分网络规模,方便路由器转发数据。

IP为什么会有类别的区分?

就是为了解决两个核心问题:避免地址浪费 以及简化路由判断

  1. 避免地址浪费:不同规模的网络(如个人家庭、企业、运营商)需要的 IP 数量不同,不能无差别分配,否则会导致大量地址闲置。
  2. 简化路由判断:路由器需要快速识别 "某 IP 属于哪个网络",如果每个 IP 都要逐位分析,效率极低;通过固定分类,路由器只需看前几位就能确定网络类型,提升转发速度。

IPv4 地址是 32 位二进制数(如192.168.1.1,对应 32 位二进制),总数量约 43 亿个。

有A到E五种分类,其中只有ABC三类地址 可以分配给主机或路由器的各接口。

  • A类 二进制0开头,主要用于公司、学校等;
  • B类 二进制10开头;
  • C类 二进制110开头,主要用于家庭。

ABC三类IP地址均由 网络号+网络地址(主机号)组成。主机号全0的地址是网络地址、主机号全1的是广播地址,不能分配给主机或路由器的各接口。

示例 :若看到一个 IP 以10.开头(前 8 位是00001010,符合 A 类 "前 1 位为 0"),就知道它的网络位是前 8 位,主机位是后 24 位,可容纳约 1677 万台设备;而以192.开头的 IP(前 3 位是110),网络位是前 24 位,主机位仅 8 位,最多容纳 254 台设备(排除网络地址和广播地址)。

由于IP地址的网络号和主机号是固定位数的,使IP地址分类不够灵活,容易造成大量IP地址的浪费。因此,后来出现了无分类域间路由(CIDR) ,用 "子网掩码"(如255.255.255.128)灵活划分网络位和主机位,取代了固定的 A/B/C 类划分。

NAT

私网IP 经过NAT(网络地址转换 Network Address Translation)转换为公网IP;

如何使用NAT?

在私网 连接到互联网的路由器上安装NAT软件,成为NAT路由器,进而应用NAT功能实现转换。

NAT路由器(网关)

在NAT路由器中有一个公网IP池,里边至少有一个有效的公网IP;同时在NAT路由器中会建立公网IP和私网IP的对应关系表。

NAPT

NAPT(网络地址与端口号转换 Network Address and Port Translation)。

  • 使用私网的大量主机,可以共用NAPT路由器上的1个全球IP地址;
  • NAPT路由器中也会维护一个关系表(包含路由IP和端口号);
  • 在关系表中,当有多个私网IP 进行转换时,所对应的公网IP地址是一样的,只是端口号不一样。

待补充:

  • ipv6 和ipv4(32位地址)
  • 子网掩码
相关推荐
昔人'4 小时前
css`text-underline-offset` 为文本下划线设置偏移量
前端·css
旺仔牛仔QQ糖4 小时前
防抖(或节流)自定义传参
前端
莎莎小公举4 小时前
AI 应用中 Markdown 流式渲染图片闪动问题
前端
天蓝色的鱼鱼4 小时前
Next.js的水合:静默的页面“唤醒”术
前端·react.js·next.js
莎莎小公举4 小时前
AI项目中对话模块实现及markdown适配
前端
irises4 小时前
前端国际化方案结构设计
前端
brzhang4 小时前
Node 服务遇到血崩,汤过坑才知道,限流与熔断是你绕不过的坑
前端·后端·架构
Moment4 小时前
NestJS 在 2025 年:对于后端开发者仍然值得吗 ❓︎❓︎❓︎
前端·javascript·后端
Jolyne_4 小时前
一些我推荐的前端代码写法
前端