谷歌云GCP免费VPS抢机AMD+测评+教程

结尾附带视频教程

免费VPS基本介绍

谷歌云官网地址

谷歌云管理地址

每月的200G流量处于免费的标准层级是不限国家的
澳大利亚和中国收费的是高级网络层级的免费1G
谷歌云是仅计出站流量,入站不收费
仅限于访问CDN会收费
(每月的1号重置200G)
每月1号是基于太平洋时间(Pacific Time, PT),即UTC-8(或在夏令时期间为UTC-7)

免费机器的区域以及注意事项

关于开机器具体配置可以观看下面这一期视频教程👇

us-west1 (俄勒冈) 美西
us-central1 (爱荷华) 美中
us-east1 (南卡罗来纳) 美东南
三个区任选一个

机器类型 e2-micro
硬盘 标准永久性磁盘-30G
网络 网络服务层级-标准
关闭 备份您的数据/备份/快照 和 可观测性-Ops Agent

谷歌云的出入站流量使用

官网标出的CDN互联厂家分别是

Akamai+Cloudflare+Fastly

CDN的1G免费流量是什么意思?

除了通用的200GB标准层出站流量外,谷歌云的免费套餐中还提到了每月1GB的Cloud CDN出站流量。这与前述的200GB流量是不同类型且独立计算的。

Cloud CDN(内容分发网络):CDN是一种将您的网站或应用内容缓存到全球各地的边缘节点服务器上的服务。当用户请求访问时,会从离他们最近的节点获取内容,从而加快访问速度并降低源服务器的负载。

1GB CDN免费流量的含义:这指的是通过谷歌云的Cloud CDN服务分发出去的流量。具体来说,当用户通过CDN节点获取到您存储在Google Cloud Storage或Compute Engine上的缓存内容时,这部分流量会从1GB的免费CDN出站流量中扣除

按照谷歌解释,入站流量是不收费的,出站流量收费

计费只发生在出站(Egress),也就是数据离开谷歌云的时候

⚠️ 注意事项:

  1. CDN流量不会算进200GB额度,这两个额度完全独立。
    • 网站启用CDN → 访问网站会走 Cloud CDN,消耗1GB里面的额度
    • 不启用CDN的网站 → 所有请求由 VM 响应,消耗200GB额度
  2. 超过免费200G额度依然会产生费用:
    • CDN流量超出1GB后,费用较贵(按出口区域计费)
    • VM超过200GB也会产生费用,但费用相对便宜

一、抢AMD机器

AMD机器

Intel机器

默认大几率是开出Intel Broadwell/Skylake处理器

有几率开出AMD处理器

极少极少极少几率开出ARM

🧠 Intel Broadwell vs AMD Rome 性能对比
特性	Intel Broadwell	                      AMD EPYC Rome
架构	14nm、Haswell改进版	              7nm Zen 2 架构
特性	Intel Broadwell	                      AMD EPYC Rome
架构	14nm、Haswell改进版	              7nm Zen 2 架构
年代	2016左右	                              2019年
单核性能	中等	                              强
多核性能	中等偏下	                              很强(但E2micro只有1vCPU)
能效比   一般	                              好很多
内存带宽	中等	                              更高
GCP定位	老旧节点	                              新节点,突发频率可能更好

如果跑突发型任务,Rome 更容易拿到较新 CPU 的频率与微架构优势,Rome 比 Broadwell 性能高 30~60% 左右(同频时),能耗低、效率高。

抢机思路

  • 先开机器
  • 在机器页面CPU平台一栏查看是否是AMD
  • 如果不是在页面选择关停
  • 注意是选择关停,不是暂停!
  • 再启动,就能刷新所分配的CPU资源
  • 有看我前面的视频拿到Gemini的话,也可以叫gemini根据自己的机器版本写一个适合的脚本,用控制台/VM去运行即可
  • 一个区域最多可以开四台机器
  • 如果你有赠送金并且还是还未到期就全部开满去抢
  • 用其他区域VPS给这四台免费机进行关停启动的操作,一直到刷出为止
ADM机器比较容易抢的是
us-central1 ------A (爱荷华) 美国中部
us-east1    ------D (南卡罗来纳) 美国东南部
us-west1    ------A/C(俄勒冈) 美美国西部(难度最大)
地理位置上俄勒冈会比其他两个区更近,所以延迟也比其他两区低一点(但是非常难抢)

