我也是最近才發現的 Linodes 白嫖 100 美金,目前也是使用了一個星期,寫個文章記錄一下,順便你們也可以參考入坑!
注:本文無任何廣告,本站也不會打任何廣告!附上一個開機並正常使用 7 天的截圖。
我開的這個伺服器是 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;
}