我的全球 IP 地址是 192.168.1.xxx?

我的全球 IP 地址是 192.168.1.xxx?

我正在使用 Ubuntu,发现我的全局 IP 地址是192.168.1.xxx我在这里写的xxx

为了检查这一点,我设置了一个 Web 服务器,它只能通过这个本地 IP 地址访问。当我检查我的 IP 网页时,它显示一个正常的 IP 地址:180.150.80.xxx并且无法从这个正常的 IP 地址访问该网页。我用手机检查了这一点。

输出ip addr为:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 98:e7:f4:0f:3d:01 brd ff:ff:ff:ff:ff:ff
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether b8:81:98:cc:2d:bf brd ff:ff:ff:ff:ff:ff
    altname wlp3s0
    inet 192.168.1.xx/24 brd 192.168.1.255 scope global dynamic noprefixroute wlo1
       valid_lft 84833sec preferred_lft 84833sec
    inet6 2403:580e:7b3c:0:b69:4100:a7f4:xxxx/64 scope global temporary dynamic 
       valid_lft 6707sec preferred_lft 3105sec
    inet6 2403:580e:7b3c:0:1f61:fea0:6275:xxxx/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 6707sec preferred_lft 3105sec
    inet6 fe80::a117:ea44:a262:xxxx/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

IP 路由的输出为:

default via 192.168.1.1 dev wlo1 proto dhcp metric 600 
169.254.0.0/16 dev wlo1 scope link metric 1000 
192.168.1.0/24 dev wlo1 proto kernel scope link src 192.168.1.xx metric 600 

这里发生了什么?

我正在添加一个通过 GUI 显示 IPv4 地址的屏幕截图:

截屏

为什么我看到的 IP 地址是192.168.1.xxx

答案1

我正在使用 Ubuntu,发现我的全局 IP 地址是……

它不是全局的。不要太在意scope global;“ip addr”中的字段对 IPv4 条目没有任何意义(即使对于 IPv6 来说,它也已经失去了其大部分原有含义)。如果它是 192.168.xx 地址,那么无论范围参数如何,它都是私有地址。

(IPv4 从未真正将“范围”作为内置概念。IPv6 曾经将“范围站点”用作其原始类型的私有地址,但现在已经过时,而较新的私有 IPv6 地址也只使用“范围全局”,因此您始终必须查看实际的地址前缀来确定其类型。)

剩下的唯一有意义的值是“范围链接”,它表示该地址严格限于子网。(与私有地址不同,私有地址可以跨多个网络和子网进行路由,而链路本地地址永远不会超出其自己的子网。

范围 实际意义
全球的 可以不受特定边界限制地进行路由。(是的,私有地址确实有边界,但该边界由 ISP 策略定义,并非 IP 功能所固有。)
地点 可以在具有相同“站点 ID”的接口之间进行路由。(仅限 IPv6,已过时。)
关联 根本无法路由;仅限于单个子网。
主持人 仅在同一台计算机内使用;“localhost”地址。

当我检查我的 IP 网页时,它显示一个正常的 IP 地址:180.150.80.xxx,并且无法从这个正常的 IP 地址访问网页

这里发生了什么?

实际情况是,(实际的全球) IPv4 地址稀缺,而住宅 ISP 仅发放一个全球地址每位顾客。(而如今,这种情况往往不再存在了。)

多台设备实际上无法“共享”同一个 IP 地址,因此通常将一个地址分配给具有 NAT 功能的路由器(即您的家庭 wifi 路由器)。路由器会重写所有发往互联网的数据包,以便它们看起来仿佛它们来自路由器的公共地址,而不是计算机实际拥有的地址。

这意味着当你尝试入站连接到您的 180.150.80.xxx 地址,您始终连接到路由器。若要在内部托管 Web 服务器,需要设置路由器以将该连接转发到更远的地方,最常见的方法是再次使用 NAT(又称为“端口转发”)。

然而,住宅客户甚至不再获得单个 IP 地址,这种情况越来越普遍——而是在 ISP 本身完成另一层 NAT。在这种情况下,入站连接根本无法到达客户的网络,而且再多的“端口转发”也无济于事。因此您花时间尝试使其工作,打开路由器的状态页面并检查它的 IP 地址。

从好的方面来看,你的电脑有一个IPv6实际上是全局的地址。所有inet6 2403:580e:[...]条目都应该可以从外部访问(尽管您的路由器可能仍然会阻止其内部的入站连接)。防火墙配置)和地址没有“临时”标志可用于托管服务器。只要您的所有访问者都拥有 IPv6,也就是说……(大多数人仍然没有)

这似乎在某种程度上我处于家庭网络中的一个附加子网之下......

您处于NAT在您的家庭网络中。

您的家庭网络实际上是“附加子网”,但导致这种情况的不是网络或子网本身(至少不是直接原因);而是该子网中所有设备缺少足够的全局 IPv4 地址。

(而且,这可能也是 ISP 的历史惯例,他们已经拥有足够多的网络。直到大约二十年前,许多人还没有“家庭网络”;他们会直接地将他们的计算机连接到 ISP(无论是通过拨号还是通过 ADSL),该计算机将直接接收单个公共地址……因此,所有住宅 ISP 的系统架构都为每个客户分配一个地址。当事情变得更大时,对他们来说,在客户端进行 NAT 可能比改变 ISP 自己的系统的工作方式“更具成本效益”。)

然而,除了家庭网络之外,较大的网络(例如企业或大学)以各种方式在内部路由许多公共 IPv4 地址仍然是正常的,并且“私有地址”和“子网”之间没有技术关系。

相关内容