像房间号和大楼的收件地址

你在一栋办公楼里工作,桌边写着“302 室”,快递单上却写着大楼的收件地址。这两处都没写错,只是给不同的人看。电脑里的 IP 和网站查到的 IP,也常常是在回答不同的问题:一个描述电脑在当前网络里的地址,另一个描述这次请求从哪里到达网站。

打开本站首页,记下“IPv4 地址”,再看看电脑网络设置里的 IPv4 地址。如果电脑显示 192.168.1.23,网站却显示另一串数字,不必马上怀疑查询出错。先确认比较条件,再判断差异来自哪里,比设法把它们改成一样更有用。

不过,这个比方主要适合常见的家庭 IPv4 网络。不能把电脑里看到的每个地址都叫作内网地址,也不能要求网站地址永远与电脑地址不同。尤其是 IPv6,一台电脑可能同时列出多个地址,要先分清各自的用途。

先在同一台电脑上做一次对照

  1. 固定设备和网络。在这台电脑上打开本站首页,记下当前使用 Wi-Fi 还是网线,以及查询时间。不要拿电脑的设置去比较手机流量下的网页结果。
  2. 分开记录两种地址。在首页的信息列表中分别看“IPv4 地址”和“IPv6 地址”。有地址时可点旁边的“复制”;没有查到的项目照实记为未查到,不用补猜一个地址。
  3. 查看当前连接的网卡。在 Windows 11 的命令提示符中输入下面的 ipconfig,查看对应网卡的 IPv4、IPv6 和默认网关。其他系统的查看方法见第 5 章。
  4. 同类对同类。电脑的 IPv4 对照网页的 IPv4;电脑的 IPv6 对照网页的 IPv6。记录后再按下面几节判断,不把两种写法不同的协议直接比较。
ipconfig

这个不带参数的命令用于查看当前配置,不会替你换地址。输出可能列出多个网络适配器,也就是不同的实体网卡或虚拟网络接口。先找到你正在使用的连接,别从第一段输出里随便抄一个数字。

为了方便对照,你可以按下面的样子记录。表中的数据都是模拟示例;203.0.113.42 是文档用地址,不是真实家庭出口,也不是供你连接的测试目标。

表 8-1 一次地址对照的模拟记录
记录项模拟内容
设备与连接同一台电脑,家里的 Wi-Fi
电脑的 IPv4 地址192.168.1.23
电脑显示的默认网关192.168.1.1
本站首页的 IPv4 地址203.0.113.42

IPv4 不一样,常见原因是地址转换

在常见的家庭网络里,私有 IPv4 地址用于内部通信,就像房间号。常见范围包括 10. 开头、192.168. 开头,以及 172.16. 到 172.31. 开头的地址。不是所有 172. 开头的地址都属于这一类。

电脑用私有地址发出的请求,要经过路由器或其他网关。它们可以把内部地址转换成对外使用的地址,这叫 NAT,也就是网络地址转换。网站因此看到转换后的地址,而不是电脑这一侧的私有地址。多个设备也可以通过地址和端口转换,共用一个对外地址。

模拟家庭 IPv4 地址转换:电脑使用私有地址 192.168.1.23,经网关转换后,网站看到文档示例地址 203.0.113.42 电脑在家里使用的地址 192.168.1.23 路由器或其他网关做地址转换 NAT:对外通信换用另一侧的地址 网站这一侧看到的地址 203.0.113.42
图 8-1 模拟地址转换:两侧地址用途不同,数字不必相同

所以,表 8-1 的电脑地址与网页地址不同,符合常见的家庭 IPv4 NAT 情况。“默认网关”则是电脑向其他网络发送数据时常用的下一站;在这个例子中,它是家里路由器的内部地址,不是第三个“电脑自己的 IP”。

地址转换也可能不止一层。仅凭电脑和网页的两个地址,无法数出中间有几层,更不能直接判断是哪一台设备做的。需要区分路由器自己的外网地址和网站所见地址时,再结合第 3 章 公网 IP 和内网 IP继续查看。

比较 IPv6,要先看地址类型和写法

IPv6 不能直接照搬前面的判断。一台电脑的同一网络接口,可以有多个 IPv6 地址;其中既可能有用于互联网通信的地址,也可能有只用于当前链路的地址。电脑里列出的其中一个,不一定就是本次网页请求使用的那个。

