GCP 永久免费小鸡全流程部署
适用范围
- 当用户想从零开通一台 GCP Always Free VPS,并把它配成不会意外扣费、机子自身出站能走代理的状态时,使用本技能。
- 本技能覆盖的终点是:一台合规的免费机,加预算告警、CDN 出站屏蔽、流量只限流、Debian 换源、dae 正常出站,以及一个可访问的测试页。第一步先领两笔钱,再建机,不要建完机才想起领钱。
- 本技能不覆盖家宽出口搭建。家宽是另一条线,有自己的 skill 和前置条件,不要在本技能里顺手把家宽搭了。
- 本技能不覆盖把正在跑的生产任务中途迁到这台机子上。中途迁移另有风险,见文末的迁移提醒。
分工与铁律
- 用户只做三件事:Google 登录、绑卡、确认默认方案。其他步骤由你代操作。
- 绝不索要密码、卡号、CVV、验证码。登录、绑卡、两步验证整段交还用户在页面里亲自完成,你不看、不问、不记录。
- 执行任何登录或 OAuth 前,先确认用哪个具体账号和哪个项目,绝不默认浏览器现有会话的身份。
- 浏览器停在选账号页、验证页或 Cloud Shell 授权页时,立刻停下,等用户亲自登录和授权后再继续。不要自己选账号,不要自己输验证码。
- 验证码第一次识别失败就停手交给用户,不要连试把账号锁越攥越紧。
- 删除实例、删除项目、退款注销这类操作,必须先复述影响,等用户明确说确认才继续。
- 只用免费边界,拒绝付费机型、非免费区、SSD、Premium 网络层、静态 IP、快照、GPU、负载均衡。
- 节点链接、订阅链接、UUID、WS 路径等凭证,绝不写进记忆、普通文件、聊天记录或本技能的示例里。只直接写进机子上的 dae 配置文件,且权限必须是 0600。
- 数字以官方免费层级文档和账单为准,不要凭训练记忆编造。若本技能距整理日期超过 3 个月,先建议用户核对官方文档和脚本仓库的最新说明。
阶段 0:开工前默认方案
- 先给用户一份默认方案,用户不反对就按它开工,用户改编号就按改后的执行。
- 默认方案是:区域 us-west1、可用区 a、机型 e2-micro、30GB pd-standard 启动盘、Debian 12、标准网络层、名字 free-e2micro、防火墙和 swap 在 Cloud Shell 做、预算告警约每月 1 美元。
- 开工前逐项确认:谷歌账号能正常登录、支付卡真实可用、能正常访问 Google 控制台。缺项如实说明,不要硬推进。
- 提前告诉用户预期:所谓永久免费,本质是付费账号加免费额度,先按原价计价、再按免费层级抵消。账单有数字先别慌,看减免后那一列。
- 提前告诉用户:预算告警只发邮件提醒,不会自动停机,也不会自动关机。
阶段 1:先领钱,再注册、结算与预算告警
- 第一步先领两笔钱,再建机。两笔钱分开领、分开核对,不要混成一笔,也不要建完机才补领。
- 领 300 美元试用金:打开 cloud.google.com/free,点开始免费试用,用要绑卡的那个谷歌账号登录,填资料、绑卡做身份验证,点开始免费试用。试用金是 90 天有效期,90 天内可用,到期不自动扣费,只有用户手动升级到付费账号后才开始真实扣费。
- 领完 300 美元后立刻在控制台结算里核对:项目已关联到试用结算账号,结算账号里能看到 300 美元试用金余额和剩余天数。看不到余额就不要继续建机,先回注册页查账号是不是登错了、是不是以前用过试用。
- 领每月 10 美元:前提是用户有在用的 Google AI Pro 会员,且该会员已关联到同一个谷歌账号的开发者档案里。福利页面就是谷歌开发者计划的福利页,地址是 me.developers.google.com/benefits,用户在那个页面登录后找谷歌云每月额度那张卡。
- 在福利页的操作是:用持有 AI Pro 会员的那个账号登录,确认开发者档案已建好,找到谷歌云每月额度卡,点领取或获取兑换码,把兑换码记下来,不要把兑换码发进聊天记录。福利页未登录时只显示登录入口,卡片位置和按钮名称以登录后页面为准,不要凭记忆硬写按钮位置。
- 拿到兑换码后去 GCP 控制台结算,选目标结算账号,进 Credits 或促销额度页,点兑换,粘贴兑换码并确认。确认后结算账号里应出现当月 10 美元额度,选错结算账号就等于领错地方,要重新核对账号再领。
- 讲清 10 美元的三个限制:它是按月发的,不是自动到账,每月要到福利页领一次;不能和家人共享,家庭组成员领不到;必须用持有 AI Pro 会员的账号领,试用会员或没关联开发者档案时,卡片会显示锁定,先查账号和档案,不要硬领。
- 讲清 10 美元和 300 美元的关系:300 美元是试用期一次性总额,90 天过期;10 美元是每月一笔,过期作废的规则以福利页当月说明为准,不要把上个月没用完的默认成能滚存。
- 讲清 10 美元的用途边界:原帖说它可绑结算账户抵 CDN 费用,官方口径只说它是每月谷歌云额度。领完后要在账单里逐行核对它到底抵了哪一项,不要没核实就向用户保证它一定抵 CDN。
- 由你操作浏览器打开控制台,登录和绑卡页交还用户亲自完成。
- 验证扣款金额因账号而异,钱进 GCP 余额、不是消费,不要为了退钱申请退款,退款后 GCP 可能不可用。
- 开通成功的标志是能进入控制台首页,左上角能看到项目。先用 gcloud 确认当前项目,再继续。
- 若 Cloud Shell 报项目未设置,先让用户在控制台顶部项目选择器里确认项目 ID,再跑 gcloud config set project。
- 若报没有可用结算账号,说明账号既非试用也非付费,先回注册绑卡,不要硬跑建机脚本。
- 检查结算账号是否已关联到项目,再建预算。控制台里已有同名预算时不要重复创建,先复用已有的。
- 预算设每月 1 美元,范围为结算账号,阈值按实际支出 50%、90%、100%、150% 发邮件给结算管理员和用户,只提醒、不设强制上限。
- 讲清两笔钱的区别:新用户 300 美元 90 天试用金是一笔,谷歌开发者会员每月 10 美元体验金是另一笔,两笔分开,不要混成一笔。10 美元那笔在账单上要逐行核实后才能声称,不要没核实就报。
- 讲清计费口径:入站免费,出站按目的地计价。往中国和澳洲方向的出站不在 Always Free 计算出站额度里,帖子所称的标准层级 200G 没有说明包不包中国方向,不能据此推导中国免费。
- 讲清中国方向的访问办法:用户经 VPN 访问这台机子时,机子看到的是 VPN 出口 IP,按出口方向计价,用户到 VPN 出口那段不是谷歌的账。这个办法只解决用户访问机子这一段,不解决机子自己主动往中国 IP 发的流量。
阶段 2:建机与免费层验收
- 在 Cloud Shell 里操作,先跑 DRY_RUN 核对计划,计划和用户确认一致后再正式建机。
- 建机前启用 compute.googleapis.com,启用过程是幂等的。
- 硬守卫必须全部满足才建机:区域只能是 us-west1、us-central1、us-east1 之一,机型只能是 e2-micro,启动盘只能是 pd-standard 且不大于 30GB,网络层只能是 STANDARD,镜像用 Debian 12。
- 一个项目里不要同时开多台 e2-micro,免费额度是当月总小时数约等于一台不停机,多台会分食额度并可能计费。脚本发现已有 e2-micro 时要停下,不要再开。
- 建好后跑免费层检查脚本,必须无 FAIL 或 WARN 才能继续。检查项包括结算关联、Compute API、实例数、机型、盘类型、盘大小、网络层。
- 用 gcloud compute ssh 确认能进机子,再检查 swap 是否已激活,预期约 1GB,路径在启动脚本里指定,确认 proc swaps 里有对应条目。
- 验收时逐项记录机型、区域、盘、镜像、网络层、内外网 IP,不要只写一句建好了。
阶段 3:顺序是命,先装包和换源,再屏蔽 CDN
- 这是本技能最容易翻车的顺序问题,顺序错了后面全是 apt 失败。
- 默认 Debian 源套了 CDN,屏蔽 CDN 后 apt 全挂,所以必须在屏蔽 CDN 之前完成两件事:装好后面要用的包和监控工具,换好非 CDN 软件源。
- 换源用 fatekey 的 apt 脚本思路:主源用 MIT,安全源用 Berkeley OCF,Debian 12 bookworm 系列。换完后跑 apt update,必须退出码为 0 且无 Err,才算换源成功。
- 换源后独立复核一次 apt-get update 是否全部 Hit,有可升级包时不要顺手升级,等用户单独拍板再升。
- 屏蔽 CDN 只做用户拍板的那一版。本技能实测过的版本是只屏蔽 CDN 出站,不做入站全放通。入站全放通必须由用户单独拍板,没有拍板就不要建。
- 屏蔽规则的形态是:出站、优先级 900、拒绝全部协议、目标网段取自 fatekey 仓库 cdnip.txt 清洗后的有效段,Akamai、Cloudflare、Fastly 混合、无标签、数量远低于 256 上限。
- 建规则前不要删改原有规则,建完后完整列出规则清单,确认原有规则未删未改、入站全放通规则不存在。
- 讲清规则的本质:它是按 IP 段挡,不是按域名挡。站点解析出来的 IP 会变,今天能通的站明天可能被挡,今天被挡的站明天也可能漏过去,测试一次通过不等于永远通过。
- 如果在屏蔽之后才发现某个包没装成,不要为了装包去改防火墙。正确做法是从 Cloud Shell 下载官方 deb 包,经 gcloud scp 传到机子再用 dpkg 装,装完补配服务。
阶段 4:流量监控,只限流,不关机
- 流量监控有两个版本,必须按用户拍板装其中一个,不要擅自换版。
- 本技能实测过的版本是只限流版:用 fatekey 的 net_iptables.sh,脚本里没有关机命令。超限后用 iptables 只留入站 SSH,不关机。
- 关机版的缺陷要讲清:超限后先清零统计再关机,同月手动再开机会从 0 重算,可能二次超限。没有用户明确拍板,不要装关机版。
- 只限流版的配置是:vnstat 统计主网卡出站,cron 每 5 分钟检查一次,每月 1 号 00:00 重置,上限 180GB。
- 安装时确认网卡名,主网卡在实测环境是 ens4,但不要硬编码成 ens4,先用默认路由查出来再配。
- 安装后手动跑一次检查脚本,把脚本报告的出站字节数和 vnstat 原始 oneline 输出逐字段核对,差 1 字节左右的四舍五入是正常的,差出量级就是解析错了。
- 确认 vnstat 是 active 加 enabled,确认 cron 两条都在,确认 iptables 在安装时没有提前限流,确认 SSH 仍通。
- 讲清限流的边界:两版脚本都只算总出站,不分目的地。往中国方向几 GB 就可能先产生费用,1 美元提醒会更早响,但不会自动停机,不能只靠限流保零扣费。
阶段 5:装 dae,先查内核,再定版本
- 装 dae 前先查内核版本,命令是 uname -r,再决定装哪个版本,不要直接装最新版。
- 实测过的危险组合是:dae 2.1.1 加 Debian 内核 6.1.190。症状是节点 TCP 检查能通、UDP 健康检查全挂、DNS 在 dae 运行时超时、停掉 dae 后 DNS 立刻恢复、日志里有 eBPF 数据面拒绝重写路由元数据的警告。
- 出现上面那组症状时,不要先怪节点。先停 dae 验证 DNS 是否恢复,再降级,不要反复换节点、换订阅、改路由。
- 降级到 dae 1.1.0 的正确流程是:先停 dae,确认 DNS 恢复,备份旧二进制和旧配置,再从官方 daeuniverse 仓库下载 1.1.0 的压缩包,用 file 命令确认是真 zip 而不是错误页,装到服务使用的二进制路径,权限 0755,清理临时目录。
- 降级后原配置一般无需改字段就能通过 validate,但必须重新跑一次 validate,退出码为 0 才算通过。
- 安装器自带的 geoip.dat 可能只有几百字节,体积偏小就视为不完整库,不要直接信它。当前路由要避开所有 geoip 类别,直到换上完整库并验证后再用。
- geosite.dat 的体积在实测里是十几 MB 量级,装完后要核对两个数据文件的大小,不要只看安装脚本报成功。
- dae 服务的配置文件路径以 dae.service 的 ExecStart 为准,不要凭记忆猜路径。实测环境是 /usr/local/etc/dae/config.dae,服务文件在 /etc/systemd/system/dae.service。
- 每次改动 dae 后都要验 DNS、TCP、UDP 三项。没有 IPv6 出口时,udp6 和 tcp6 显示 NOT ALIVE 是预期结果,不要当成故障去追。
- 把能用的 dae 版本和内核版本成对记下来,下一次不要从最新版重来。实测能用的组合是 dae 1.1.0 加内核 6.1.190。
阶段 6:配 dae,只写机上配置,不留凭证
- 配置 dae 之前,先向用户要节点或订阅链接。用户给链接时,承诺只写进机上配置文件,不进记忆、不留普通文件、不在回复里复述。
- 写配置前先备份旧配置,备份文件同样放在配置目录、同样 0600,不要删旧备份,除非用户明确要求清理。
- 单节点配置的写法是:节点名按 dae 命名规范写,不要加引号。引号报错是实测过的坑,报错先查节点名写法,不要先怀疑节点本身。
- 订阅配置的写法是:订阅块里不要留空参数,空的订阅参数会让 validate 报错。改成订阅域名直连后再多次 validate,直到通过。
- 路由的实测结构是:私有网段直连、节点域名直连、8.8.8.8 直连、geosite 里的谷歌、GitHub、OpenAI、Telegram、Netflix、YouTube、Spotify 走代理、其余 fallback 走代理,不用任何 geoip 类别。
- 配置写完后必须跑 validate,通过后再 systemctl enable 加 start,确认 active 加 enabled,确认绑的是主网卡。
- 验证出口时跑 curl -L ip.sb,返回的必须是节点 IP,而不是 GCP 外网 IP,才算出站走了代理。再跑 curl 到 GitHub,实测里 200 约 0.92 秒是正常水平。
- 验证时不要只看节点 TCP ALIVE 就宣布成功。TCP 通、UDP 不通、流量不通同时出现时,优先怀疑 dae 版本和内核兼容,而不是节点配置。
- DNS 出问题时的处理顺序是:先停 dae 看 DNS 是否恢复,再查 dae 日志,不要一上来就改系统 DNS。实测里 dae 2.1.1 环境下 DNS 劫持不工作,曾用 systemd-resolved 的 DNSOverTLS 加本地解析做过兜底,但降级到 1.1.0 后 DNS 本身就正常了,不要把兜底当成常态配置。
- 节点本身也有寿命和额度要讲清。用户自建节点或试用节点到期、额度烧完时,dae 会再次无节点可用,届时按用户指示换节点,不要自动续费或自动换一家。
- dae 的定位要讲清:它是机子自身出站走代理,不是用户手机绕这台机子。除非用户明确要求改路由,否则不要把用户手机流量绕进来。
阶段 7:测试页与访问现实
- 测试页用最简单的静态页即可,文件里只放标题、正文和创建时间,不要放凭证、订阅链接、项目 ID、内网 IP 等私密信息。
- 服务用 systemd 单元跑 python3 http.server 80,工作目录指向测试页目录,设 enable 加 active,确认 SSH 会话结束和重启后仍运行,不要装额外软件栈。
- 防火墙不要为测试页新建规则,沿用已有的 default-allow-http,确认它是入站、优先级 1000、tcp 80、来源全网、目标标签 http-server。
- 验收分两层:机内 curl 本地地址返回 200,Cloud Shell 从机外 curl 公网地址返回 200 且内容一致。两层都通过才算服务端通过。
- 交付地址时给纯文本网址,不要只给 Markdown 链接。实测里 Markdown 链接在用户那边不是超链接、点不开,用户明确要求直接给网址。
- 讲清访问现实:中国直连可能打不开,必须开 VPN 才能访问。实测里就是直连打不开、VPN 美国出口能开,不要把直连失败说成服务挂了。
- 讲清可能的原因,但不要把推测说成定论:中国侧打不开时,候选原因有两个,一是跨境 80 端口干扰,二是 dae 的 fallback 代理规则把发往中国访客 IP 的回包送入代理组。诊断时要先查服务、IP、端口、防火墙、dae 状态,再下结论。
- 讲清 IP 规则:外网 IP 是临时 IP,没有固定变化周期。停止或挂起再启动会换新 IP,系统内重启或 GCP 重置不换 IP。不要把临时 IP 升成静态 IP,静态 IP 按小时收费,不在免费意图里。
- 讲清重启时间:系统内重启约 1 分钟,从 SSH 断开到能重新连上一般 60 到 90 秒,偶尔到 2 分钟。停止再启动约 2 到 3 分钟,而且还要重新查新 IP。重启时间是按配置给的估计,不是实测计时,除非你真的实测过一次。
- 测试页是无鉴权的公网 80 端口页,不要长期默认保留而不提醒。用户不再需要时,按用户指示停掉或删掉服务。
阶段 8:收尾验收清单
- 两笔钱都已领到并核对过:300 美元试用金在结算账号里能看到余额和剩余天数,每月 10 美元已兑换到目标结算账号,选错账号的要重新核对。
- 机型、区域、盘、镜像、网络层全部合规,免费层检查无 FAIL 或 WARN。
- 预算告警已存在或已新建,只提醒、不自动停机,已讲清。
- 防火墙只有用户拍板的那一版,原有规则未删未改,入站全放通没有擅自建。
- 流量只限流版已装,vnstat 正常,cron 正常,SSH 仍通,超限只留 SSH、不关机。
- Debian 源已换成非 CDN 源,apt update 无错。
- dae 版本和内核成对记录,validate 通过,服务 active 加 enabled,出口 IP 是节点 IP,GitHub 能返回 200。
- 测试页机内和机外都返回 200,交付的是纯文本网址,已讲清中国直连与 VPN 的区别。
- 账单复核时看减免后那一列,警惕抵消不掉的小额项,如静态 IP、快照、多余组件,发现就关掉。
- 交付时附上撤销和拆除路径:停 dae、删实例、查孤儿盘和快照、释放未用静态 IP,但拆除前必须用户确认。
迁移提醒
- 正在跑的生产任务不要中途迁到这台机子上。实测过的生产任务是 Node 加 SQLite 的 API 调用、无浏览器依赖、进程很小、数据库只有几 MB,技术上能移,但中途迁移有三个风险。
- 第一个风险是凭证可能失效。生产凭证是在原机 IP 下跑通的,移到 GCP 后出口 IP 会变,dae 还可能再变一次 IP,服务方对 IP 跳变敏感时,凭证可能被判失效,重新导入凭证是最麻烦的一步。
- 第二个风险是目标接口可能被挡。GCP 上的 CDN 出站屏蔽规则是按 IP 段挡的,目标接口解析出来的 IP 万一落在屏蔽网段里,生成就会失败,迁移前必须先实测。
- 第三个风险是访问变差。原机地址在中国直连能开,GCP 网页在中国直连可能打不开、必须开 VPN,迁移后每次看进度都得先开 VPN。
- 正确做法是:本轮生产在原机跑完,下一轮先在 GCP 上拿一个账号、小批量实测一轮,确认接口通、凭证不掉、内存扛得住,再全量切过去。
排障速查
- 浏览器停在选账号页:停下等用户登录,不要自己选账号。点激活 Cloud Shell 后又跳回选账号页,是 Cloud Shell 授权那一步也要登录授权,让用户顺手点授权按钮。
- Cloud Shell 报项目未设置:先确认项目,再跑 gcloud config set project,不要换项目。
- 账单有数字:先看减免后那一列,显示 0 就是没扣,不要只看毛费用。
- apt 装包失败:先查是不是没换源,再查是不是屏蔽 CDN 后才装的包。没换源就先换源,屏蔽后才缺包就从 Cloud Shell 下载 deb 包再 scp 加 dpkg,不要改防火墙去迁就 apt。
- dae 装完但流量不通:先查内核和 dae 版本组合,再查 DNS 在 dae 开关两种状态下的表现,再查日志里有没有 eBPF 拒绝重写的警告,最后才怀疑节点。
- curl 到 ip.sb 返回空或超时:先停 dae 看 DNS 是否恢复,再查节点 TCP 和 UDP 健康检查,不要只凭 TCP 通就断定节点没问题。
- 测试页机外能开、用户那边打不开:先问用户是直连还是走 VPN、浏览器报的是超时还是拒绝还是空白,再查服务和 IP,不要一上来就改配置。
- 链接点不开:先问用户是不是链接本身点不开,再查网络。实测里就出现过一次:不是网络问题,是 Markdown 链接在用户那边不是超链接,改给纯文本网址就解决了。
- 福利页的 10 美元卡片显示锁定:先查登录账号是不是持有 AI Pro 会员的那个账号,再查开发者档案有没有建好、有没有关联上会员,不要换账号硬领,也不要把兑换码发进聊天记录。
- 10 美元兑换后结算里看不到:先查兑换时选的结算账号是不是目标项目用的那个,再查兑换码有没有领错月份,不要重复兑换同一张码。
来源
- 原帖对应的向导技能文件:https://szb123.com/files/gcp-free-vps-skill.md
- 原仓库技能:free-dam-man 的 gcp-free-vm-skill,含建机模板、免费层检查模板和常见坑文档
- 一键部署脚本仓库:fatekey 的 gcp_free,含 dae 安装脚本、Debian 换源脚本、流量监控脚本和 CDN 网段清单
- dae 官方仓库:daeuniverse 的 dae,版本以官方 releases 为准,本技能实测能用的版本是 1.1.0
- 谷歌官方免费层级文档和 Compute Engine 暂停、停止、重置实例文档,IP 变化规则以官方文档为准
- 300 美元试用开通页:cloud.google.com/free,点开始免费试用后绑卡验证,试用金 90 天有效
- 每月 10 美元福利页:me.developers.google.com/benefits,谷歌开发者计划福利页,登录后找谷歌云每月额度卡领取,再到 GCP 控制台结算的 Credits 页兑换到目标结算账号
- Google AI Pro 福利官方说明:support.google.com 上关于 Google AI Pro 福利的页面,含每月 10 美元谷歌云额度、不能和家人共享、须有在用的 AI Pro 会员并关联开发者档案
Available connectors
Use
muse.connector_searchto find other connectors andmuse.skill_searchto find related skills.If nothing here fits, look on the web for a maintained API or MCP server and set it up with Custom Connectors and MCPs, or build a custom connector.
Alternatives for better results
先把预算告警、防火墙、流量监控三件套配齐,再装 dae,不要为了先看到代理效果而跳过防扣费步骤。
先拿一个账号或一个小批量在 GCP 上实测目标接口,再把整批生产切过去,不要直接全量迁移。
测试页长期不用时及时停掉,不要留一个无鉴权的公网页在外面。
