You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP配置Squid Proxy路由后VM无法访问互联网的问题

GCP中Squid代理+Cloud NAT出站流量故障排查方案

1. 开启Squid VM的IP转发

GCP虚拟机默认禁止IP流量转发,这是核心卡点之一,必须手动开启:

  • 控制台操作:找到你的Squid虚拟机,进入编辑页面,勾选「启用IP转发」后保存
  • 命令行快速操作:
    gcloud compute instances update [你的Squid VM名称] --enable-ip-forwarding
    

2. 调整自定义路由的优先级

Cloud NAT自动生成的路由优先级为1000,你的自定义路由必须设置比1000更小的数值(比如900),才能优先于NAT路由生效:

  • 进入VPC网络的路由页面,找到指向Squid的自定义路由,编辑后将优先级改为小于1000的数值

3. 配置必要的防火墙规则

至少需要两条关键防火墙规则:

  • 允许内部VM访问Squid代理:
    • 方向设为入站,目标选择Squid所在子网或给Squid打的标签,来源填你的VPC私有IP段(比如10.0.0.0/16),端口开放3128(若修改过Squid端口则对应调整)
  • 允许Squid VM出站访问互联网:
    • 方向设为出站,目标填0.0.0.0/0,来源选择Squid的IP或标签,端口按需开放80、443或全放开

4. 修正Squid代理配置

确保Squid允许转发内部子网的流量:

  • 编辑Squid配置文件/etc/squid/squid.conf,添加以下规则(替换为你的VPC网段):
    acl internal_net src 10.0.0.0/16
    http_access allow internal_net
    
  • 如果使用透明代理,将http_port配置改为http_port 3128 transparent
  • 修改完成后重启Squid服务:systemctl restart squid

5. 确认Cloud NAT关联的子网

进入Cloud NAT网关页面,检查关联的子网列表,必须包含Squid VM所在的子网,否则Squid自身无法通过NAT访问互联网

6. 流量测试与排查

  • 在普通VM上测试代理连通性:curl -x http://[Squid私有IP]:3128 https://google.com,观察是否能正常返回内容
  • 在Squid VM上直接测试外网连通性:curl https://google.com,先确认Squid自身能通过Cloud NAT上网
  • 查看Squid日志/var/log/squid/access.log和cache.log,排查是否有访问被拒绝的记录

内容的提问来源于stack exchange,提问作者suman mallela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:12:36