我有一个 Cloud Run 服务,我想通过无服务器 VPC 连接器将其连接到我的默认 VPC 网络。这样做的最终目标是允许我的 Cloud Run 实例通过单独配置的 VPN 访问本地服务器,但我的第一个问题是我甚至无法访问同一网络上的虚拟机。
我尝试使用这个来调试这个问题vpc-网络测试器服务,这确认我无法 ping 我的 Compute Engine VM。
从我的虚拟机,我能够成功 ping 通 Cloud Run 实例(我已经配置并设置了一些简单的防火墙日志来查找实例的内部 IP,并且虚拟机能够访问它们)。
从我读过的所有内容来看,这听起来像是 Compute Engine VM 或默认网络方面的防火墙问题,但我设置的唯一附加防火墙规则是允许我检查防火墙流量的规则。
这是有关配置的一些信息,但如果我可以提供更多信息,请告诉我。
无服务器 VPC 访问
(我最初确实为此设置了自己的子网,但我删除了它并允许它使用 IP 范围自行管理)
姓名 | 网络 | IP 地址范围 | 地区 | 实例类型 |
---|---|---|---|---|
无服务器-vpc-连接器 | 默认 | 10.1.0.0/28 | 美国-中央1 | e2-micro |
Cloud Run 配置(用于 vpc-network-tester)
VPC 连接器 | 路线类型 |
---|---|
无服务器-vpc-连接器 | 通过 VPC 连接器仅将请求路由到私有 IP |
Ping 响应
来源 | 目的地 | 结果 |
---|---|---|
10.1.0.2 (vpc-网络测试器) |
10.128.0.2 (Compute Engine VM 的内部 IP) |
PING 10.128.0.2 (10.128.0.2): 56 个数据字节 |
10.128.0.2 (Compute Engine VM 的内部 IP) |
10.1.0.2 (vpc-网络测试器) |
PING 10.1.0.2 (10.1.0.2) 56(84) 字节数据。 |
连通性测试
答案1
由于我的声誉不足以发表评论,因此我将将其作为答案发布。
看起来你已经创建了一个无服务器 VPC 访问连接器将 Cloud Run 服务直接连接到您的 VPC 网络。
您可以尝试创建一个入口防火墙规则 允许此子网 0.0.0.0/0 只是为了检查这是否允许从 Cloud Run 实例到虚拟机的连接。
您可以执行另一项连通性测试从 Cloud Run 到 VM。确保将协议更改为 TCP,并为目标端口指定特定端口。例如,如果您想使用端口 80,请确保使用该端口的服务正在运行。您可以查看此链接检查 Linux 上正在运行的服务