我的網站被人攻擊了。

作者:可可耐特
日期:2026年5月5日 上午9:07
來源:WeChat 原文

整理版優先睇

速讀 5 個重點 高亮

網站被攻擊後,被迫搞咗一波升級:換Server、遷CI/CD、上Cloudflare CDN同國內加速

整理版摘要

呢篇文章係由獨立開發者可可耐特寫嘅,佢個網站俾人攻擊,CPUMemory被打滿,迫住要搞返穩定同安全。佢原本一路拖住「下次先搞」,結果今次俾人幫佢做咗決定。成個過程由換Server、遷代碼到GitHub+Actions+ACR、踩咗三個大坑(SSH連唔到、域名未備案、Caddyfile配置錯),到最後成功上咗Cloudflare免費CDN同國內加速,仲分享咗套免費技術棧。佢嘅結論係:被攻擊好狼狽,但反而促成咗一次「被迫升級」,獨立開發者要識得快速站返起身。

呢篇文嘅價值在於,佢唔單止講點樣一步步搞掂攻擊,仲公開曬佢踩過嘅坑同解決方案,尤其係Cloudflare WorkersPages項目嘅國內加速方案,好少人講得咁詳細。另外佢推介嘅技術棧(Typescript fullstack + hono.js + SQLite WASM + Cloudflare D1等)對於想慳錢嘅開發者好實用。成個故事有經驗、有反思,係一篇高質實戰分享。

  • 被攻擊係壞事,但迫使作者即時升級Server同CI/CD流程,反而令網站更快更穩定
  • ServerGitHub Actions + 阿里雲ACR搞自動化部署,效果顯著,但踩咗三個離譜坑:SSH雙重防火牆、域名無備案搞到525錯誤、Caddyfile少咗分號
  • AI幫手排查好有用——最後直接俾GPT服務器賬號密碼,5分鐘揾到域名備案問題,節省6個鐘
  • Cloudflare免費CDN加國內加速方案有特別技巧:Workers要用CNAME指向優選域名兼關小黃雲;Pages要經華為雲國際版DNS做分區域解析
  • 推薦窮鬼技術棧Typescript fullstack + hono.js + SQLite WASM + D1,瀏覽器同Server可以共用同一套CRDT業務邏輯,仲可以白嫖GitHub Copilot
值得記低
連結 blog.cmliussss.com

Cloudflare優選域名加速Workers & Pages參考

作者提供嘅優化方案同公益優選域名列表

連結

開源項目:typix

作者分享嘅全套技術棧代碼,包括Typescript全棧、hono.js、SQLite等

整理重點

由被攻擊到被迫升級

朝早起身見到羣友話網站打唔開,後台一睇CPUMemory全滿,好明顯俾人搞咗。作者一直都話「下次先搞」安全穩定,今次終於被迫行動。佢決定換Server兼遷代碼,順便搞埋CI/CD。

成個流程係GitHub託管代碼 → GitHub Actions跑CI/CD → 阿里雲容器鏡像服務ACR託管鏡像 → 部署到新服務器

遷完之後效果立竿見影,全球部署1ms響應,佢仲話「這不挺簡單的嘛」,結果即刻踩坑。

整理重點

三個離譜坑,AI幫手救返

  • 第一個坑SSH連唔上——騰訊雲同Server都有防火牆,要兩邊都放行22 port
  • 第二個坑:域名未備案——用海外平台免費域名叫咗525錯誤,排查咗6個鐘都揾唔到原因,最後直接俾GPT服務器賬號密碼,5分鐘就發現係騰訊雲監管要求備案,外國model完全冇諗過呢層
  • 第三個坑Caddyfile配置錯——小米model寫嘅反代少咗個分號,造成跨域問題,最後前端截圖俾GPT就搞掂

AI真係夠方便,只要你敢放開權限,直接俾Server賬號密碼,佢可以幫你查曬所有嘢

