我的網站被人攻擊了。
整理版優先睇
網站被攻擊後,被迫搞咗一波升級:換Server、遷CI/CD、上Cloudflare CDN同國內加速
呢篇文章係由獨立開發者可可耐特寫嘅,佢個網站俾人攻擊,CPU同Memory被打滿,迫住要搞返穩定同安全。佢原本一路拖住「下次先搞」,結果今次俾人幫佢做咗決定。成個過程由換Server、遷代碼到GitHub+Actions+ACR、踩咗三個大坑(SSH連唔到、域名未備案、Caddyfile配置錯),到最後成功上咗Cloudflare免費CDN同國內加速,仲分享咗套免費技術棧。佢嘅結論係:被攻擊好狼狽,但反而促成咗一次「被迫升級」,獨立開發者要識得快速站返起身。
呢篇文嘅價值在於,佢唔單止講點樣一步步搞掂攻擊,仲公開曬佢踩過嘅坑同解決方案,尤其係Cloudflare Workers同Pages項目嘅國內加速方案,好少人講得咁詳細。另外佢推介嘅技術棧(Typescript fullstack + hono.js + SQLite WASM + Cloudflare D1等)對於想慳錢嘅開發者好實用。成個故事有經驗、有反思,係一篇高質實戰分享。
- 被攻擊係壞事,但迫使作者即時升級Server同CI/CD流程,反而令網站更快更穩定
- 新Server用GitHub 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
Cloudflare優選域名加速Workers & Pages參考
作者提供嘅優化方案同公益優選域名列表
開源項目:typix
作者分享嘅全套技術棧代碼,包括Typescript全棧、hono.js、SQLite等
由被攻擊到被迫升級
朝早起身見到羣友話網站打唔開,後台一睇CPU同Memory全滿,好明顯俾人搞咗。作者一直都話「下次先搞」安全穩定,今次終於被迫行動。佢決定換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嘅容器數據卷導出,放落新Server嘅Docker數據卷就得,掛載關係由docker-compose.yml決定。AI俾咗命令,作者手動處理,但其實可以直接俾權限叫AI做。
之後上咗Cloudflare免費CDN,但國內訪問有啲卡,所以要配國內加速節點
- 1 Workers優選:設CNAME指向優選域名(如visa.com),唔開小黃雲,然後加路由時自定義域尾要加/*
- 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複用同一套業務代碼
github.com/monkeyWie/typix
最後佢話,被攻擊好狼狽,但換Server、遷代碼、搞CDN、搞埋備案同安全加固,如果唔係俾人打一獲,呢啲嘢可能拖三個月。獨立開發就係咁,唔知下一拳從邊度嚟,但可以選擇站返起身嘅速度。
站起來了,就是贏
我個網站俾人攻擊咗。 嗰日朝早起身,羣組啲朋友send咗一堆訊息。 有人cap圖,話網站開唔到。 我開咗後台睇下,嘩,CPU同RAM全部爆滿。 好明顯,俾人搞咗。
![]() ![]() 老實講,安全同穩定呢方面,我早就想搞㗎喇。 但係一路拖延,成日諗「下次先啦」。 今次倒好,其他人幫我決定咗。 擇日不如撞日,開搞。 一. 換伺服器,搞CDN,搬code思路好簡單:舊伺服器俾人盯上咗,就換部新嘅。 Code之前放喺Gitee,因為佢有免費private倉庫。但最近GitHub都有咗,索性一齊搬過去。 成個流程係咁:GitHub託管code → GitHub Actions行CI/CD → 阿里雲容器映像服務ACR託管映像 → 部署到新伺服器。 ![]() 搬完之後,效果立竿見影。 全球部署,1ms反應。 ![]() ![]() 睇住呢啲數據,我心諗:呢啲唔係好簡單咩。 然後我就踩坑喇。 仲要三個。 二. 三個坑,每一個都超離譜第一個坑:SSH連唔到。 喺騰訊雲嘅防火牆開咗22 port,死死地連唔到。 搞咗成半日先發現:騰訊雲嗰層防火牆開咗都唔夠,如果你伺服器自己都開咗防火牆,仲要喺伺服器上面再放行一次。 兩層防火牆,兩層設定,缺一個都唔得。 ![]() 第二個坑:域名冇備案,請求被截斷。 呢個坑,累我搞咗成六個鐘。 我有個域名已經備咗案,但諗住新伺服器就用新域名啦,唔好同舊嘅撞。於是喺海外平台免費註冊咗個新域名。 結果呢?525錯誤,連線無端端被截斷。 ![]() 排查過程極之痛苦。 一開始用小米MiMo大模型,因為GPT同Claude嘅額度都限流咗。結果一般,查唔到。 夜晚8點,GPT恢復咗。我開始手動copy錯誤信息、cap圖俾佢,都係查唔到。 最後我搞到好煩。 直接將伺服器賬號密碼掉俾GPT,叫佢入去幫我查。 唔使5分鐘,關鍵原因出咗嚟。 ![]() 原來係域名冇備案,騰訊雲好多服務都要備案,監管越來越嚴。 呢類情況確實特殊——國外冇備案嘅習慣,所以好多大模型根本冇諗到呢一層。我查咗成個下晝,浪費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優選
Workers項目優選 步驟1:設定自訂域CNAME記錄至優選域名 幫你將會用嘅域名,加一條CNAME類型嘅解析記錄,名稱為你需要嘅自訂域,目標為優選域名。 重要提示:唔好開小黃雲(Cloudflare嘅代理功能)!!! ![]() 步驟2:幫Workers項目加路由
![]()
注意自訂域末位一定要加上 ![]() Workers項目優選前後對比: ![]() Pages項目優選 呢個稍微複雜少少,需要用華為雲國際版嘅DNS解析服務。 步驟1:幫Pages項目加自訂域 先幫Pages項目加自訂域,記低CNAME目標域名,等自訂域生效。 ![]() 步驟2:註冊華為雲國際版DNS 註冊華為雲國際版-雲解析服務DNS(國際版唔需要實名,如果註冊時成日跳去國內版本,請開全局Proxy模式註冊)。 ![]() 設定安全手機(Skip就得)。 ![]() 開通華為雲。 ![]() 跳去完善信息頁面就代表註冊完成,無視綁定提示就得。 ![]() 步驟3:加自訂域至雲解析服務DNS
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]() 步驟4:設定自訂域NS記錄至華為雲NS記錄 幫你將會用嘅域名,加4條華為雲NS類型嘅解析記錄,就會生效。 ![]() ![]() Pages項目優選前後對比: ![]() Set完之後,國內訪問速度直接飛起。 五. 窮鬼獨立開發技術棧最後分享下我目前用嘅技術棧,除咗域名唔使俾錢:
![]() 如果需要開發local-first嘅應用,強烈推薦呢套。瀏覽器SQLite同Cloudflare D1可以共用同一套Drizzle entity同SQL方言,做到好優雅嘅CRDT,甚至瀏覽器同後端重用同一套業務code。 以上code已開源:github.com/monkeyWie/typix 寫喺最後 今次被攻擊,老實講好狼狽。 但回過頭睇,反而係一次難得嘅「被迫升級」。 伺服器換咗,code搬咗,CDN set咗,備案搞咗,安全加固咗。 如果唔係俾人打咗一鑊,呢啲嘢我可能仲會拖三個月。 獨立開發就係咁。 你永遠唔知下一拳從邊度嚟。 但你可以選擇被打低之後,企起身嘅速度。 企得返起身,就係贏。 以上,既然睇到呢度,如果覺得唔錯,隨手like、分享、轉發三連啦,如果想第一時間收到推送,都可以俾我一個星標⭐~多謝你睇我篇文章,我哋,下次見。
|
我的網站被人攻擊了。 那天早上醒來,羣友發了一堆消息。 有人截圖,說網站打不開了。 我打開後台一看,好傢伙,CPU 和內存全被打滿了。 很明顯,被人搞了。
![]() ![]() 說實話,安全和穩定這一塊,我早就想搞了。 但一直拖着,總覺得"下次再說吧"。 這次倒好,別人幫我做了決定。 擇日不如撞日,開搞。 一. 換服務器,搞CDN,遷代碼思路很簡單:舊服務器被人盯上了,那就換一台新的。 代碼之前放在 Gitee 上,因為它有免費的 private 倉庫。但最近 GitHub 也有了,索性一起遷過去。 整個流程是這樣的:GitHub 託管代碼 → GitHub Actions 跑 CI/CD → 阿里雲容器鏡像服務 ACR 託管鏡像 → 部署到新服務器。 ![]() 遷完之後,效果立竿見影。 全球部署,1ms 響應。 ![]() ![]() 看着這數據,我心想:這不挺簡單的嘛。 然後我就踩坑了。 還是三個。 二. 三個坑,每一個都很離譜第一個坑:SSH 連不上。 在騰訊雲的防火牆打開了 22 端口,死活連不上。 折騰了半天才發現:騰訊雲那層防火牆打開還不夠,如果你服務器自己也開了防火牆,還得在服務器上再放行一次。 兩層防火牆,兩層配置,缺一個都不行。 ![]() 第二個坑:域名沒備案,請求被斷開。 這個坑,坑了我整整六個小時。 我有一個域名已經備案了,但想着新服務器就用新域名吧,別跟老的衝突。於是在海外平台免費註冊了一個新域名。 結果呢?525 錯誤,連接莫名被斷開。 ![]() 排查過程極其痛苦。 一開始用的小米 MiMo 大模型,因為 GPT 和 Claude 額度都限流了。結果一般,沒查出來。 晚上 8 點,GPT 恢復了。我開始手動複製錯誤信息、截圖給它,還是沒排查出來。 最後我搞煩了。 直接把服務器賬號密碼甩給 GPT,讓它進去幫我查。 不到 5 分鐘,關鍵原因出來了。 ![]() 原來是域名沒備案,騰訊雲好多服務都要求備案,監管越來越嚴。 這類情況確實特殊——國外沒有備案的習慣,所以很多大模型壓根沒想到這一層。我排查了一下午,浪費 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優選
Workers 項目優選 步驟1:設置自定義域 CNAME 記錄至優選域名 給你將要使用的域名,添加一條 CNAME 類型的解析記錄,名稱為你所需的自定義域,目標為優選域名。 重要提示:不要打開小黃雲(Cloudflare 的代理功能)!!! ![]() 步驟2:給 Workers 項目添加路由
![]()
注意自定義域末位必須加上 ![]() Workers 項目優選前後對比: ![]() Pages 項目優選 這個稍微複雜一點,需要用到華為雲國際版的 DNS 解析服務。 步驟1:為 Pages 項目添加自定義域 先給 Pages 項目添加自定義域,記錄 CNAME 目標域名,並等待自定義域生效。 ![]() 步驟2:註冊華為雲國際版 DNS 註冊華為雲國際版-雲解析服務 DNS(國際版不需要實名,如果註冊時頻繁跳轉國內版本,請打開全局代理模式註冊)。 ![]() 設置安全手機(跳過即可)。 ![]() 開通華為雲。 ![]() 跳轉到完善信息頁面說明註冊已完成,無視綁定提示即可。 ![]() 步驟3:添加自定義域至雲解析服務 DNS
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]() 步驟4:設置自定義域 NS 記錄至華為雲 NS 記錄 給你將要使用的域名,添加 4 條華為雲 NS 類型的解析記錄,即可生效。 ![]() ![]() Pages 項目優選前後對比: ![]() 配完之後,國內訪問速度直接起飛。 五. 窮鬼獨立開發技術棧最後分享一下我目前用的技術棧,除了域名分文不掏:
![]() 如果需要開發 local-first 的應用,強烈推薦這一套。瀏覽器 SQLite 和 Cloudflare D1 可以共用一套 Drizzle entity 和 SQL 方言,能做到非常優雅的 CRDT,甚至瀏覽器和後端複用同一套業務代碼。 以上代碼已開源:github.com/monkeyWie/typix 寫在最後 這次被攻擊,說實話挺狼狽的。 但回過頭看,反而是一次難得的"被迫升級"。 服務器換了,代碼遷了,CDN 配了,備案搞了,安全加固了。 如果不是被人打了一頓,這些東西我可能還會拖三個月。 獨立開發就是這樣。 你永遠不知道下一拳從哪來。 但你可以選擇被打倒之後,站起來的速度。 站起來了,就是贏。 以上,既然看到這裏了,如果覺得不錯,隨手點個贊、在看、轉發三連吧,如果想第一時間收到推送,也可以給我個星標⭐~謝謝你看我的文章,我們,下次再見。
|





























