如何使用内部 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 地址。
我有 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 地址。