比如,常见的 fe80:: 开头的地址属于链路本地地址的范围,用于当前链路内通信,不会由路由器转发到别的链路。不能因为电脑有这种地址,就要求外部网站显示它,也不能凭它证明已经能通过 IPv6 访问互联网。

有时两处看似不同,实际上只是简写方式不同。下面两行表示同一个 IPv6 地址,都是文档示例:

2001:0db8:0000:0000:0000:0000:0000:0010
      2001:db8::10

省略每组开头的零,以及用双冒号压缩连续的零,会让字符串长度变短。不要只凭“位数少了”就认定地址被更换。想了解写法,可以回看第 2 章。

另外,系统可能生成用于对外通信的临时 IPv6 地址,并随时间更新。若电脑列了多个地址,要比较的是同一时段实际用于请求的地址,不能固定拿列表第一项去要求网页一致。发现地址变化时,先记下完整内容和时间,不要仅凭后半段不同就判断断网或设备异常。

还要排除比错网卡、时间和请求路径

电脑可能同时装有有线网卡、无线网卡和虚拟接口。查看配置时,把某个虚拟接口的地址拿去对照 Wi-Fi 上网的结果,比较对象就变了。连接名称和是否正在使用应一起确认;有默认网关也只是线索,不足以单独证明某个网页一定经过这张网卡。

如果浏览器请求经过代理或其他转发,查询服务看到的地址也可能来自转发出口。是否经过这种路径,需要结合当前配置确认,不能只看一个不熟悉的地址就认定原因。公司或学校管理的连接,也不应为了让两个地址相同而随意修改设置。

还要检查时间:你拿昨天的网页截图,对照今天重连网络后的配置,两次地址可能已经变化。把设备、连接方式和记录时间写在同一张表里,才能知道差异来自哪里。关于地址变化本身,可以读第 4 章 动态 IP 和静态 IP。

本站首页会分别查询两种地址,并在需要时用本站接口的结果补充。它返回的是这些请求得到的地址,不会读取电脑全部网卡的配置。不同查询目标也可能经过不同出口;若要判断差异,必须把“哪个接口、哪种协议、什么时间”的信息保留下来。

对照之后,怎样判断下一步

表 8-2 常见对照情况与下一步
看到的情况先怎样理解下一步
电脑为私有 IPv4,网页为另一 IPv4符合常见的 NAT 上网情况确认同一网络后记录,不必强求相同
电脑看的是 IPv4,网页看的是 IPv6比较了两种协议的地址改为 IPv4 对 IPv4、IPv6 对 IPv6
IPv6 只是零的省略方式不同可能仍是同一个地址按完整地址对照,不按字符长度判断
电脑有 IPv6,网页没有查到本次查询没有取得结果,原因未定重试,并用本站 IPv6 测试进一步确认

最后一种情况尤其不能直接认定“电脑显示错了”。可能是电脑只列出了链路本地地址,也可能是查询请求没成功或被拦截。先用 IPv6 测试区分有没有确认连通、有没有取得地址,再按第 7 章读检测结果。

若同一设备、同一网络、相近时间、同种协议的结果仍让你疑惑,先保留必要记录:正在用的适配器名称、对应地址类型、网页结果与时间。请求网管帮助时,这些比一句“两个 IP 不一样”更容易定位问题,不必先重启光猫或改路由器。

不必把两个地址改成一样

电脑的地址用于本地网络通信,网站显示的是请求到达查询服务时对方看到的地址。它们并不是互相校验的验证码。为了让数字相同,把网页上的公网 IPv4 手动填进电脑配置,可能破坏原来的联网设置,并不能让你获得那个公网地址。

反过来,两处地址相同也不代表设备能够被外网主动访问。是否能连入,还与路由、防火墙、服务监听等条件有关;本站首页没有替你检查这些。它也不能仅凭一个出口地址,把共用该出口的所有设备逐一列出来。

小结

  • 对照时固定设备、网络和时间,IPv4 对 IPv4,IPv6 对 IPv6。
  • 电脑的私有 IPv4 和网站看到的出口地址不同,常见于 NAT;仅凭差异不能确定转换层数或运营商级 NAT。
  • IPv6 要先分清用途、多地址和简写,不能把电脑所有地址都称为内网地址。
  • 没有查到地址不等于没有连接;地址相同也不等于可以从外网连入。

现在回到本站首页,分别记下 IPv4、IPv6,再和当前电脑的对应项目对照。目标是知道每个地址在说明什么,不是让所有数字变得一样。