Ping 到我自己的公共 IP 结果导致主机无法访问

Ping 到我自己的公共 IP 结果导致主机无法访问

首先,我正在运行 Manjaro 3.10 (Archlinux x64) 安装。

我正在尝试让我的无 IP 配置发挥作用。我尝试 ping 我的 no-ip 主机,但host unreachable只收到 ICMP。我想知道是否是 noip 问题,所以我检查了我的公共 ip:

curl ifconfig.me

我已经获取了结果公共 Ip 并对其进行了 ping:

ping my_public_ip 

结果host unreachable也是响应,所以我认为 no-ip 与这种情况无关(但我不确定,这就是我对这个问题发表评论的原因)。

可能是双IP问题。我有一个 RapsberryPI(也有 archlinux),我注意到它具有完全相同的公共 IP。

我的设置有什么问题吗?这是IP冲突问题吗?如果可能有问题,我可以做什么来检查它?

答案1

您很可能正在 ping 一个根本不属于您的本地主机的 IP 地址。在 IP 伪装(又名 NAT)时代,您在互联网上的通信被视为来自特定地址,但这并不意味着该地址已分配给您的计算机。

使用以下命令(或任何替代命令)检查您的 IP 配置:

ip address

您通常可以直接 ping 在此命令的输出中看到的 IP 地址(使用内部环回接口)。但没有什么可以保证您可以在通往其他互联网主机的途中对属于某个路由器的地址执行 ping 操作。

答案2

连接到路由器的所有设备都将具有相同的公共 IP,因为您的 ISP 为每个互联网连接提供一个外部/公共 IP,并且该公共 IP 属于您的路由器。我知道我在这里很矛盾,但让我进一步解释一下。

您的 ISP 只为您提供了一个连接/公共 IP,但您在多个设备上使用互联网。路由器正在做这项工作,抛弃你的 ISP 并将你的单个连接拆分到多个设备中,这是通过 NAT(网络地址转换)完成的。当您 ping(具体来说)您的公共 IP 时,路由器通常会对此类请求做出响应。

您没有收到任何回复的原因有两个。

1.您的路由器上的 Ping 被阻止。

2.路由器无法响应ping(旧路由器)

如果是第二种情况,那么您必须进行端口转发。当您希望公共电脑通过特定端口访问您的电脑时,路由器上需要端口转发。例如。您想在 RPi 上运行 http 服务器(端口 80)。

假设我在浏览器中输入您的 ddns。即使您已经在系统上安装了运行的 http 服务器,我也不会得到任何响应,因为该请求将被您的路由器丢弃。为什么这样?因为您没有告诉您的路由器,如果收到该请求(例如在您的电脑上或在 RPi 上),则必须在哪台 PC 上发送此请求(此处为 http-request)。这个问题可以通过端口转发解决。如果想了解如何配置端口转发,您可以访问您的路由器网站。

相关内容