为什么我的公共IP地址不是唯一的(我该如何处理)?

时间:2016-03-02 22:36:32

标签: ip

我有一个在“远程”机器上运行的应用程序,我想通过Web服务器模块进行增强,这样我就可以使用普通的Web浏览器来获取有关应用程序状态的信息。我将使用Poco Libraries,而不是重要。

步骤1:添加服务器模块以提供“Hello World!”本地 - 完成,轻松。

步骤2:找到我的“本地”机器的公共IP地址,例如转到here,然后使用一些外部路由的网络浏览器(例如在我的手机上)来模拟与“Hello World!”的“远程”连接。响应者 - 失败。

我测试的办公室中的每台机器共享相同的公共IP地址......尽管许多网页都在讨论将其描述为唯一的公共IP地址。为什么他们不独特?

听说过Network Address Translation,我猜这些话必须发生一些事情(也许是Port Forwarding?)......但即使这可能回答了最初的问题,那么实际的程序员是什么?回答“既然我了解公共IP地址可能不是唯一的,那么当它(可能)在防火墙后面时,如何在远程站点唯一地识别特定机器?”

2 个答案:

答案 0 :(得分:1)

首先,您的公共IP地址不是唯一的原因是您和所有共享相同IP地址的设备没有直接连接到互联网,而是通过某些中间网关连接#34;设备(例如交换机,路由器,调制解调器)。您的公共IP地址实际上是该网关设备的地址。

因此,当您从Google或Facebook或任何地方请求网页时,该设备会将您的LAN IP和端口号(HTTP可能为80,HTTPS为443)转换为其IP和其他可重新翻译的端口号当响应重新出现时。这是网络地址转换(NAT)的一种形式,它是一种动态安排,通常在会话范围内运行 - 它在会话启动时设置,在会话时关闭结束。

这是您的设备作为客户端行为的情况;当你想把它变成服务器时,你有两个选择:

  • 设置VPN
  • 使用端口转发

VPN(虚拟专用网络)将使远程计算机显示在您的计算机上,就好像它是本地网络的一部分一样。您必须安装特殊的VPN软件,这样才能获得更强大和通用的解决方案。但是,如果你只是想提供一些简单的东西,例如,它可能是过度的。从您的家用电脑中获取个人利益。

端口转发稍微容易一些,但由于security concerns而托管您设备的人的IT政策可能会禁止此操作。它需要在"网关"上的表中进行静态输入。将您连接到互联网的设备(路由器,交换机,调制解调器)。它告诉网关设备使用其(专用LAN)IP将特定端口上的所有流量发送到设备上的端口。有关如何操作,请参阅该网关设备的手册。

所有这些都适用于IPv4。当IPv6有更多的吸引力时它会如何变化 - 理论上每个人的设备在IPv6下都会有一个独特的公共IP地址,但安全性是互联网上的一个主要问题,目前尚不清楚怎么"公共"那些公共地址将是 - 很多设备可能会隐藏在这些网关设备提供的防火墙后面。

答案 1 :(得分:0)

由于我们没有为每个设备提供足够的ipv4地址,因此发明了NAT(网络地址转换)。这意味着您的路由器具有公共IP地址并管理会话(检测TCP连接并临时将传出端口转发到打开连接的客户端)

如果您的服务器(分别为HTTP和HTTPS可能分别为80和443),您需要将一个或多个端口转发到LAN地址

然而,在ipv6中,每台机器都有自己的公共地址。