【问题标题】:Unable to access another instance in different VPC无法访问不同 VPC 中的另一个实例
【发布时间】:2018-08-08 17:59:51
【问题描述】:

所以我在同一个帐户中有 2 个不同的 VPC。

在第一个 VPC (A) 中,我有一个属于私有子网的实例,所有数据都被路由到 NAT 网关(使用以前的配置)。

目前我正在尝试从该实例访问另一个 VPC(B) 中的实例 (telnet/ping/anything)。

我设置了 VPC 对等连接并更改了两个 VPC 的主路由表以定位对等连接。 (没用)

然后我尝试更改私有子网的路由表以直接路由到对等连接。 (没用)

有许多安全组在起作用,但是当我将 B 中实例上的 SG 更改为接受所有连接时,我能够从本地 PC 连接,但仍然不能从 A 中的实例连接。所以我不认为 SG是一个问题。我以为可能是路由表,但找不到原因。

当我从 A 中的实例跟踪路由时,它会到达 NAT 网关私有 IP,然后到达某个 AWS 实例(由 AWS 拥有,而不是我)然后丢失。

连接可能在哪里出错?

【问题讨论】:

    标签: amazon-web-services amazon-vpc subnet private-subnet


    【解决方案1】:

    从你所描述的情况很难调试。

    因此,我尝试重新创建您的情况,并记录了我采取的所有步骤。请按照以下步骤再创建两个 VPC,以便您对它确实可以工作感到满意。

    然后,一旦它运行起来,您可以将此配置与您现有的配置进行比较,以确定您当前的 VPC 配置可能有什么问题。

    这就是我所做的。跟着!

    • 使用 VPC 向导创建了 VPC-A(“具有单个公共子网的 VPC”),CIDR 为 10.0.0.0/16,公共子网为 10.0.0.0/24
    • 手动创建 VPC-B,CIDR 为 10.5.0.0/16,私有子网 10.5.0.0/24
    • 在 VPC-A 中启动了 EC2 Instance-A(可公开访问,安全组允许从 0.0.0.0/0 进行 SSH 访问)
    • 在 VPC-B 中启动了 EC2 Instance-B(在私有子网中,具有允许从 0.0.0.0/0 进行 SSH 访问的安全组)
    • 创建了一个从 VPC-A 到 VPC-B 的 VPC 对等连接
    • 接受对等连接
    • 添加到VPC-A 的主路由表 的路由,目的地为10.5.0.0/16(VPC-B 的范围),指向对等连接
    • 添加到VPC-B 的主路由表 的路由,目的地为10.0.0.0/16(VPC-A 的范围),指向对等连接
    • 通过 SSH 登录到 Instance-A
    • 从 Instance-A,通过 SSH 连接到 Instance-B 的私有 IP 地址

    我必须先将我的私钥粘贴到 Instance-A 上的 PEM 文件中,使用 chmod 设置权限,然后使用:

    ssh -i keypair.pem ec2-user@10.5.0.15
    

    我使用了 Instance-B 的私有 IP 地址 (10.5.0.15)。这是随机分配的,因此您自己尝试时会略有不同。

    结果是……我通过对等连接通过 SSH 从 VPC-A 中的实例 A 成功连接到 VPC-B 中的实例 B(事实证明,我通过私有 IP 地址和 VPC-B 没有 Internet 网关的事实进行连接。

    因此,如果您按照上述步骤操作并使其正常工作,您就可以比较您现有的设置并找出不同之处!

    【讨论】:

    • 非常感谢。问题是我更改了主路由表,但我应该更改子网自己的路由表。这个解释有助于调试!
    猜你喜欢
    • 2019-12-25
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多