AWS 无需通过 NAT 即可连接到私有子网实例

AWS 无需通过 NAT 即可连接到私有子网实例

首先,我知道这不是你应该总是做的事情,但是如果事实上可能的话,现在它可以节省很多时间。

我可以执行以下操作:

ssh (with .pem) -> NAT -> ssh to private subnet instance -> success

我希望能够绕过该NAT部分并直接进入私人实例。

我也分配了我的私人实例public ip但尝试连接只是挂起并最终超时。

结果ssh with -vvv specified

ssh -vvv -A ec2-user@<public-IP>
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to <public-IP> [<public-IP>] port 22.
debug1: connect to address <public-IP> port 22: Operation timed out
ssh: connect to host <public-IP> port 22: Operation timed out

规则ssh是存在的security group

SSH TCP 22 0.0.0.0/0

我是否需要将路由添加到路由表或类似的东西中?我理解,由于它是私有的,因此不应以这种方式访问​​,但它是测试新应用程序的临时解决方案,目前不存在安全隐患,因为所有内容都使用虚拟数据运行,并且实例将在实际部署之前重新制作。

我添加了一个安全组规则,允许 TCP 端口 22 进行 ssh 入站连接,但尝试通过分配的公共 IP 访问时仍然没有成功。

任何帮助,将不胜感激。

答案1

如果您想在没有 NAT 的情况下通过 ssh 访问您的实例,则必须从您的网络(您的笔记本电脑所在的位置)访问它。因此我看到了两个解决方案:

  • 为实例设置弹性 IP + 互联网网关/路由到子网。没有互联网网关的弹性 IP 是不够的,因为流量将无法正确路由。但是,如果您设置了互联网网关,NAT 就变得毫无用处
  • 正确的做法是使用 VPN 解决方案,例如 openvpn(您可以找到 openvpn AMI,所有配置均来自 aws 社区)。例如,请参阅有关 VPN 的更多详细信息的讨论帖

相关内容