0

这可能非常简单,我只是错过了一步。我(最初)试图解决的问题是如何获得一个静态分配的主机名,每次重启都不会改变。我已经完成了以下步骤:

我在 GoDaddy 上注册了一个域,它指向我的 EIP。我用它通过 SSH (putty) 连接到我的 EC2 实例,所以我知道这部分正在工作。我打开了端口 9080、9060、9043 和 9443 以及 SSH 和 FTP 端口。而且我已经安装并启动了使用这些端口的软件,这些东西通常只适用于本地 RHEL 安装,所以我认为这里的不同之处在于自定义域名。

我已将我的 EIP 和完全限定的主机名添加到我的 /etc/hosts 文件中。

我已将完全限定的主机名添加到我的 /etc/hostname 文件中,并修改了 /etc/rc.local 脚本以在重新启动时正确设置主机名,这很有效。如果我执行命令主机名,它会返回我的完全限定主机名,所以看起来没问题。

我无法 ping 我的服务器,但我认为没关系,因为亚马逊可能会阻止 ping。所以我不认为这是任何症状。

我无法打开http://myserver.mydomain:9080/,这通常可以正常工作。在这里它只是超时。

如果我从 EC2 实例内部执行 wget http://myserver.mydomain:9080 ,它会返回 failed: No Route To Host

但是,如果我对 localhost 而不是完全限定的名称执行 wget,我会得到我期望的响应。

所以....路由表?这些需要改变吗?如果是这样怎么办?

4

1 回答 1

0

你可能不想做你做过的事。EC2 中的所有内容都经过 NAT。这意味着分配给您的实例的 IP 是私有/内部 ip,并且公共 IP 由路由系统映射到它。

因此,在内部,您希望所有内容都解析为私有 IP,否则您将被收取流量费用,因为它必须路由到边缘然后再路由回。使用公共 DNS 名称将从默认 DNS 服务器正确解析。

如果您使用的是 RHEL,则需要确保安全组和内部防火墙 (iptables) 都打开了端口。您可以禁用内部防火墙,因为它与安全组有点多余。另一方面,如果您需要,它可以提供一些安全组不提供的选项。

于 2013-09-18T15:14:31.720 回答