A8

A8DOG

随便写写,记录折腾过程!
email
telegram

没钱还想玩高配服务器,Linodes的100美金真的超爽!

我也是最近才发现的 Linodes 白嫖 100 美金,目前也是使用了一个星期,写个文章记录一下,顺便你们也可以参考入坑!

注:本文无任何广告,本站也不会打任何广告!附上一个开机并正常使用 7 天的截图。

Snipaste_2023-04-05_07-14-25

我开的这个服务器是 AMD EPYC 7642 独享 6 核心 16G 的日本机房,目前跑一些脚本处理一些东西。
目前稳了 7 天,不知道能稳多久也不知道能不能把 100 美金完全花完,到时候挂了我就在这一段的下面更新具体情况!

首先一开始我买了一个账号,然后我是直接账号密码登录,当时准备通过 API 做一个白嫖的网站,可以开免费的机器给大家折腾,然后到 72 小时自动销毁,估计是我手工登录的原因账号被封号了,但是我登录提示是账号密码不正确还是什么,我又感觉是商家把密码修改了。

于是我换了一家购买,基本上价格好像是 45-55RMB 的样子,然后我发现像亚马逊 Linodes Vultr 等这些可以白嫖的服务商,都可以通过 API 开通机器,并且目前出来专门开通机器的网站。

五合一面板开机管理:https://cloud.bobu.me/ (非广告,这个是我在第二家购买账号的商品说明看见的,说通过 API 比较稳一点。)

在第二家购买 Linodes 之前,我购买了一个亚马逊的 32v 白嫖账号,我第一次使用这个,就比较搞不懂我就干脆手工登录了账号,第二天账号就封了。

总结:

目前我花 50 左右购买的 Linodes 账号稳了一个星期左右,至少我 50 块钱赚回来了,通过 API 开通这个 API 面板是需要付费的。

如果不想付费 API 面板,联系 chatgpt 直接告诉它要写一个 Linodes 的 API 开通实例的 PHP 文件就好了。
尽量不要手工登录账号,当然一个靠谱的账号贩子也是必要的,我第一次购买的那个我总感觉是商家把账号密码修改了。

另外 Linodes 的 100 美金额度有时间期限,好像是三个月还是两个月,不要舍不得花直接高配机器开起来。
这个的话使用场景基本是跑一些不重要的脚本,富强和建站都不合适,毕竟不知道时候就挂了。
拿来折腾做测试比较不错的,我目前也是跑了一些东西 CPU 使用百分之六十左右。

折腾玩法

如果你在此之前通过 API 开通机器,Linodes 账号都比较稳,或者说你有精力去折腾不怕服务器异常导致流量掉或者 seo 排名问题,再或者你的场景是固定数据的 cms 程序,想花少一点的钱去分摊服务器算力可以尝试我下面的方法。

首先你有一台备用服务器,做活动打折扣的商家有很多可以购买做备用服务器。

然后安装宝塔的开心版,白嫖才是最快乐的,详细可看我写的三款宝塔开心版 白嫖宝塔企业版 已剥离通讯

在参考我之前写的一个 PHP 文件 + cloudflare 实现故障转移! 根据教程配置好一些信息,添加一个监控就能使用了,请部署在备用服务器上。

里面代码的下载链接也因为我换了程序失效了,我会在最下面贴上完整代码。
在宝塔插件里面可以安装 FTP 储存 + 文件同步,把这些对接到你的备用服务器上。

或者你是一个影视网站,没有用户数据只有影视数据,那么你肯定有发布页,可以在发布页添加一个部署在 Linodes 的域名,然后在源服务器上设置文件同步到 Linodes 服务器上。这个样子就达到分摊算力的玩法!

其实只要思想不滑坡,办法总比困难多,总有一个方法能让你合理应用!

故障转移代码:

<?php
header('Content-type:application/json');

//创建API后得到的token,写在Bearer 后
$Authorization = 'Authorization: Bearer ';
//ping 检测的IP
$pingip='';
//区域ID
$id = '';
//需要修改的DNS记录ID,  $get_dnsid = true 获取记录列表,设置dnsid后将$get_dnsid设置成false
$dnsid = '';
//记录
$dnstype = 'A';
//名字
$dnsname = '';
//修改后的IP
$dnscontent = '';
//代理
(bool)$dnsproxied = false;
//ttl
$dnsttl = 1;


//获取DNS记录ID列表,改成true后访问PHP地址会显示JSON格式的DNS记录列表。
$get_dnsid = false;

if ($get_dnsid === true) {
    //获取DNS ID
    $api_dnsid = 'https://api.cloudflare.com/client/v4/zones/' . $id . '/dns_records';
    try {
        $json = curl_get($api_dnsid, [$Authorization]);
        $json = json_decode($json);
        echo json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT);
    } catch (Exception $aaa) {
        $json = [
            'state' => 1,
            'msg' => 'API获取DNSID 错误'
        ];
        echo json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT);
    }
    exit();
} else {
    if (pingDomain($pingip, 443) === -1) {
        changeDNS($dnstype, $dnsname, $dnscontent, $dnsproxied, $dnsttl, $id, $dnsid, $Authorization);
    }
}

//ping
function pingDomain($domain, $port)
{
    try {
        $starttime = microtime(true);
        $file      = fsockopen($domain, $port, $errno, $errstr, 10);
        $stoptime  = microtime(true);
        $status    = 0;

        if (!$file) $status = -1;  // Site is down
        else {
            fclose($file);
            $status = ($stoptime - $starttime) * 1000;
            $status = floor($status);
        }
        return $status;
    } catch (\Exception $a) {
        return false;
    }
}

//修改DNS
function changeDNS($dnstype, $dnsname, $dnscontent, $dnsproxied, $dnsttl, $id, $dnsid, $Authorization)
{

    if ($dnsid != '') {
        $api = 'https://api.cloudflare.com/client/v4/zones/' . $id . '/dns_records/' . $dnsid;

        $json = [
            'type' => $dnstype,
            'name' => $dnsname,
            'content' => $dnscontent,
            'proxied' => $dnsproxied,
            'ttl' => $dnsttl,
        ];
        $json = json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
        $temp = curl_patch($api, [$Authorization], $json);
        $temp = json_decode($temp);
        echo json_encode($temp, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT);
    } else {
        $json = [
            'state' => 1,
            'msg' => 'DNS ID 为空,需要先设置DNS ID'
        ];
        echo json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT);
    }
}


//--------------------------------------------------CURL
function curl_get($url, $header)
{

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    //curl_setopt($ch, CURLOPT_ENCODING,'gzip');

    $contents = curl_exec($ch);
    curl_close($ch);
    //$contents = mb_convert_encoding($contents, 'utf-8','GB2312');
    return $contents;
}
function curl_patch($url, $header, $data)
{

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    //curl_setopt($ch, CURLOPT_ENCODING,'gzip');

    $contents = curl_exec($ch);
    curl_close($ch);
    //$contents = mb_convert_encoding($contents, 'utf-8','GB2312');
    return $contents;
}
Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.