不想折腾的也可以使用下面我的教程和脚本进行刷机

正式开始

  • 一个有免费赠款的账号
  • 准备好四台你需要的区域VPS,并且检查符合免费条件
  • 准备好其他区域一台VPS,并且授权api全部权限
  • 五台VPS都开启root密码登录设置好登陆密码
✅ 第一步:

每台实例第一步先进行一个简单的更新
apt update
apt install -y openssh-client

每台区域机都执行
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
sudo systemctl restart sshd
sudo passwd root  # 设置一个 root 密码(之后 ssh-copy-id 要用到)




配置 gcloud 命令行工具(服务机操作)
sudo apt update && sudo apt install -y curl apt-transport-https ca-certificates gnupg

echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | 
  sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | 
  sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

sudo apt update && sudo apt install -y google-cloud-sdk




执行命令
gcloud auth list

确认输出中你的账号处于 ACTIVE 状态





配置 SSH 免密登录(root用户)
统一root 用户,四台区域VPS密码设置同一个
让这台服务机能免密 SSH 登录四台区域 VPS
先在服务机 VPS 生成 SSH 密钥(如果还没生成)
ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa -N ""

说明:-N "" 表示密钥不设密码,方便脚本自动连接




把公钥复制到每台区域 VPS
如果可以用密码登录,可以用 ssh-copy-id 免输密码上传公钥:
ssh-copy-id root@公网地址1
ssh-copy-id root@公网地址2
ssh-copy-id root@公网地址3
ssh-copy-id root@公网地址4




验证免密登录是否成功
ssh -o BatchMode=yes root@公网地址 "echo success"
输出success就代表成功




它会要求输入密码,输入后,然后自动把公钥写入远端
出现提示输入yes然后输入密码
有几台就会弹几次
千万别输错密码,会很麻烦



如果 ssh-copy-id 没有安装,可以先安装:
sudo apt-get update && sudo apt-get install -y sshpass




用 sshpass 配合 ssh-copy-id 一次性输入密码(自动化)命令
for ip in vps1公网地址 vps2公网地址 vps3公网地址 vps4公网地址; do
  sshpass -p 'root密码' ssh-copy-id -i ~/.ssh/id_rsa_gcp.pub root@$ip
done



测试一下免密登录
ssh -i ~/.ssh/id_rsa_gcp [email protected] uname -a
看是否能直接登录且输出内核信息



可以ssh到区域机看弹不弹密码提示
ssh [email protected](改为你的区域机公网地址)






确定免密登录没问题不用看下面这一步了

可以用这个简单的循环来测试其它机器是否也能免密码登录,不用密码提示会直接登录
#!/bin/bash

declare -A IP_MAP=(
  ["hostname1"]="1.1.1.1"
  ["hostname2"]="1.1.1.1"
  ["hostname3"]="1.1.1.1"
  ["hostname4"]="1.1.1.1"
)

for inst in "${!IP_MAP[@]}"; do
  ip=${IP_MAP[$inst]}
  echo "测试 $inst ($ip) 是否免密码登录..."
  ssh -i ~/.ssh/id_rsa_gcp -o BatchMode=yes -o ConnectTimeout=5 root@"$ip" "echo 登录成功,CPU信息: && grep -m1 -i 'model name\|hardware' /proc/cpuinfo"
  echo "---------------------------"
done

直接把上面脚本粘贴到你机器上
比如新建一个文件 test_ssh.sh:
nano test_ssh.sh
粘贴进去,保存退出
然后赋予可执行权限
chmod +x test_ssh.sh
运行脚本
./test_ssh.sh

执行这行命令可以查看你自己的项目ID(输出结果name下面对应的就是项目ID)
gcloud config get-value project

在服务机创建脚本,名字可以自定义
nano 刷CPU_step1_start_instances.sh

# 把下面代码粘贴进去,保存退出(Ctrl+O 回车,Ctrl+X)

赋予脚本可执行权限
chmod +x 刷CPU_step1_start_instances.sh

运行脚本
./刷CPU_step1_start_instances.sh

👇下面是脚本代码,自行修改为自己对应的信息

#!/bin/bash

# ⚙️ 项目 ID 和区域
PROJECT_ID="项目ID"
ZONE="区域"

