管理

IP地址是什么?IPv4和IPv6的区别与公网IP、内网IP

本文在AI辅助下由原文翻译而成。请结合原文核对专业术语和公式。

IP地址是网络用来把数据送到正确设备的数字地址,相当于贴在每个数据包上的收件地址。IPv4为32位,写成四段十进制数(如192.168.1.23),约43亿个;IPv6为128位,用十六进制书写(如2001:db8::1),约3.4×1038个。家里的设备通常拿到192.168.x.x这类只在本地网络有效的私有IP(内网IP),路由器则通过NAT让全家设备共用一个公网IP上网。

家庭网络示意图:笔记本电脑、手机和智能电视分别使用私有地址192.168.1.23、.24和.30,连接到负责NAT的路由器,路由器用一个公网地址203.0.113.45访问互联网,网站只能看到这个地址
图1. 家里的设备从路由器获得私有IP,NAT再把它们换成一个共用的公网IP,网站只能看到这个公网IP。图中的地址均为示例。

IP地址有什么作用

数据在网络上被切成小数据包传送,每个包都带着源地址和目的地址。沿途路由器读取目的地址,把数据包再向前转发一跳;回复则按源地址送回。因此,设备要收发数据就必须有地址。

地址属于网络接口,而不是某个人或整台设备:笔记本同时连着WLAN和网线,就有两个地址。每个地址分两部分:同一局域网共用的网络前缀,和区分具体设备的主机部分。192.168.1.23/24的前24位(192.168.1)是网络,后8位(23)是设备;子网掩码255.255.255.0与/24是同一件事的两种写法。

IPv4和IPv6地址怎么读

IPv4地址为32位,分成四个8位组,每段写成0–255的十进制数,用点隔开。192.168.1.23在计算机里就是11000000 10101000 00000001 00010111;192.168.1.300超出255,不是合法地址。

IPv6地址为128位,分成八组,每组16位,最多四个十六进制数字(0–9、a–f),用冒号隔开。RFC 4291和RFC 5952规定了缩写办法:

  1. 去掉每组开头的0:0db8写成db8,0000写成0。
  2. 把最长的一串全0组换成双冒号 ::,且只能用一次,否则无法确定各代表几组。
  3. 字母a–f写成小写。

于是2001:0db8:0012:0000:0000:0000:0000:00ab缩写为2001:db8:12::ab;软件还原时把 :: 补成若干组0,凑够八组即可。

IP地址结构图:IPv4地址192.168.1.23由四个8位组及其二进制值组成,前24位为网络部分;IPv6地址2001:0db8:0012:0000:0000:0000:0000:00ab由八个16位十六进制组组成,缩写为2001:db8:12::ab
图2. IPv4用四段十进制数表示,IPv6用八组十六进制数表示。去掉每组开头的0,再把一串全0组替换成 ::,就能缩短IPv6地址。

IPv4为什么不够用,IPv6怎么解决

32位只有232 = 4,294,967,296种组合,比全球80多亿人口还少,还有大段地址留作私有、组播等用途。IANA向五个区域互联网注册管理机构(RIR)各分发了最后一个/8地址块(16,777,216个地址),并于2011年2月3日宣布空闲地址池完全耗尽;此后各机构限量分配余下的地址,服务北美的ARIN在2015年9月24日用完了空闲IPv4地址。

IPv6用128位解决了短缺:2128 ≈ 3.4×1038个地址。仅一个标准子网(/64)就有264 ≈ 1.8×1019个,约为整个IPv4空间的43亿倍。两者不能直接互通,多数网络因此并行运行(双栈),你的电脑很可能已有两种地址。

项目IPv4IPv6
长度32位128位
写法四段十进制数,点分隔八组十六进制数,冒号分隔
示例192.168.1.232001:db8:12::ab
地址总数≈ 43亿(232)≈ 3.4×1038(2128)
回环地址(本机)127.0.0.1::1
仅限本地的地址RFC 1918私有地址段链路本地fe80::/10、唯一本地fc00::/7
缓解地址不足NAT:共用一个公网地址地址充足,每台设备可独享
对数刻度的地址数量条形图:家庭/24局域网256个(2^8),192.168.0.0/16为65,536个(2^16),整个IPv4约43亿个(2^32),一个IPv6的/64子网约1.8×10^19个(2^64),整个IPv6约3.4×10^38个(2^128)
图3. 在对数刻度下,条形长度就是地址的位数。仅一个标准IPv6子网,就比整个IPv4地址空间大2³²(约43亿)倍。