整理重點

數據遷移同CDN加速實戰

數據遷移好簡單:舊Server嘅容器數據卷導出,放落新ServerDocker數據卷就得,掛載關係由docker-compose.yml決定。AI俾咗命令,作者手動處理,但其實可以直接俾權限叫AI做。

之後上咗Cloudflare免費CDN,但國內訪問有啲卡,所以要配國內加速節點

  1. 1 Workers優選:設CNAME指向優選域名(如visa.com),唔開小黃雲,然後加路由時自定義域尾要加/*
  2. 2 Pages優選:先加自定義域,拎到CNAME目標;然後用華為雲國際版DNS,設兩條記錄——全網默認指向Pages域名,中國大陸指向優選域名;最後喺域名商改NS指向華為雲嗰4條NS記錄
整理重點

窮鬼技術棧同最終反思

作者推介嘅技術棧Typescript fullstack + hono.js + tanstack router + drizzle + sqlite + better-auth + shadcn UI

  • 代碼託管GitHub;數據庫:SQLite WASM(瀏覽器)+ Cloudflare D1(Server);Auth:Better Auth;郵件:Resend + Cloudflare轉發;文件:R2;CI/CD:GitHub Action;部署:Cloudflare Workers;AI工具:GitHub Copilot(白嫖)
  • 如果開發local-first應用,瀏覽器SQLite同D1可以共用Drizzle entity同SQL方言,做到優雅CRDT,甚至瀏覽器同Server複用同一套業務代碼
開源項目地址 text
github.com/monkeyWie/typix

最後佢話,被攻擊好狼狽,但換Server、遷代碼、搞CDN、搞埋備案同安全加固,如果唔係俾人打一獲,呢啲嘢可能拖三個月。獨立開發就係咁,唔知下一拳從邊度嚟,但可以選擇站返起身嘅速度。

站起來了,就是贏

我個網站俾人攻擊咗。

嗰日朝早起身,羣組啲朋友send咗一堆訊息。

有人cap圖,話網站開唔到。

我開咗後台睇下,嘩,CPU同RAM全部爆滿。

好明顯,俾人搞咗。

圖片

image-20260505131855405
image-20260505130814950

老實講,安全同穩定呢方面,我早就想搞㗎喇。

但係一路拖延,成日諗「下次先啦」。

今次倒好,其他人幫我決定咗。

擇日不如撞日,開搞。


一. 換伺服器,搞CDN,搬code

思路好簡單:舊伺服器俾人盯上咗,就換部新嘅。

Code之前放喺Gitee,因為佢有免費private倉庫。但最近GitHub都有咗,索性一齊搬過去。

成個流程係咁:GitHub託管code → GitHub Actions行CI/CD → 阿里雲容器映像服務ACR託管映像 → 部署到新伺服器。

architecture1

搬完之後,效果立竿見影。

全球部署,1ms反應。

iShot_2026-05-04_13.33.52
image-20260505131217221

睇住呢啲數據,我心諗:呢啲唔係好簡單咩。

然後我就踩坑喇。

仲要三個。


二. 三個坑,每一個都超離譜

第一個坑:SSH連唔到。

喺騰訊雲嘅防火牆開咗22 port,死死地連唔到。

搞咗成半日先發現:騰訊雲嗰層防火牆開咗都唔夠,如果你伺服器自己都開咗防火牆,仲要喺伺服器上面再放行一次。

兩層防火牆,兩層設定,缺一個都唔得。

image-20260505133647616

第二個坑:域名冇備案,請求被截斷。

呢個坑,累我搞咗成六個鐘。

我有個域名已經備咗案,但諗住新伺服器就用新域名啦,唔好同舊嘅撞。於是喺海外平台免費註冊咗個新域名。

結果呢?525錯誤,連線無端端被截斷。

image-20260505140304488

排查過程極之痛苦。

一開始用小米MiMo大模型,因為GPT同Claude嘅額度都限流咗。結果一般,查唔到。

夜晚8點,GPT恢復咗。我開始手動copy錯誤信息、cap圖俾佢,都係查唔到。

最後我搞到好煩。

直接將伺服器賬號密碼掉俾GPT,叫佢入去幫我查。

唔使5分鐘,關鍵原因出咗嚟。

image-20260505135333315

原來係域名冇備案,騰訊雲好多服務都要備案,監管越來越嚴。

呢類情況確實特殊——國外冇備案嘅習慣,所以好多大模型根本冇諗到呢一層。我查咗成個下晝,浪費6個鐘,真係好鬼煩。

第三個坑:Caddyfile設定寫錯。

呢個係小米模型寫嘅反向代理設定,少咗個分號,搞到跨域問題。

最後前端cap圖俾GPT,檢查咗下設定檔,就修好咗。

三個坑踩完,新伺服器終於行得鬱。


三. 數據搬遷,比想像中簡單

舊伺服器嘅容器數據卷匯出,放去新伺服器嘅Docker數據卷就得。

掛載關係由docker-compose.yml決定,所以淨係需要導數據卷,放喺Docker入面,掛載關係由設定檔指定。

呢部分AI俾咗指令,我手動處理。

其實都可以直接俾伺服器賬號密碼,叫佢幫你搬。

AI真係好方便,只要你肯放開權限。


四. Cloudflare免費CDN + 國內加速

伺服器搞掂之後,我上咗Cloudflare嘅免費CDN。

但有個問題:國內訪問有啲慢。

所以我又set咗國內加速節點。

呢度分享一個優選域名加速Workers & Pages項目嘅方案,親測有效。

好多教學教你幫Cloudflare CDN嘅網站set優選域名加速,但好少針對Workers同Pages項目。所以今次就講下,點樣令Workers同Pages項目行得快啲。

事前準備:

你需要確定一個優選域名。可以用自建嘅,或者用網友公益維護嘅。更多優選內容參考:https://blog.cmliussss.com/p/CloudFlare優選

  1. 本教學示範使用嘅優選域名為 visa.com,推薦用呢個:https://cf.090227.xyz/
  2. 你需要一個已經轉入Cloudflare嘅域名(唔可以用雙向解析嘅免費域名)。

Workers項目優選

步驟1:設定自訂域CNAME記錄至優選域名

幫你將會用嘅域名,加一條CNAME類型嘅解析記錄,名稱為你需要嘅自訂域,目標為優選域名。

重要提示:唔好開小黃雲(Cloudflare嘅代理功能)!!!

步驟1. 設置自定義域CNAME至優選域名

步驟2:幫Workers項目加路由

  1. 揀中你嘅域名後,左邊揀Workers路由 → 加路由;
步驟2.1
  1. 路由填入Worker項目最終用嘅自訂域,尾尾一定要加上 /*,Worker揀中對應嘅項目名之後撳保存就得。

注意自訂域末位一定要加上 /*!!!

步驟2.2

Workers項目優選前後對比:

Workers 項目優選前後對比

Pages項目優選

呢個稍微複雜少少,需要用華為雲國際版嘅DNS解析服務。

步驟1:幫Pages項目加自訂域

先幫Pages項目加自訂域,記低CNAME目標域名,等自訂域生效。

步驟1. 先行給Pages項目添加自定義域

步驟2:註冊華為雲國際版DNS

註冊華為雲國際版-雲解析服務DNS(國際版唔需要實名,如果註冊時成日跳去國內版本,請開全局Proxy模式註冊)。

1. 註冊華為雲國際版

設定安全手機(Skip就得)。

2. 設置您的安全手機(跳過即可)

開通華為雲。

3. 開通華為雲

跳去完善信息頁面就代表註冊完成,無視綁定提示就得。

4. 跳轉到完善信息說明註冊已完成

步驟3:加自訂域至雲解析服務DNS

  1. 撳前往雲解析服務DNS,然後撳公網域名;
31
  1. 撳右上角創建公網域名;
32
  1. 填入需要優選嘅Pages自訂域名,然後撳確定;
33
  1. 撳管理解析;
34
  1. 入咗管理解析之後撳加記錄集;
35
  1. 新加一條CNAME記錄,線路類型為全網默認,記錄值為Pages項目分配嘅域名;
36
  1. 再加一條CNAME記錄,線路類型為地域解析 → 中國大陸,記錄值為優選域名;
37
  1. 鼠標指住第一條NS記錄,將4條NS記錄值一一複製出嚟保存好:
ns1.huaweicloud-dns.com.
ns1.huaweicloud-dns.cn.
ns1.huaweicloud-dns.net.
ns1.huaweicloud-dns.org.
38

步驟4:設定自訂域NS記錄至華為雲NS記錄

幫你將會用嘅域名,加4條華為雲NS類型嘅解析記錄,就會生效。

41
42

Pages項目優選前後對比:

Pages 項目優選前後對比

Set完之後,國內訪問速度直接飛起。


五. 窮鬼獨立開發技術棧

最後分享下我目前用嘅技術棧,除咗域名唔使俾錢:

  • 技術棧:Typescript fullstack + hono.js + tanstack router + drizzle + sqlite + better-auth + shadcn UI
  • Code託管:GitHub
  • 數據庫:SQLite WASM(瀏覽器本地存儲)、Cloudflare D1(伺服器端存儲)
  • Auth:Better Auth
  • 電郵:resend + Cloudflare轉發
  • 文件存儲:Cloudflare R2
  • CI/CD:GitHub Action
  • 部署:Cloudflare Workers
  • AI工具:GitHub Copilot(白嫖)
IMG_0202

如果需要開發local-first嘅應用,強烈推薦呢套。瀏覽器SQLite同Cloudflare D1可以共用同一套Drizzle entity同SQL方言,做到好優雅嘅CRDT,甚至瀏覽器同後端重用同一套業務code。

以上code已開源:github.com/monkeyWie/typix


寫喺最後

今次被攻擊,老實講好狼狽。

但回過頭睇,反而係一次難得嘅「被迫升級」。

伺服器換咗,code搬咗,CDN set咗,備案搞咗,安全加固咗。

如果唔係俾人打咗一鑊,呢啲嘢我可能仲會拖三個月。

獨立開發就係咁。

你永遠唔知下一拳從邊度嚟。

但你可以選擇被打低之後,企起身嘅速度。

企得返起身,就係贏。

以上,既然睇到呢度,如果覺得唔錯,隨手like、分享、轉發三連啦,如果想第一時間收到推送,都可以俾我一個星標⭐~多謝你睇我篇文章,我哋,下次見。

/ 作者:可可耐特

/ 投稿或爆料,請聯絡電郵:aoshindragon@163.com


我的網站被人攻擊了。

那天早上醒來,羣友發了一堆消息。

有人截圖,說網站打不開了。

我打開後台一看,好傢伙,CPU 和內存全被打滿了。

很明顯,被人搞了。

圖片

image-20260505131855405
image-20260505130814950

說實話,安全和穩定這一塊,我早就想搞了。

但一直拖着,總覺得"下次再說吧"。

這次倒好,別人幫我做了決定。

擇日不如撞日,開搞。


一. 換服務器,搞CDN,遷代碼

思路很簡單:舊服務器被人盯上了,那就換一台新的。

代碼之前放在 Gitee 上,因為它有免費的 private 倉庫。但最近 GitHub 也有了,索性一起遷過去。

整個流程是這樣的:GitHub 託管代碼 → GitHub Actions 跑 CI/CD → 阿里雲容器鏡像服務 ACR 託管鏡像 → 部署到新服務器。

architecture1

遷完之後,效果立竿見影。

全球部署,1ms 響應。

iShot_2026-05-04_13.33.52
image-20260505131217221

看着這數據,我心想:這不挺簡單的嘛。

然後我就踩坑了。

還是三個。


二. 三個坑,每一個都很離譜

第一個坑:SSH 連不上。

在騰訊雲的防火牆打開了 22 端口,死活連不上。

折騰了半天才發現:騰訊雲那層防火牆打開還不夠,如果你服務器自己也開了防火牆,還得在服務器上再放行一次。

兩層防火牆,兩層配置,缺一個都不行。

image-20260505133647616

第二個坑:域名沒備案,請求被斷開。

這個坑,坑了我整整六個小時。

我有一個域名已經備案了,但想着新服務器就用新域名吧,別跟老的衝突。於是在海外平台免費註冊了一個新域名。

結果呢?525 錯誤,連接莫名被斷開。

image-20260505140304488

排查過程極其痛苦。

一開始用的小米 MiMo 大模型,因為 GPT 和 Claude 額度都限流了。結果一般,沒查出來。

晚上 8 點,GPT 恢復了。我開始手動複製錯誤信息、截圖給它,還是沒排查出來。

最後我搞煩了。

直接把服務器賬號密碼甩給 GPT,讓它進去幫我查。

不到 5 分鐘,關鍵原因出來了。

image-20260505135333315

原來是域名沒備案,騰訊雲好多服務都要求備案,監管越來越嚴。

這類情況確實特殊——國外沒有備案的習慣,所以很多大模型壓根沒想到這一層。我排查了一下午,浪費 6 個小時,真夠煩的。

第三個坑:Caddyfile 配置寫錯。

這個是小米模型寫的反代配置,少了個分號,導致跨域問題。

最後前端截圖給 GPT,檢查了一下配置文件,就修好了。

三個坑踩完,新服務器終於跑起來了。


三. 數據遷移,比想象中簡單

舊服務器的容器數據卷導出,放到新服務器的 Docker 數據卷裏就行。

掛載關係由 docker-compose.yml 決定,所以只用導數據卷,放在 Docker 裏,掛載關係由配置文件指定。

這塊 AI 給了命令,我手動處理的。

其實也可以直接給服務器賬號密碼,讓它幫你遷。

AI 真的夠方便,只要你敢放開權限。


四. Cloudflare 免費 CDN + 國內加速

服務器搞定之後,我上了 Cloudflare 的免費 CDN。

但有個問題:國內訪問有點卡。

所以我又配了國內加速節點。

這裏分享一個優選域名加速 Workers & Pages 項目的方案,親測有效。

很多教程教你給 Cloudflare CDN 的網站設置優選域名加速,但很少有針對 Workers 和 Pages 項目的。所以這期就來講講,怎麼讓 Workers 和 Pages 項目跑得更快。

事前準備:

你需要確定一個優選域名。可以用自建的,也可以用網友公益維護的。更多優選內容參考:https://blog.cmliussss.com/p/CloudFlare優選

  1. 本教程演示使用的優選域名為 visa.com,推薦用這個:https://cf.090227.xyz/
  2. 你需要一個已經轉入 Cloudflare 的域名(不能使用雙向解析的免費域名)。

Workers 項目優選

步驟1:設置自定義域 CNAME 記錄至優選域名

給你將要使用的域名,添加一條 CNAME 類型的解析記錄,名稱為你所需的自定義域,目標為優選域名。

重要提示:不要打開小黃雲(Cloudflare 的代理功能)!!!

步驟1. 設置自定義域CNAME至優選域名

步驟2:給 Workers 項目添加路由

  1. 選中你的域名後,左側選擇 Workers 路由 → 添加路由;
步驟2.1
  1. 路由填入 Worker 項目最終使用的自定義域,末尾必須加上 /*,Worker 選中對應的項目名後點擊保存即可。

注意自定義域末位必須加上 /*!!!

步驟2.2

Workers 項目優選前後對比:

Workers 項目優選前後對比

Pages 項目優選

這個稍微複雜一點,需要用到華為雲國際版的 DNS 解析服務。

步驟1:為 Pages 項目添加自定義域

先給 Pages 項目添加自定義域,記錄 CNAME 目標域名,並等待自定義域生效。

步驟1. 先行給Pages項目添加自定義域

步驟2:註冊華為雲國際版 DNS

註冊華為雲國際版-雲解析服務 DNS(國際版不需要實名,如果註冊時頻繁跳轉國內版本,請打開全局代理模式註冊)。

1. 註冊華為雲國際版

設置安全手機(跳過即可)。

2. 設置您的安全手機(跳過即可)

開通華為雲。

3. 開通華為雲

跳轉到完善信息頁面說明註冊已完成,無視綁定提示即可。

4. 跳轉到完善信息說明註冊已完成

步驟3:添加自定義域至雲解析服務 DNS

  1. 點擊前往雲解析服務 DNS,後點擊公網域名;
31
  1. 點擊右上角創建公網域名;
32
  1. 填入需要優選的 Pages 自定義域名,然後點擊確定;
33
  1. 點擊管理解析;
34
  1. 進入管理解析後點擊添加記錄集;
35
  1. 新添加一條 CNAME 記錄,線路類型為全網默認,記錄值為 Pages 項目分配的域名;
36
  1. 再添加一條 CNAME 記錄,線路類型為地域解析 → 中國大陸,記錄值為優選域名;
37
  1. 鼠標指向第一條 NS 記錄,將 4 條 NS 記錄值一一複製出來保存好:
ns1.huaweicloud-dns.com.
ns1.huaweicloud-dns.cn.
ns1.huaweicloud-dns.net.
ns1.huaweicloud-dns.org.
38

步驟4:設置自定義域 NS 記錄至華為雲 NS 記錄

給你將要使用的域名,添加 4 條華為雲 NS 類型的解析記錄,即可生效。

41
42

Pages 項目優選前後對比:

Pages 項目優選前後對比

配完之後,國內訪問速度直接起飛。


五. 窮鬼獨立開發技術棧

最後分享一下我目前用的技術棧,除了域名分文不掏:

  • 技術棧:Typescript fullstack + hono.js + tanstack router + drizzle + sqlite + better-auth + shadcn UI
  • 代碼託管:GitHub
  • 數據庫:SQLite WASM(瀏覽器本地存儲)、Cloudflare D1(服務端存儲)
  • Auth:Better Auth
  • 郵件:resend + Cloudflare 轉發
  • 文件存儲:Cloudflare R2
  • CI/CD:GitHub Action
  • 部署:Cloudflare Workers
  • AI 工具:GitHub Copilot(白嫖)
IMG_0202

如果需要開發 local-first 的應用,強烈推薦這一套。瀏覽器 SQLite 和 Cloudflare D1 可以共用一套 Drizzle entity 和 SQL 方言,能做到非常優雅的 CRDT,甚至瀏覽器和後端複用同一套業務代碼。

以上代碼已開源:github.com/monkeyWie/typix


寫在最後

這次被攻擊,說實話挺狼狽的。

但回過頭看,反而是一次難得的"被迫升級"。

服務器換了,代碼遷了,CDN 配了,備案搞了,安全加固了。

如果不是被人打了一頓,這些東西我可能還會拖三個月。

獨立開發就是這樣。

你永遠不知道下一拳從哪來。

但你可以選擇被打倒之後,站起來的速度。

站起來了,就是贏。

以上,既然看到這裏了,如果覺得不錯,隨手點個贊、在看、轉發三連吧,如果想第一時間收到推送,也可以給我個星標⭐~謝謝你看我的文章,我們,下次再見。

/ 作者:可可耐特

/ 投稿或爆料,請聯繫郵箱:aoshindragon@163.com