# 🌐 实例名与公网 IP 映射
declare -A INSTANCE_IPS=(
  ["oe-one"]="1.1.1.1"
  ["oe-two"]="1.1.1.1"
  ["oe-three"]="1.1.1.1"
  ["oe-four"]="1.1.1.1"
)

# 📋 实例名称列表
INSTANCES=("oe-one" "oe-two" "oe-three" "oe-four")

# ♻️ 无限刷机直到找到非 Intel CPU
while true; do
  echo "🚀 并发启动所有实例..."
  for INSTANCE in "${INSTANCES[@]}"; do
    echo "→ 启动 $INSTANCE"
    (
      for i in {1..3}; do
        gcloud compute instances start "$INSTANCE" --zone "$ZONE" --project "$PROJECT_ID" --quiet && break
        echo "⚠️ $INSTANCE 启动失败第 $i 次,重试中..."
        sleep 5
      done
    ) &
  done
  wait

  echo "⏳ 等待 30 秒让实例完全启动..."
  sleep 30

  echo "🔍 检查各实例的 CPU 型号..."
  declare -A INSTANCE_RESULTS

  for INSTANCE in "${INSTANCES[@]}"; do
    IP="${INSTANCE_IPS[$INSTANCE]}"
    echo "→ 检测 $INSTANCE ($IP) 的 CPU..."
    (
      CPU_MODEL=$(ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o BatchMode=yes root@"$IP" \
        "lscpu | grep 'Model name' || cat /proc/cpuinfo | grep 'model name'" 2>/dev/null)

      if [[ -n "$CPU_MODEL" ]]; then
        echo "💻 $INSTANCE 的 CPU 是: $CPU_MODEL"
        if echo "$CPU_MODEL" | grep -i -qE 'amd|arm'; then
          INSTANCE_RESULTS["$INSTANCE"]="target"
        elif echo "$CPU_MODEL" | grep -i -qE 'broadwell|skylake|intel'; then
          INSTANCE_RESULTS["$INSTANCE"]="intel"
        else
          INSTANCE_RESULTS["$INSTANCE"]="unknown"
        fi
      else
        echo "⚠️ 无法连接 $INSTANCE($IP),可能未设置免密 SSH 或尚未就绪"
        INSTANCE_RESULTS["$INSTANCE"]="no_ssh"
      fi
    ) &
  done
  wait

  FOUND_TARGET=""
  for INSTANCE in "${INSTANCES[@]}"; do
    if [[ "${INSTANCE_RESULTS[$INSTANCE]}" == "target" ]]; then
      FOUND_TARGET="$INSTANCE"
      break
    fi
  done

  if [[ -n "$FOUND_TARGET" ]]; then
    echo "✅ 找到目标 CPU 实例:$FOUND_TARGET,退出脚本 🎉"
    break
  else
    echo "⚠️ 本轮未命中,关停所有实例..."
    for INSTANCE in "${INSTANCES[@]}"; do
      echo "→ 关停 $INSTANCE"
      gcloud compute instances stop "$INSTANCE" --zone "$ZONE" --project "$PROJECT_ID" --quiet &
    done
    wait
    echo "🔁 进入下一轮刷机..."
    sleep 10
  fi
done

echo "🎯 脚本完成!你已经成功刷到非 Intel 的 CPU 实例!"

保持脚本24小时运行

下面都在服务机操作

1. 安装 tmux(如果没装)
sudo apt update
sudo apt install tmux -y


2.启动 tmux 会话
tmux


3. 在 tmux 中运行你的脚本
./刷CPU_中文版.sh


4. 脚本开始运行后,按下以下快捷键,退出tmux会话(脚本继续运行)
Ctrl + B 松开,然后按 D

这会让tmux会话脚本保持后台运行不停歇


5. 退出SSH连接


6. 以后想回来继续看脚本运行状态,再登录服务器,执行:
tmux attach


就能回到那个会话,看到脚本输出记录

二、CDN拦截

避免产生CND流量而扣费

防火墙禁用流量出站到这三家的IP地址

Akamai+Cloudflare+Fastly

防火墙添加CND地址
方向选择出站
拒绝
目标选择
网络中所有实例/或带标签的实例
范围填入 CDN IP段
全部协议和端口
选择全部拒绝

Cloudflare地址来源

Fastly地址来源

Akamai地址来源

CF和Fastly的IP不多,可以自行添加到防火墙规则

