SSH到EC2绑定到私有IP,而不是公共IP

时间:2017-04-07 15:15:27

标签: ssh amazon-ec2 ip

我有一个EC2实例,它已设置为通过VPN访问安全服务器。第二台服务器只响应绑定到EC2服务器公共IP地址的呼叫。

我成功使用ssh从我的笔记本电脑访问EC2实例......

ssh -i mypem.pem ubuntu@ec2-my-public-ip-address.eu-west-1.compute.amazonaws.com

但我的命令行设置为:

ubuntu@my-private-ip-address:~$ 

因此,当我尝试在EC2服务器上运行一段java代码时,它会通过VPN调用安全服务器,因为它使用私有IP地址作为其标识符,因此失败了。这里不能提供java代码,因为它是用于安全服务的,但它已经过其他示例和EC2的广泛测试,我们知道这里没有问题。

我正在尝试确定是否有办法确保我从EC2服务器执行的任何代码都使用我的公共IP地址而不是私有IP地址?

2 个答案:

答案 0 :(得分:0)

私有IP地址是EC2实例知道的唯一IP地址。

公共IP地址由EC2网络基础设施使用自动静态NAT转换为私有IP,因此实例实际上从未意识到它。

检查ifconfig,您会注意到公共IP无处可见。

然而,如果您$ curl ipv4.icanhazip.com(或任何其他“我的IP是什么?”服务),您会发现您的实例的公共IP地址将始终作为外部服务看到的地址返回。 / p>

在内部使用专用IP会自动导致在访问Internet时使用公共IP地址。

答案 1 :(得分:0)

您可以将sshftp工具与EC2实例专用IP连接。

1)您需要创建一个弹性IP。导航到EC2服务>网络安全。
2)将此弹性IP与EC2实例私有ip相关联。
3)更新EC2实例的安全组中的入站规则。添加带有源“我的IP”选项的SSH端口22。

现在您可以使用终端了:

ssh ec2-user@<elastic ip>

让用户安装了EC2密钥对证书。如果没有运行,请执行以下操作:

ssh-add -K <.pem file>