如何使用内部 IP 在同一 VPC 但不同子网(区域)内通信 2 个实例

how to communicate 2 instances inside the same VPC but different subnets (regions) using internal IP

我有 2 个实例,1 个 VPC 和 2 个子网,每个都在不同的区域。

1 个实例有一个 public IP,另一个只有内部 IP。我希望这 2 个实例使用其内部 IP 相互通信。

我怎样才能做到这一点?

--编辑

实例

名称:实例-a

区域:us-central1-a

网络:测试

网络标签:testing-allow-internal testing-allow-ssh

内网IP:10.10.0.2

外网IP:none


名称:实例-b

区域:北美-东北1-a

网络:测试

网络标签:testing-allow-internal testing-allow-ssh

内网IP:10.20.0.2

外网ip: 是


vpc

姓名:测试

动态路由模式:全局


子网

姓名:测试

地区:us-central1

IP 地址范围:10.10.0.0/15

网关:10.10.0.1

私有 Google 访问:开启


姓名:测试

地区:北美-东北1

IP 地址范围:10.20.0.0/15

网关:10.20.0.1

私有 Google 访问:开启


防火墙规则

名称:测试允许内部

类型:入口

目标:适用于所有

过滤器:IP 范围:0.0.0.0/0

协议/端口:全部

操作:允许

优先级:65534

网络:测试


名称:testing-ssh

类型:入口

目标:适用于所有

过滤器:IP 范围:0.0.0.0/0

协议/端口:tcp:22

操作:允许

优先级:65534

网络:测试

现在,我要实现的目标是: 通过 ssh usinf 外部 IP 从本地连接到实例 b。我只想让 instance-b 使用内部 IP 通过 ssh 连接到 instance-a 即:ssh user@instance-b-external-ip >> ssh user@instance-a-internal-ip

我可以 ping 通,但是当我尝试通过 ssh 使用内部 IP 从实例 b 连接到实例 a 时,它总是说权限被拒绝。


新建编辑SSH

我使用外部 IP 连接到实例 b,即:ssh user@externalip。在 instance-b 中,我使用以下命令创建 ssh 密钥

ssh-keygen -t rsa -b 4096 -f ~/.ssh/instance_b

公钥和私钥

public key: instance_b.pub

private key: instance_b

我使用 GUI

将 public 密钥添加到 SSH KEYS

然后我照常连接 ssh user@10.10.0.2

The authenticity of host '10.10.0.2 (10.10.0.2)' can't be established.
ECDSA key fingerprint is SHA256:iA1FfVyXM1234OsIy424ElVLnjGg2tMuSmdbsGWGLSs.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.0.2' (ECDSA) to the list of known hosts.
user@10.10.0.2: Permission denied (publickey).

我得到权限被拒绝

但是 如果我使用以下命令:

ssh -i ~/.ssh/instance-b user@10.10.0.2

我可以连接。为什么??


如果我遗漏了什么,请告诉我

谢谢!

同一VPC内的VPC子网可以互通。 VPC 防火墙规则 default-allow-internal 允许同一 VPC 内资源之间的所有 TCP、UDP 和 ICMP 流量。

关键是使用内部(私有)IP 地址。