注意到所有设备上的公共 IP 地址

注意到所有设备上的公共 IP 地址

我已经谷歌搜索过了我的 IP 地址是多少从我的笔记本电脑上103.92.123.196. 用我的 Raspberry Pi 做同样的事情从我的手机上,我得到了相同的公共 IP 地址。在所有 3 台设备上进行速度测试,我仍然得到相同的 IP 地址。(103.92.123.196)

我与我的 ISP 进行了交谈,他说这些服务向我显示的 IP 是他的路由器的静态 IP 地址。他告诉我,我的设备使用相同的公共 IP 地址是因为 NAT。但我的设备必须有一个唯一的(动态/静态)公共 IP 地址。

我如何才能知道我的每个设备的公共 IP 地址?

需要知道我的 Raspberry Pi 的公共 IP 地址,以便从我的大学远程访问它。尝试 noip 的 DDNS 对我来说不起作用。

答案1

这是您的网络布局:

                        Internet
                    (public network)
                           |
                           |
                           |
                           |
                           |
                           |
                           |
                     +-----+------+
                     |            |
------------------   |   Router   |   -----------------
                     |            |
                     +---+--+--+--+     private network
                         |  |  |
                         |  |  |
         +---------------+  |  +--------------+
         |                  |                 |
         |                  |                 |
  +------+-----+      +-----+----+      +-----+-----+
  |            |      |          |      |           |
  |   Laptop   |      |   R Pi   |      |   Phone   |
  |            |      |          |      |           |
  +------------+      +----------+      +-----------+

每个网络都有自己的地址空间。地址空间是一个唯一地址池,在本例中为 IP 地址。网络中的每个设备都有一个来自其地址池的地址。这里有两个网络:

  • 互联网——一个巨大的公共网络
  • 您的小型私人网络

公共 IP 不是某种特殊类型的 IP,它只是公共网络中的 IP - 来自 Internet 地址空间的单个 IP。您的笔记本电脑、Pi 和手机不直接连接到 Internet,因此它们在 Internet 中没有自己的 IP 地址。它们位于本地网络中,并具有来自本地网络地址空间的本地 IP。

路由器是一种连接两个网络并让其中的设备相互通信的设备。路由器同时存在于两个网络中,并且在每个网络中都有一个 IP 地址。因此,它在互联网中有一个公共 IP,在本地网络中有一个私有 IP。公共网络和私有网络之间的所有通信都通过路由器进行。

您的路由器使用一种称为 NAT 的技术,让专用网络中的设备使用路由器的单个公共 IP 与互联网中的其他设备进行通信。我不想详细介绍 NAT 的工作原理 - 您只需要知道它支持双向通信,它必须由本地网络中的设备发起。如果您的笔记本电脑连接到公共 IP,则该 IP 可以响应它。但是当您尝试从外部本地网络访问您的 Pi 时,它将无法工作 - 您的路由器不知道哪个本地设备应该是此连接的目标。

如果你可以访问路由器的配置,你可以设置转发端口- 即,到给定端口的外部连接应始终路由到给定的私有 IP。例如,您可以将端口 80 转发到 Pi 的本地 IP,以在路由器的公共 IP 上公开 Pi 的端口 80。

相关内容