GCP环境下如何限制VM的4000端口仅接收负载均衡器流量?
解决GCP VM端口仅允许负载均衡器访问的问题
为啥直接填LB前端IP没用
GCP外部HTTPS负载均衡器的流量有两个关键特性:
- 转发用户流量到VM时,源IP是用户的公网IP,而非LB的前端IP;
- LB的健康检查请求来自GCP专属的IP段(
35.191.0.0/16和130.211.0.0/22),如果防火墙不让这些IP访问,VM会被标记为不健康,LB会直接停止转发流量。
正确配置步骤
1. 开放健康检查的访问权限
必须允许GCP健康检查系统的IP访问VM的4000端口:
- 源IP范围填写:
35.191.0.0/16,130.211.0.0/22 - 协议与端口选择:
tcp:4000 - 目标选择:可以直接指定你的VM,或者给VM添加一个专属标签(比如
lb-backend),让规则只应用到带该标签的机器
2. 限制仅LB可转发流量到VM
由于用户流量的源IP是随机的,无法直接通过源IP限制,需结合GCP后端服务的关联机制来实现:
- 给目标VM添加专属标签,比如
lb-backend-4000 - 创建防火墙规则:目标选择该标签,协议端口设为
tcp:4000,源IP范围无需限制(GCP会自动确保只有你配置的HTLB能将流量转发到该VM绑定的后端服务) - 额外保障:确认你的后端服务仅绑定了当前这个HTTPS负载均衡器,避免其他LB或服务访问VM
3. 验证配置是否生效
- 执行命令
gcloud compute firewall-rules list查看防火墙规则是否正确配置 - 登录GCP控制台查看负载均衡器的后端服务健康状态,确保VM被标记为健康
- 访问你的关联域名,确认流量正常通过LB转发到VM的
4000端口
内容的提问来源于stack exchange,提问作者Tommer Rissin
相关产品推荐
相关产品推荐

