像房间号和大楼的收件地址
你在一栋办公楼里工作,桌边写着“302 室”,快递单上却写着大楼的收件地址。这两处都没写错,只是给不同的人看。电脑里的 IP 和网站查到的 IP,也常常是在回答不同的问题:一个描述电脑在当前网络里的地址,另一个描述这次请求从哪里到达网站。
打开本站首页,记下“IPv4 地址”,再看看电脑网络设置里的 IPv4 地址。如果电脑显示 192.168.1.23,网站却显示另一串数字,不必马上怀疑查询出错。先确认比较条件,再判断差异来自哪里,比设法把它们改成一样更有用。
不过,这个比方主要适合常见的家庭 IPv4 网络。不能把电脑里看到的每个地址都叫作内网地址,也不能要求网站地址永远与电脑地址不同。尤其是 IPv6,一台电脑可能同时列出多个地址,要先分清各自的用途。
先在同一台电脑上做一次对照
- 固定设备和网络。在这台电脑上打开本站首页,记下当前使用 Wi-Fi 还是网线,以及查询时间。不要拿电脑的设置去比较手机流量下的网页结果。
- 分开记录两种地址。在首页的信息列表中分别看“IPv4 地址”和“IPv6 地址”。有地址时可点旁边的“复制”;没有查到的项目照实记为未查到,不用补猜一个地址。
- 查看当前连接的网卡。在 Windows 11 的命令提示符中输入下面的
ipconfig,查看对应网卡的 IPv4、IPv6 和默认网关。其他系统的查看方法见第 5 章。 - 同类对同类。电脑的 IPv4 对照网页的 IPv4;电脑的 IPv6 对照网页的 IPv6。记录后再按下面几节判断,不把两种写法不同的协议直接比较。
ipconfig
这个不带参数的命令用于查看当前配置,不会替你换地址。输出可能列出多个网络适配器,也就是不同的实体网卡或虚拟网络接口。先找到你正在使用的连接,别从第一段输出里随便抄一个数字。
为了方便对照,你可以按下面的样子记录。表中的数据都是模拟示例;203.0.113.42 是文档用地址,不是真实家庭出口,也不是供你连接的测试目标。
| 记录项 | 模拟内容 |
|---|---|
| 设备与连接 | 同一台电脑,家里的 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,也就是网络地址转换。网站因此看到转换后的地址,而不是电脑这一侧的私有地址。多个设备也可以通过地址和端口转换,共用一个对外地址。
所以,表 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。
本站首页会分别查询两种地址,并在需要时用本站接口的结果补充。它返回的是这些请求得到的地址,不会读取电脑全部网卡的配置。不同查询目标也可能经过不同出口;若要判断差异,必须把“哪个接口、哪种协议、什么时间”的信息保留下来。
对照之后,怎样判断下一步
| 看到的情况 | 先怎样理解 | 下一步 |
|---|---|---|
| 电脑为私有 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,再和当前电脑的对应项目对照。目标是知道每个地址在说明什么,不是让所有数字变得一样。