【问题标题】:How to access the internet from VPC private subnet如何从 VPC 私有子网访问 Internet
【发布时间】:2014-05-26 19:50:04
【问题描述】:

我在 AWS 上创建了一个具有私有子网和公有子网的 VPC。 我从私有子网启动了一个实例,我想通过 NAT 服务器访问互联网。

这是我的 NAT 实例上的 iptables。

链 PREROUTING(政策接受) num target prot opt source destination
1 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:10234 to:10.0.1.58:22

链输入(策略接受) num target prot opt source destination

链输出(策略接受) num target prot opt source destination

链 POSTROUTING(策略接受) num target prot opt source destination
1 全部伪装 -- 10.0.0.0/16 0.0.0.0/0

我应该向我的 NAT 或我的私有子网中的实例添加什么才能从我的私有子网中的实例访问互联网

非常感谢!!

【问题讨论】:

    标签: amazon-web-services subnet vpc


    【解决方案1】:

    你的MASQUERADE 规则是好的。来自NAT instance documentation的其他一些东西:

    1. 您应该在 NAT 实例上disable the source/destination check 以允许它路由流量
    2. 设置inbound and outbound security group rules 以根据需要允许流量。
    3. 确保route table for your private subnet points to the NAT instance

    【讨论】:

    • 我试过了,但似乎我在路由表中遗漏了一些东西。我试图将 NAT 实例添加到我的路由表,但如果我尝试从我的 ping google.com私有网络中的实例我没有得到响应(当我在 NAT 实例中 ssh 时得到一个响应)
    • 实际上清理了安全组修复了它......非常感谢!
    • 我遇到了同样的问题,具体来说,对我有用的解决方案是将 HTTP 和 HTTPS 显式添加到 NAT 安全组的出站规则中。
    【解决方案2】:

    从社区 AMI 中选择下面的 AMI,然后在公共子网中启动实例。 启动实例后,将其关联到路由表中的私有路由表

    amzn-ami-vpc-nat-pv-2014.03.2.x86_64-ebs (ami-809f4ae8)
    

    不需要对实例做任何事情,默认情况下它应该可以工作。

    【讨论】:

      【解决方案3】:

      我假设您想要实现这一目标:

      • 您可以在公有子网中创建自定义 nat 实例
      • 将自定义创建的 nat 实例添加为与私有子网关联的路由表中的默认网关

      This 一步一步的教程可以帮助你附加你的目标。希望对你有帮助

      【讨论】:

        【解决方案4】:

        除了提供的其他答案之外,您还需要做两件事。

        您需要一个入站规则到您的 nat 实例以允许来自私有子网的流量

        您还需要在您的 nat 实例上禁用源/目标检查

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-02-11
          • 2021-12-18
          • 2019-07-07
          • 2019-07-28
          • 1970-01-01
          • 2015-01-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多