这可能非常简单,我只是遗漏了一步。我(最初)试图解决的问题是如何获得一个静态分配的主机名,这个主机名不会随着每次重启而改变。我已经完成了以下步骤:
我在GoDaddy上注册了一个域名,它指向我的弹性公网EIP。我使用它通过SSH (putty)连接到我的EC2实例,因此我知道该部分正在工作。我已经开放了端口9080、9060、9043和9443以及SSH和FTP端口。我已经安装并启动了使用这些端口的软件,这些东西通常只在本地RHEL安装上工作,所以我认为这里的不同之处在于自定义域名。
我已经将我的EIP和全限定主机名添加到/etc/hosts文件中。
我已经将我的完全限定主机名添加到/etc/hostname文件中,并修改了/etc/rc.local脚本,以便在重新启动时正确地设置主机名,这是可行的。如果我执行命令hostname,它会返回我的完全限定的主机名,所以看起来没问题。
我不能ping我的服务器,但我认为这没问题,因为亚马逊可能会阻止ping。所以我不认为这是任何症状。
我不能打开到http://myserver.mydomain:9080/,这通常是工作的。在这里,它只是超时。
如果我从EC2实例内部执行一个wget http://myserver.mydomain:9080,它将返回failed: No Route To Host
但是,如果我对localhost而不是完全限定的名称执行wget,我会得到我期望的响应。
所以..。路由表?这些都需要改变吗?如果是这样,又是如何做到的呢?
发布于 2013-09-18 23:14:32
你可能不想做你做过的事。EC2中的所有内容都是NAT'd。即分配给实例的IP是内网/内部ip,路由系统会将公网IP映射到该IP。
因此,在内部,您希望所有内容都解析到私有IP,否则您将按流量收费,因为它必须路由到边缘,然后再路由回来。使用公共DNS名称将从默认DNS服务器正确解析。
如果您使用的是RHEL,则需要确保安全组和内部防火墙(iptables)都打开了端口。你可以禁用内部防火墙,因为它与安全组有点冗余。另一方面,它可以提供一些安全组没有的选项,如果您需要它们。
https://stackoverflow.com/questions/18875945
复制相似问题