公网IP与内网IP的区别,NAT是什么

公网IP在互联网上唯一,可从任何地方访问。私有IP(内网IP)取自RFC 1918在1996年划出的地址段,供家庭和机构内部使用。互联网路由器不转发这些地址,所以千家万户可以同时使用192.168.1.x而互不冲突。其他特殊地址段也值得认识:

地址段地址数常见场景
10.0.0.0/816,777,216私有:大型办公网络、部分路由器
172.16.0.0/12(至172.31.255.255)1,048,576私有:企业网络
192.168.0.0/1665,536私有:大多数家用路由器
100.64.0.0/10(至100.127.255.255)4,194,304运营商内部的运营商级NAT
169.254.0.0/1665,536DHCP失败时自行分配
127.0.0.0/816,777,216回环:设备本身

只有路由器持有公网地址,所以由它做网络地址转换(NAT):笔记本(192.168.1.23)访问网页时,路由器把数据包的源地址改成自己的公网地址和一个自选端口号,记入转换表,回复到达时再换回来。几十台设备由此共用一个公网地址;副作用是,除非设置端口转发,外部无法主动连入内网设备。

动态IP与静态IP,IP会暴露什么

家里的DHCP服务器会自动分配私有地址,手机这周是 .24,下周可能变成 .31。打印机、游戏机等需要固定地址的设备,建议在路由器里做DHCP静态分配(地址保留),不要在设备上手填静态地址。多数家庭宽带的公网地址也是动态的,可能几个月不变,也可能重启路由器后改变;固定公网地址通常属于企业套餐或增值服务。

IP地址对应的是连接,不是人。网站能看到你的公网地址,据此查出运营商和大致位置,通常只到城市或地区,有时还不准;它读不出姓名和门牌地址,不过运营商能把地址和时间对应到用户账户。使用VPN后,网站看到的是VPN服务器的地址。

怎么查看自己的IP地址

  1. Windows内网IP:“设置”>“网络和Internet”,选“WLAN”(或“Wi-Fi”)并点开已连接的网络,或选“以太网”,查看“IPv4地址”。也可在命令提示符运行ipconfig,一并查看子网掩码和默认网关。
  2. Mac内网IP:苹果菜单>“系统设置”>“网络”,选中连接,点“详细信息”,再进“TCP/IP”。
  3. 路由器:ipconfig里的“默认网关”,常见为192.168.0.1或192.168.1.1。在浏览器打开它即进入管理页面,可看到路由器的WAN(互联网侧)地址。
  4. 公网IP:搜索“IP查询”或打开任意IP查询网站。

对比后两项:路由器WAN地址在100.64.0.0/10内,说明运营商用了运营商级NAT(CGNAT),你与其他用户共用公网地址;若是私有地址,则前面还有第二台路由器或运营商自己的NAT。两种情况下,端口转发都需额外设置或无法生效。

三张卡片:设备在“设置”或ipconfig中显示私有IP,路由器管理页面显示WAN IP,IP查询网站显示公网IP;如果路由器的WAN IP与公网IP不同,说明上游还有运营商级NAT之类的另一层NAT
图4. 依次查看设备、路由器和IP查询网站。如果路由器的WAN地址与网站看到的公网地址不一致,说明你和互联网之间还隔着另一层NAT。

常见问题

为什么我的IP以192.168开头?

路由器从私有的192.168.0.0/16地址段给设备分配地址,很正常,许多家庭用的都是同样的数字。网站只能看到路由器的公网地址。

两台设备可以用同一个IP吗?

不同家庭的设备可以共用私有地址,如192.168.1.10;同一网络里则不行,地址冲突会让至少一台设备掉线。公网地址在全球唯一。

169.254.x.x是什么意思?

设备申请地址时没收到DHCP服务器的回应,就给自己分配了链路本地地址,无法上网。请检查网线或Wi-Fi,并重启路由器。

参考资料:RFC 1918:私有地址分配;RFC 4291:IPv6寻址架构;NRO:IPv4地址池耗尽;微软支持:Windows网络设置。

相关阅读

为帮助理解本文而制作的原创插画。