无法在Hetzner VPS内调用Gemini API,返回403禁止访问错误
问题与解决:Hetzner VPS调用Gemini API返回403 Forbidden错误
问题详情
- 已在Google AI Studio生成API密钥,本地电脑调用Gemini模型完全正常
- 部署在纽伦堡节点的Hetzner VPS(系统:Ubuntu 24.04.04)中使用同一密钥调用时,被Google拦截并返回403(Forbidden)错误
测试请求示例
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \ -H 'Content-Type: application/json' \ -H 'X-goog-api-key: AIzaSyAG3r-...' \ -X POST \ -d '{ "contents": [ { "parts": [ { "text": "Explain how AI works in a few words" } ] } ] }'
错误响应
- That’s an error.
Your client does not have permission to get URL/v1beta/models/gemini-2.5-flash:generateContentfrom this server. That’s all we know.
解决步骤
检查API密钥的地域访问限制
登录Google AI Studio后台,找到对应API密钥,查看「访问控制」中的地域限制设置,确认是否允许德国纽伦堡地区的IP发起请求,若有限制则添加对应地域或直接取消地域限制。排查VPS IP是否被Google标记
部分数据中心的IP段可能被Google判定为高风险,可尝试更换Hetzner VPS的IP(通过控制台重装系统或更换节点),或使用合规代理转发API请求。确认Generative Language API已启用
登录Google Cloud Console,进入密钥所属项目,搜索「Generative Language API」,确保服务处于启用状态——有时密钥生成后服务未同步开启会触发权限拦截。验证请求格式一致性
虽然本地请求正常,但VPS环境可能存在字符编码或换行符差异,直接复制本地可正常运行的curl命令到VPS执行,避免手动输入时的格式错误。检查VPS网络与防火墙规则
查看Hetzner VPS后台的防火墙设置,以及Ubuntu系统的ufw/iptables规则,确认是否允许对外访问generativelanguage.googleapis.com域名及443端口,可临时关闭防火墙测试是否恢复正常。
内容的提问来源于stack exchange,提问作者Sheikh Abdullah




