logo NodeSeekbeta

GCP永久免费小鸡配置防火Q防止被扣费/刷AMD CPU教程

建议先看 @lindar 大佬的帖子
真正的GCP/谷歌云免费机。使用自带VPC规则屏蔽CDN互联厂家的IP。以及关于免费机AMD CPU区域分配情况及其他详解

首先看看融合怪测试的CPU性能
融合怪地址:https://github.com/oneclickvirt/ecs

🌐 测试机器 CPU / 内存 / 磁盘性能对比表(按 CPU 单核得分排序)

序号 平台位置 CPU型号 单核得分 多核得分 内存读 (MB/s) 内存写 (MB/s) 磁盘读 (MB/s, 1M) 磁盘写 (MB/s, 1M)
1 Dmit EB 洛杉矶 AMD EPYC 9654 4053.31 - 47958.60 28355.73 953 1200
2 GCP 爱荷华 AMD EPYC 7B12 3613.62 4120.29 42087.97 11075.15 62.5 104
3 Oracle ARM Neoverse-N1 3404.16 6692.01 30010.72 14593.28 26.6 55.4
4 Oracle AMD AMD EPYC 7551 615.53 620.17 16733.33 7431.87 26.6 52.6

可以看到性能还不错吧,以下教程基于GCP默认的Debian12镜像,如需用于其他镜像,自行修改部分配置

首先开始配置防火墙防止走CDN被扣费,看到大佬说的GCP控制台防火墙加IP段感觉太麻烦了,而且机器上偶尔需要下载一点有cdn的东西也很麻烦,所以我在机器上用iptables来实现,安全性虽然低了,但是灵活性大大增加,自己用也没啥大问题。

安装必要工具

sudo apt update
sudo apt install -y ipset curl

执行脚本

bash <(curl -fsSL https://quzei.com/sh/cdn_block.sh)

执行截图
img

现在机器就没法访问cdn节点了,也没法被cdn节点访问了
上面的iptables和ipset机器重启就没了,需要重新执行
我自己是每次重启后执行自动执行脚本一次,各位也可以试试别的可保存方式,方法多种多样

如果要临时访问github或cf什么的,只需要删除防火墙规则就行,用完再执行脚本加回防火墙

现在没法访问cdn,导致连默认的apt都访问不了,所以我们就当这台机器在国内吧,给他配置一个国内阿里云镜像(国外鸡用国内镜像也挺神奇)

sudo bash -c '\
rm -rf /etc/apt/sources.list.d/* && \
truncate -s 0 /etc/apt/sources.list && \
cat > /etc/apt/sources.list <<EOF
deb http://mirrors.aliyun.com/debian/ bookworm main contrib non-free non-free-firmware
deb http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free non-free-firmware
deb http://mirrors.aliyun.com/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free non-free-firmware
EOF
apt update'

然后就是刷AMD CPU了,首先打开GCP,正常创建一台免费鸡,创建请看最顶上大佬帖子,最好创建爱荷华吧,其余两个区大佬说不太好刷AMD,以下为我刷的时间,都是爱荷华A区

7月30日 18:30 三个号同时开刷
7月30日 19:40 第一个
7月30日 21:50 第二个
7月31日 8:20 第三个

创建后进入这个页面

img

创建进入看到的CPU应该不是AMD的,然后F12打开调试工具,进入控制台,输入以下代码回车

(function() {
  let lastStatus = null;
  let intervalId = null;

  // 通过模糊匹配找按钮,忽略空白字符
  function findButtonByTextContains(textFragment) {
    const target = textFragment.replace(/\s+/g, '');
    const buttons = document.querySelectorAll("button");
    for (const btn of buttons) {
      const span = btn.querySelector(".mdc-button__label");
      if (span) {
        const label = span.textContent.replace(/\s+/g, '');
        if (label.includes(target)) {
          return btn;
        }
      }
    }
    return null;
  }

  // 通过精确匹配找按钮,忽略空白字符
  function findButtonByTextExact(textExact) {
    const target = textExact.replace(/\s+/g, '');
    const buttons = document.querySelectorAll("button");
    for (const btn of buttons) {
      const span = btn.querySelector(".mdc-button__label");
      if (span) {
        const label = span.textContent.replace(/\s+/g, '');
        if (label === target) {
          return btn;
        }
      }
    }
    return null;
  }

  // 根据是否需要精确匹配选择对应查找方式
  function clickButtonWithLog(text, exactMatch = false) {
    let btn = null;
    if (exactMatch) {
      btn = findButtonByTextExact(text);
    } else {
      btn = findButtonByTextContains(text);
    }
    if (btn) {
      btn.click();
      console.log(`点击按钮: "${text.trim()}"`);
      return true;
    } else {
      console.warn(`未找到按钮: "${text.trim()}"`);
      return false;
    }
  }

  function checkAndAct() {
    const content = document.body.innerText;
    const hasBroadwell = content.includes("Intel Broadwell");
    const hasUnknown = content.includes("Unknown CPU Platform");

    if (!hasBroadwell && !hasUnknown) {
      console.log("页面不包含关键词,脚本停止。");
      clearInterval(intervalId);
      return;
    }

    if (hasBroadwell) {
      if (lastStatus !== "broadwell") {
        console.log("检测到 Intel Broadwell,准备执行关停操作...");
        // 先点击“关停” (精确匹配)
        if (clickButtonWithLog("关停", true)) {
          // 关停后再点击“停止” (精确匹配)
          setTimeout(() => {
            if (!clickButtonWithLog("停止", true)) {
              console.warn("关停确认按钮“停止”未找到");
            }
          }, 3000); // 延迟3秒
        } else {
          console.warn("关停按钮未找到,无法执行关停操作");
        }
        lastStatus = "broadwell";
      } else {
        console.log("Intel Broadwell 状态未变,等待中...");
      }
    }

    if (hasUnknown) {
      if (lastStatus !== "unknown") {
        console.log("检测到 Unknown CPU Platform,准备执行启动操作...");
        // 先点击“启动/恢复” (包含匹配即可)
        if (clickButtonWithLog("启动/恢复")) {
          // 启动后再点击“启动” (精确匹配)
          setTimeout(() => {
            if (!clickButtonWithLog("启动", true)) {
              console.warn("启动确认按钮“启动”未找到,可能只需“启动/恢复”操作");
            }
          }, 3000); // 延迟3秒
        } else {
          console.warn("启动/恢复按钮未找到,无法执行启动操作");
        }
        lastStatus = "unknown";
      } else {
        console.log("Unknown CPU Platform 状态未变,等待中...");
      }
    }
  }

  console.log("开始监测页面状态...");
  intervalId = setInterval(checkAndAct, 2000);
})();

之后页面不关,打开另一个标签页继续刷第二个,以此类推,如果发现页面没有显示关停/启动按钮,就把页面缩小点

1234
  • 为什么防火墙是违禁词啊

  • 哎 不怕一万 就怕万一。 xhj011

  • 俄勒冈不好刷 但是南卡非常好出f区基本都是amd

  • 感谢分享,先mark

  • 用了好久的免费GCP鸡,昨天突然给我停了

  • mark

  • 有了机是试试

  • bd

  • @玩具 #5 为什么,是自己的真实信用卡吗

  • 大佬,没明白,你的机器已经创建出来了,然后通过这个脚本来改CPU为AMD?

1234

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72280位seeker

🎉欢迎新用户🎉