由于Akamai并未有在官网中标出IP段,并且Akamai的CDN IP非常多,如果一个一个输入非常浪费时间

整合版的放下面,也可以自己去上面Github下载原版自己整理

可以把脚本打开谷歌云的Shell控制台直接添加拦截规则

Akamai地址整合版

Cloud Shell控制台使用

GCP控制台导入拦截IP规则

这段脚本的功能是:

  • 从 iplist.txt读取 IP 列表
  • 并将其分批(每批最多 256 个 IP)
  • 批量创建 GCP 出站防火墙规则以阻止访问这些 IP(封掉 akamai 的 CDN)

如果实在担心可以把入站的CND地址也拦截

示例脚本create_akamai_firewall_rules.sh

可以在 Cloud Shell 运行以下命令来列出你的 GCP VM 实例名称

gcloud compute instances list

注释脚本:

#!/bin/bash

# 【需改1】:IP 文件路径(改成你机器上存 IP 列表的实际路径)
IP_FILE="/home/123/iplist.txt"

# 【可改2】:规则名称前缀(建议个性化一点,避免和别人的冲突)
RULE_PREFIX="no-akamai"

# 【一般不改】:指定使用的网络名称(GCP 默认是 default)
NETWORK="default"

# 【一般不改】:出站规则(也可设置为 INGRESS 代表入站)
DIRECTION="EGRESS"

# 【可改3】:优先级(0~65535,数字越小优先级越高)
PRIORITY=1000

# 【需改4】:目标实例标签(只有打上这个标签的实例才会应用该规则)
TARGET_TAGS="no-akamai-acc"

# 【一般不改】:动作设为 deny 表示阻止流量
ACTION="deny"

# 【可改5】:协议类型,"all" 表示所有协议;也可以是 tcp/udp/icmp 等
PROTOCOL="all"

# 读取 IP 列表到数组
mapfile -t IPS < "$IP_FILE"

# 每条防火墙规则最多允许 256 个 IP
MAX_IP=256
TOTAL_IP=${#IPS[@]}
NUM_RULES=$(( (TOTAL_IP + MAX_IP - 1) / MAX_IP ))

echo "总IP数: $TOTAL_IP, 需要创建规则数: $NUM_RULES"

# 分批创建防火墙规则
for ((i=0; i<NUM_RULES; i++)); do
    start=$((i * MAX_IP))
    end=$((start + MAX_IP))
    if [ $end -gt $TOTAL_IP ]; then
        end=$TOTAL_IP
    fi

    # 提取当前批次 IP 子集
    IP_SUBLIST=$(printf ",%s" "${IPS[@]:$start:$((end - start))}")
    IP_SUBLIST=${IP_SUBLIST:1}

    # 规则名称增加编号
    RULE_NAME="${RULE_PREFIX}-${i}"

    echo "创建防火墙规则 $RULE_NAME,包含IP数: $((end - start))"

    # 创建防火墙规则命令
    gcloud compute firewall-rules create "$RULE_NAME" \
      --network "$NETWORK" \
      --direction "$DIRECTION" \
      --priority "$PRIORITY" \
      --target-tags "$TARGET_TAGS" \
      --action "$ACTION" \
      --rules "$PROTOCOL" \
      --destination-ranges "$IP_SUBLIST"
done

上面脚本直接在Cloud Shell粘贴执行

如果在创建VM实例是忘记添加标签

可以在你当前登录的 VPS(或 Cloud Shell)中运行以下命令

gcloud compute instances add-tags INSTANCE_NAME \
    --tags=no-cdn \
    --zone=ZONE_NAME \
    --project=PROJECT_ID

将以下替换为你的实际值:

  • INSTANCE_NAME:你的免费 VPS 名称,例如 GCP
  • ZONE_NAME:区域,例如 us-west1-c
  • PROJECT_ID:你的项目 ID,例如 tenacious-lore-11111-c4

使用 Gcloud 查看现有标签

gcloud compute instances describe 你是实例名 --zone=你的区域 --project=你的项目ID --format="get(tags.items)"

如果输出是 【】,表示尚未添加标签

完成上面操作之后就可以非常有效的防CDN网络扣费

验证规则是否应用成功

用这三大家的CDN的网站应是都打不开了

谷歌云抢AMD处理器视频教程

CDN拦截视频教程

电报交流群

阅读量:2,861 次浏览