【问题标题】:Using the public IP on AWS from java getCanonicalHostName method从 java getCanonicalHostName 方法使用 AWS 上的公共 IP
【发布时间】:2015-08-12 11:47:31
【问题描述】:

我正在尝试将 AWS 用作可扩展的分析工具。我正在使用 apache zeppelin 作为 Spark 集群的交互式 shell,并尝试使用 wisp 进行绘图。这导致了一个问题,因为 wisp 中的绘图方法是基于我认为的码头服务器启动 Web 应用程序。这在我的本地机器上运行良好,但在 AWS 上它不起作用,因为它获取私有 IP 地址而不是公共 IP 地址。

在wisp中,它使用java.net.InetAddress.getLocalHost.getCanonicalHostName 检索机器的 IP 地址。这总是返回私有 FQDN 地址。如何让 java 函数返回 AWS 提供的公共 IP 地址或 FQDN,而无需在每次启动集群和重建时对某些内容进行硬编码?

我尝试过更改 /etc/hosts 和 /etc/hostname 但都没有效果。我真的不知道在哪里java.net.InetAddress.getLocalHost.getCanonicalHostName 正在获取它的地址。

非常感谢任何帮助或建议。

院长

【问题讨论】:

    标签: java amazon-web-services apache-zeppelin


    【解决方案1】:

    我是个白痴。这是一个端口问题。似乎尽管显示了私有 IP,但它仍然可以在公共 IP 上使用。

    使用sudo ufw disable 关闭内部防火墙(无论如何,在 ubuntu vm 上,查找适合您的 vm 风格的替代命令)。

    接下来,转到您账户的 AWS EC2 管理页面,然后单击您实例的安全组。

    在安全组页面,编辑入站规则并添加自定义 tcp 规则。

    在端口下,输入“1 - 65536”,在源下输入“0.0.0.0/0”。请注意,您刚刚所做的是将实例上的所有端口开放给来自任何地方的所有传入流量。您刚刚在 Internet 上放置了欢迎垫。我不建议长期这样做,这非常愚蠢。它适用于我建立的原则证明,这就是我的目标。我现在正在寻找确保它安全的方法。

    感谢大家的克制,没有嘲笑我是个白痴。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-03
      • 2017-06-30
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 2017-10-09
      • 2017-01-01
      相关资源
      最近更新 更多