【问题标题】:Reach internal machine using its public IP from internal network使用内部网络的公共 IP 访问内部机器
【发布时间】:2015-10-14 23:59:47
【问题描述】:

在 VMWare vCloud 中工作。

网络服务器有内部ip 172.16.0.61,公共ip 148.25.6.22(发明号码); App Server 有内部 ip 172.16.0.52

从应用服务器,我可以使用其内部 172.16.0.61 ping 和浏览 Web 服务器,但是......我如何使用其公共 148.25.6.22 访问它(从应用服务器)?

只是搜索让我对应用服务器说的话 148.25.6.22 => 172.16.0.61

如果我有一个域名,我可以在 /etc/hosts 中解析它,但目前我只有 ip。 提前致谢

【问题讨论】:

    标签: networking centos


    【解决方案1】:

    如果我对您的理解正确,您的服务器位于 NAT 后面,该 NAT 伪装了它们的 IP 地址(这就是为什么您的网络服务器同时具有内部和外部 IP 地址 - 外部 IP 地址实际上是 NAT 的公共地址)。

    您可以在您的应用服务器上定义一个本地路由,它将发送到 148.25.6.22 的数据包定向到 172.16.0.61,但这会导致应用服务器将所有内容发送到内部地址。

    您应该做的是在您的 NAT 上配置端口转发 - 这意味着 NAT 将侦听您指定的端口,并且到达此端口的所有通信都将转发到网络服务器的内部 IP 到您指定的另一个端口,例如例如:148.25.6.22:8080 => 172.16.0.61:8080。现在,如果您的应用服务器连接到 148.25.6.22:8080,数据包将通过端口 8080 到达网络服务器。

    【讨论】:

    • 不幸的是,我无法访问端口转发,因为它由提供商严格管理。我用 iptables 解决了在应用服务器中设置静态路由的问题。
    • 很高兴听到问题已解决。您选择的解决方案是我在第二段中提到的解决方案,因此请注意,即使数据包到达目的地,它们实际上也会发送到私有接口(172.16.0.61),所以如果有重要意义到达公共接口(148.25.6.22)你可能仍然有问题。
    猜你喜欢
    • 2019-10-14
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多