我是新手使用EC2并且有一个希望很容易回答的问题 - 我有一个公共IP和DNS以及我的EC2实例的私有IP和DNS。从我的笔记本电脑工作站,我可以ping公共IP,没问题。当我从我的笔记本电脑ssh ubuntu @ public-ip ssh到public-ip时,这会将我带到私人ip提示符ubuntu @ private-ip。我相信网络地址转换器正在阻碍并将公共IP转换为私有IP,并将ssh转入私有IP。 ifconfig在那里向我展示了私有ip。问题是现在我无法按照预期从EC2实例私有IP执行ping笔记本电脑IP。
,P:S上。以下是amazon.com的摘录,可能与此相关:
每个接收公共IP地址的实例也会获得一个外部DNS主机名;例如,ec2-203-0-113-25.compute-1.amazonaws.com。我们将外部DNS主机名解析为实例网络外部实例的公共IP地址,并从实例网络中解析实例的私有IPv4地址。公共IP地址通过网络地址转换(NAT)映射到主要专用IP地址。有关NAT的更多信息,请参阅RFC 1631:IP网络地址转换器(NAT)。
我想要的是能够ssh到公共IP(提示应该显示ubuntu @ public IP而不是ubuntu @ private IP)所以我可以在我的笔记本电脑和EC2实例之间来回ping。
非常感谢任何帮助。
最好罗汉
答案 0 :(得分:2)
ping问题与您所看到的无关。
您所看到的总是 - 毫无例外 - EC2如何运作,公共IP广告。实例只知道自己的私有IP,基础设施处理私有和公共地址之间的自动1:1 NAT。
我在Why do we need private subnets in VPC?
中谈到了这一点如果您无法ping通笔记本电脑,问题很可能发生在笔记本电脑端。
尝试从您的EC2实例ping 8.8.8.8
。或者ping stackoverflow.com
。将任何已知的内容ping为ping。
或者,使用远程监视器(如this one)来ping您的笔记本电脑。它有效吗?
如果从实例ping到任何目的地并不起作用,那么唯一想到的其他解释就是您可能已经更改了实例出站安全组设置,但不了解更改的含义......或者您已经使用iptables做了一些不符合您的意图......但我认为您会提到这些。
答案 1 :(得分:0)
对于SSH到私人IP,你应该在你的VPC的私人网络中,它可以通过VPN
完成