我从我的笔记本电脑上用谷歌搜索了我的 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 对我不起作用。
这是您的网络布局:
Internet
(public network)
|
|
|
|
|
|
|
+-----+------+
| |
------------------ | Router | -----------------
| |
+---+--+--+--+ private network
| | |
| | |
+---------------+ | +--------------+
| | |
| | |
+------+-----+ +-----+----+ +-----+-----+
| | | | | |
| Laptop | | R Pi | | Phone |
| | | | | |
+------------+ +----------+ +-----------+
Run Code Online (Sandbox Code Playgroud)
每个网络都有自己的地址空间。地址空间是唯一地址池,在本例中为 IP 地址。网络中的每个设备都有一个来自其池的地址。这里有两个网络:
公共 IP 不是某种特殊类型的 IP,它只是公共网络中的一个 IP——来自 Internet 地址空间的单个 IP。您的笔记本电脑、树莓派和手机没有直接连接到 Internet,因此它们不会在 Internet 上获得自己的 IP 地址。它们位于本地网络中,并且拥有来自本地网络地址空间的本地 IP。
路由器是一种连接两个网络并让其中的设备相互通信的设备。路由器同时位于两个网络中,并且每个网络中都有一个 IP 地址。因此,它在 Internet 中既有公共 IP,又有本地网络中的私有 IP。公共网络和专用网络之间的所有通信都通过路由器进行。
您的路由器使用一种称为 NAT 的技术,让私有网络中的设备使用路由器的单个公共 IP 与 Internet 中的其他设备进行通信。我不想详细介绍 NAT 的工作原理——您只需要知道它支持双向通信,但它必须由本地网络中的设备启动。如果您的笔记本电脑连接到公共 IP,该 IP 可以响应它。但是,当您尝试从本地网络外部访问您的 Pi 时,它不起作用 - 您的路由器不知道哪个本地设备应该成为此连接的目标。
如果您可以访问路由器的配置,则可以设置端口转发- 即。到给定端口的外部连接应始终路由到给定私有 IP 的规则。例如,您可以将端口 80 转发到 Pi 的本地 IP,以在路由器的公共 IP 上公开 Pi 的端口 80。
归档时间: |
|
查看次数: |
44 次 |
最近记录: |