
Caddy 是一套開源的網頁伺服器,最常被拿來當「反向代理」:它站在你的程式前面,替程式接收來自網路的連線,還會自動幫網站申請並續期 HTTPS 憑證。所以回答標題那個問題:有一台主機、有固定 IP、裝好 Caddy,離「別人打網址就看得到你的程式」已經很近,但還差幾件事要湊齊:一個指向這個 IP 的網域、讓 80 和 443 這兩個 port 從外面打得進來(路由器、防火牆、ISP 三關都要過)、程式本身只對內開放,以及一台能長期穩定開著的主機。
這篇用初學者的角度,把整條路從頭講一遍。你會看到 port 是什麼、80 和 443 為什麼特別、ISP 是誰、為什麼有人明明照教學做了卻怎樣都連不進來,最後再談公司到底該不該自己架主機。每個新名詞第一次出現時,都會配一個生活化的比喻。
先說一下我們為什麼會寫這題。我們公司自己幾乎所有系統(官網、SalesKing、會員中樞等約 40 個專案)都放在雲端部署平台上,官網前面再擋一層 Cloudflare。每天處理的就是「程式怎麼安全地被外面看到」這件事,所以對新手卡在哪裡特別有感:卡關的地方幾乎都在 Caddy 之外。
下面這張表先把整篇的答案濃縮起來,三十秒看完就知道自己還缺哪一塊。
上線條件 | 它在做什麼 | 生活比喻 | 沒做好會怎樣 |
|---|---|---|---|
網域與 DNS A 記錄 | 把好記的名字(example.com)對應到你的 IP | 大樓名稱登記在查號台 | 別人只能打一串數字,Caddy 也拿不到公開憑證 |
80 與 443 打得進來 | 讓瀏覽器的連線抵達你的主機 | 大樓正門與掛號信收件口 | 瀏覽器轉圈圈後顯示連線逾時 |
路由器 port forwarding 與防火牆 | 把外面來的連線轉給對的那台機器 | 警衛知道訪客要往哪一樓帶 | 連線停在路由器,主機根本沒收到 |
ISP 給的是真正的公網 IP | 確認你的 IP 在網路上是唯一、可被找到的 | 門牌是你家獨有的,沒有和整條街共用 | 共用 IP(CGNAT)時,外面的人找不到你 |
程式只聽 127.0.0.1 | 程式只接 Caddy 轉來的連線 | 員工只在辦公室裡辦公,訪客一律先經過櫃台 | 掃描機器人繞過 Caddy 直接打你的程式 |
五個條件裡,Caddy 只負責最後一段的「櫃台工作」。其他四個條件,一個屬於網域商,三個屬於網路線那一端。理解這個分工之後,後面所有的設定都會變得很好懂。
Caddy 是什麼?用一棟大樓的櫃台來理解
先給一句話的定義:Caddy 是一個用 Go 語言寫成的網頁伺服器與反向代理,特色是設定檔很短,而且預設就會自動開啟 HTTPS。
網路上的名詞很多,我們乾脆把整台主機想成一棟商辦大樓,所有角色都能找到對應:
網路名詞 | 大樓比喻 | 一句話說明 |
|---|---|---|
IP 位址 | 大樓的地址 | 網路上找到這台主機的號碼,例如 203.0.113.10 |
Port(連接埠) | 大樓裡的房間號碼 | 同一台主機上,不同服務各自佔一個號碼,範圍 0 到 65535 |
網域(domain) | 大樓的名稱 | example.com 比一串數字好記,要花錢跟網域商註冊 |
DNS | 查號台 | 瀏覽器拿著大樓名稱去問:這棟在哪個地址? |
Caddy | 一樓櫃台兼總機 | 所有訪客先到櫃台,櫃台查好對象再轉到樓上房間 |
你的程式 | 樓上某間辦公室 | 例如跑在 3000 號房的 Node.js 或 Python 服務 |
ISP | 幫整棟樓接水接電的公司 | 中華電信 HiNet、台灣大寬頻、遠傳、凱擘大寬頻這類網路業者 |
用這個比喻來看「反向代理」就很直覺了。訪客(瀏覽器)只認得大樓正門,他不知道也不需要知道你的程式在幾號房。Caddy 坐在櫃台,收到「我要找 example.com」的訪客,就把他帶到 3000 號房;收到「我要找 api.example.com」,就帶到 8080 號房。對外只有一個門口,對內可以有很多間辦公室。
Caddy 在市場上算是小眾但成長中的選擇。W3Techs 的網頁伺服器統計寫得很清楚:在已知伺服器軟體的網站裡,Nginx 大約佔 30.8%,Caddy 大約 1.1%。份額不大,可是開發者社群很活躍,Caddy 的 GitHub 有七萬多顆星,2026 年 10 月初才剛釋出 v2.11.7,更新頻率相當穩定。
它被新手喜歡的原因很單純:同樣是「把網域轉給本機 3000 port 並開 HTTPS」,Caddy 的設定只要三行,其他伺服器常常要寫二三十行,再另外裝一套申請憑證的工具。少寫一行設定,就少一個出錯的地方。
如果你對「程式跑在容器裡」這件事還不熟,可以先看Docker 是什麼那篇。Caddy 本身也很常和 Docker 一起用,一個容器跑 Caddy、其他容器跑你的程式。
80 和 443 是什麼?網路世界的兩個標準門口
直接講答案:80 是 HTTP(沒加密)的預設 port,443 是 HTTPS(有加密)的預設 port。瀏覽器打 http:// 開頭的網址時,會自動去敲對方的 80 號門;打 https:// 開頭時,會自動去敲 443 號門。這就是為什麼你平常上網從來不用輸入 port 號碼。

回到大樓比喻:80 和 443 就像全世界約定好的「正門」與「掛號信收件口」。你的程式在本機跑在 3000 port 時,等於開在 3000 號房,訪客要打 http://你的IP:3000 才找得到。這樣能用,但很難看,也沒有加密,多數公司網路和瀏覽器還會對非標準 port 比較警戒。
Caddy 的工作就是佔住 80 和 443 這兩個正門,把訪客轉進 3000 號房。它還會做一件很貼心的事:有人從 80 進來(沒加密的 http),Caddy 會自動把他導到 443(加密的 https)。
為什麼 443 幾乎是必備?因為現在的網路已經預設全加密。Let's Encrypt 在 2025 年底的年度信提到,他們剛成立時網路上只有 39% 的頁面載入有加密,現在世界上許多地區已經超過 95%。瀏覽器對沒加密的網站會直接標示「不安全」,表單、登入、付款這些功能等於不能用。
下面這張圖是一個訪客從輸入網址到看到畫面,連線會經過的每一關。任何一關沒開,就會卡住:
看懂這張圖,除錯就有方向了。Caddy 只住在 F 這一格,前面的 B 到 E 都在它的管轄範圍外。新手最常遇到的狀況是 F 設得完美,訪客卻在 C 或 D 就被擋下來。
順帶一提,我們自家的產品也是照這個分工在跑。像恆遠會員中樞系統(讓多個產品共用註冊、登入、訂閱與權限)就放在雲端部署平台上,HTTPS 憑證和對外的門口交給平台處理,工程師只管程式本身。這也是後面會談到的替代方案之一。
ISP 是什麼?為什麼家裡的網路常常讓 Caddy 白忙
ISP(Internet Service Provider,網路服務供應商)就是幫你拉網路線、給你 IP 的公司。在台灣,中華電信 HiNet、台灣大寬頻、遠傳、凱擘大寬頻都屬於 ISP。你每個月繳的網路費,就是付給它們的。
ISP 會決定三件影響架站的事:你的 IP 會不會變、你的 IP 是不是獨享、它讓不讓外面的連線進來。這三件事 Caddy 都改變不了。

浮動 IP 與固定 IP
浮動 IP 就像每隔一段時間被換一次門牌號碼的房子。家用寬頻多半是浮動 IP,數據機重開、斷線重連都可能換一個號碼。DNS 記錄卻還指著舊門牌,訪客就找不到你。固定 IP 則是門牌永遠不變,DNS 設一次就好。固定 IP 通常需要另外申請,或改成企業方案,各家條件與費用不同,以 ISP 客服的回覆為準。
CGNAT:整條街共用一個門牌
比浮動 IP 更麻煩的是 CGNAT(Carrier-Grade NAT,電信等級網址轉換)。用比喻來說,ISP 為了省 IPv4 位址,讓一整條街的住戶共用同一個大門牌,再在 ISP 那邊自己分配。從外面看,你和鄰居長得一模一樣,訪客敲門時,ISP 根本不知道要送給哪一戶。
CGNAT 使用的位址段是 RFC 6598 規定的 100.64.0.0 到 100.127.255.255。判斷方法很簡單:登入路由器看 WAN(外網)IP,再用手機連家裡 Wi-Fi 去搜尋「what is my ip」。兩個數字一樣,代表你拿到的是公網 IP。路由器上顯示 192.168 或 10 開頭,代表前面還有一層 NAT,通常是 ISP 給的數據機,請 ISP 改成橋接模式多半就能解決;顯示 100.64 到 100.127 開頭,就是 CGNAT,port forwarding 怎麼設都沒用。手機行動網路(4G、5G)幾乎都是這種情況,所以用手機分享網路架站基本上行不通。
ISP 可能擋 80 或 443
有些 ISP 的家用方案會擋住從外面進來的 80 port,目的是避免一般住戶在家裡經營網站或被駭客當跳板。這個問題很老:iT 邦幫忙上 2012 年就有人在問ADSL 從外部連不進 80 port,十幾年後同類型的求救文還是每年出現。各家政策會改,最準的方法是自己測:請朋友用手機行動網路連你的 IP,或用線上的 port 檢查工具看 80 和 443 是否開放。
你的網路狀況 | 怎麼判斷 | 能不能直接架站 | 建議做法 |
|---|---|---|---|
固定的公網 IP | 路由器 WAN IP 等於查到的外網 IP,且長期不變 | 可以 | 設 DNS A 記錄、開 port forwarding,照本文第四段做 |
浮動的公網 IP | WAN IP 等於外網 IP,但重開機後會變 | 勉強可以 | 用 DDNS 自動更新 DNS,或申請固定 IP |
CGNAT 共用 IP | WAN IP 是 100.64 到 100.127 開頭,或和外網 IP 不同 | 不行 | 改用 Cloudflare Tunnel 或租雲端主機 |
80 或 443 被 ISP 擋 | 其他 port 連得到,唯獨 80 或 443 連不到 | 憑證申請會失敗 | 問 ISP 能否開放,或改用 DNS 驗證、通道服務 |
網路痛點討論區最常見的劇情是這樣:照著英文教學把 Caddy 裝好、Caddyfile 也寫對了,日誌卻一直出現憑證申請失敗。花了一個週末重灌系統,最後才發現路由器上看到的 IP 是 100 開頭。這類求救在 Reddit 的 r/selfhosted 與各種自架社群幾乎天天都有,問題的根源全在 ISP 那一端。
實際動手:從安裝 Caddy 到寫好 Caddyfile
假設你已經確認自己有固定公網 IP,而且 80 和 443 沒被擋,整個流程大約 30 分鐘就能做完。以下以 Ubuntu 或 Debian 主機為例,安裝指令照 Caddy 官方安裝文件。
第一步,先在網域商(或 Cloudflare)的 DNS 設定裡,新增一筆 A 記錄:名稱填 @ 或子網域,值填你的固定 IP。設好之後在主機上確認它真的指過來:
dig +short example.com
# 應該回傳你的固定 IP,例如 203.0.113.10第二步,安裝 Caddy。官方提供的套件庫會自動處理更新,裝完後 Caddy 會以系統服務的方式在背景執行:
sudo apt install --yes debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy第三步,編輯設定檔 /etc/caddy/Caddyfile。下面這三行就是整篇文章的主角:把 example.com 的訪客,轉給本機 3000 port 上的程式。
example.com {
reverse_proxy 127.0.0.1:3000
}想讓同一台主機服務兩個程式?再加一段就好,櫃台會依照訪客要找的名字分流:
example.com {
reverse_proxy 127.0.0.1:3000
}
api.example.com {
reverse_proxy 127.0.0.1:8080
}第四步,開主機防火牆、設路由器。主機在公司或家裡的路由器後面時,要在路由器的 port forwarding(虛擬伺服器)頁面,把外部的 80 與 443 轉到這台主機的內網 IP。主機防火牆則只放行這兩個 port 加上 SSH:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
journalctl -u caddy -f # 看憑證申請的即時日誌步驟 | 要做什麼 | 怎麼驗收 | 常見卡點 |
|---|---|---|---|
DNS A 記錄 | 網域指向固定 IP | dig +short 回傳你的 IP | DNS 生效需要幾分鐘到幾小時 |
安裝 Caddy | 用官方套件庫安裝 | systemctl status caddy 顯示 active | 主機上已有其他程式佔用 80 或 443 |
寫 Caddyfile | 網域 + reverse_proxy | caddy validate 沒有錯誤 | 大括號或縮排打錯 |
開 port | 路由器轉發 + 主機防火牆 | 用手機行動網路打開網址 | CGNAT、ISP 擋 port、雲端主機的安全群組沒開 |
確認 HTTPS | 等 Caddy 自動申請憑證 | 網址列出現鎖頭,日誌顯示 certificate obtained | 80 從外面連不到,驗證失敗 |
最後一步驗收記得用手機行動網路測試,別用同一個 Wi-Fi。很多路由器不支援「從內網連自己的外網 IP」(一般稱為 NAT loopback 或 hairpin),內網測試失敗不代表外面連不到,內網測成功也不代表外面一定連得到。
Caddy 自動 HTTPS 怎麼做到的?Let's Encrypt 在背後做什麼
一句話:Caddy 會自動向免費的憑證機構(預設是 Let's Encrypt,失敗時改用 ZeroSSL)證明「這個網域真的是你的」,拿到憑證後裝好,快到期前再自動續期。整個過程你不用下任何指令。
HTTPS 憑證可以想成一張「大樓名稱的公證書」。瀏覽器看到公證書,才相信 example.com 這棟樓確實是你的,連線也才會加密。以前申請一張要花錢、要手動上傳檔案、每年續約,忘了續就整站跳紅色警告。Let's Encrypt 把這件事變成免費又自動化,現在服務的網站已經從一年前的 4.92 億成長到 7.62 億(同樣出自上面那封年度信)。
Caddy 證明網域所有權的方法叫 ACME 驗證,常用的有三種。Caddy 官方的自動 HTTPS 文件把條件列得很清楚:網域的 A 記錄要指向主機、80 和 443 要從外面打得進來、Caddy 要能使用這兩個 port、存放憑證的資料夾要能寫入且不會被清掉。
驗證方式 | 怎麼運作 | 需要開的 port | 適合的情況 |
|---|---|---|---|
HTTP 驗證 | 憑證機構從 80 port 來讀一個暫時檔案 | 80 | 一般情況,Caddy 預設會用 |
TLS-ALPN 驗證 | 憑證機構在 443 port 上做一次特殊的握手 | 443 | 80 被擋但 443 開著 |
DNS 驗證 | 在 DNS 加一筆暫時的 TXT 記錄來證明 | 不需要對外開 port | ISP 擋 port、內網服務、要申請萬用字元憑證;需要另外裝對應 DNS 業者的 Caddy 外掛 |
關於憑證,2026 年有兩個新變化值得知道。第一,Let's Encrypt 宣布會把憑證效期從 90 天縮短,2027 年 2 月起預設改為 64 天,2028 年 2 月再縮到 45 天,這是整個憑證產業依照 CA/Browser Forum 規範一起調整的。用 Caddy 的人幾乎不用煩惱,因為續期本來就是自動的;手動管理憑證的系統就要開始檢查自動化流程。
第二,很多人會問:「我只有固定 IP、沒有網域,能不能直接拿憑證?」Let's Encrypt 在 2026 年 1 月正式開放 IP 位址憑證,但規定只能用短效版本,效期大約 160 小時(六天多一點),理由是 IP 很容易換手。Caddy 遇到純 IP 的網址,預設會用自己簽的內部憑證,訪客的瀏覽器會跳出「不安全」警告。結論很實際:一年幾百元買個網域,比折騰 IP 憑證省事太多,網域怎麼挑可以參考企業網域怎麼選與註冊。
還有一個常被忽略的坑:用 Docker 跑 Caddy 時,如果沒有把資料夾掛到外面保存,每次重建容器都會重新申請憑證。重複申請太多次會撞到 Let's Encrypt 的頻率限制,網站可能好幾天拿不到新憑證。
安全性:程式只聽 127.0.0.1,門只開 80 和 443
最重要的一條規則:你的程式應該只監聽 127.0.0.1,讓 Caddy 當唯一的對外門口。
127.0.0.1 是「本機自己」的特殊位址,只有同一台主機上的程式連得到。0.0.0.0 則代表「所有網路介面都接受」,外面的人只要知道 port 號碼就能直接連進來。很多框架的開發模式預設綁 0.0.0.0,新手在本機開發時不會發現差別,一上線就等於在大樓側面多開了一扇沒有警衛的門。
這扇側門很快就會被找到。網路上隨時有大量自動化程式在掃描整個 IPv4 空間,看哪個 IP 開了哪些 port。Palo Alto Networks 的 Unit 42 在 2021 年做過一次蜜罐實驗:故意把 320 台有弱點的服務放到公開雲上,80% 在 24 小時內就被入侵,一週內全部淪陷。實驗距今幾年了,數字會變動,可是「上線就被掃」的現象只會更普遍。
Port | 用途 | 該不該對外開 | 說明 |
|---|---|---|---|
80 | HTTP | 開(給 Caddy) | 用來申請憑證與自動導向 HTTPS |
443 | HTTPS | 開(給 Caddy) | 網站的正門 |
22 | SSH 遠端登入 | 限定來源 IP,或只用金鑰登入 | 關掉密碼登入,暴力破解每天都在發生 |
3000、8080 等 | 你的程式 | 不開 | 讓程式只聽 127.0.0.1,由 Caddy 轉送 |
3306、5432、27017 | MySQL、PostgreSQL、MongoDB | 絕對不開 | 資料庫直接暴露是外洩事件最常見的起點 |
6379 | Redis | 絕對不開 | 預設沒有密碼,被掃到就可能被植入挖礦程式 |
以 Node.js 為例,把 app.listen(3000) 改成 app.listen(3000, '127.0.0.1'),就把側門鎖起來了。Python 的 uvicorn 用 --host 127.0.0.1,Docker 則把 -p 3000:3000 寫成 -p 127.0.0.1:3000:3000。這一行的差別,決定了你的程式是躲在櫃台後面,還是直接站在街上。
綁 127.0.0.1 只是第一層。主機上還有 SSH、資料庫和 Docker 發布的 port,要讓「只開 80 和 443」真的成立,還需要一道預設拒絕的主機防火牆。為什麼需要、ufw 怎麼設、Docker 為什麼會繞過它,完整寫在伺服器防火牆是什麼。
AI 工具普及之後,這個問題被放大了。很多人用 AI 幫忙寫出一個能動的服務,順手就丟上網,結果整個管理介面都暴露在外。中小企業 AI agent 部署資安指南整理過真實的暴露事件,金鑰外洩的路徑可以再看Zeabur 資安事件白話拆解。
我們的判斷很直接:對外營業的服務,安全防線要假設「明天就會被掃到」來設計。Caddy 幫你把 HTTPS 這一關顧好,剩下的 port 管理、系統更新、備份,仍然是主機主人的責任。
Caddy 跟 Nginx 怎麼選?新手與團隊的判斷方式
簡單講:個人專案、小團隊、想快點上線,選 Caddy;團隊已經有 Nginx 經驗,或需要大量現成的設定範例與外掛,選 Nginx。兩個都是成熟的工具,挑錯也不會毀掉專案。
比較項目 | Caddy | Nginx |
|---|---|---|
設定方式 | Caddyfile,反向代理三行就能完成 | nginx.conf,語法較長,要理解 server、location 區塊 |
HTTPS | 預設自動申請與續期 | 要另外裝 Certbot 等工具並設定排程 |
市佔率(W3Techs) | 約 1.1% | 約 30.8% |
中文教學資源 | 較少,多數要看英文官方文件 | 非常多,遇到問題幾乎都搜得到答案 |
效能 | 一般網站與中小流量綽綽有餘 | 極高流量場景的調校經驗更豐富 |
擴充方式 | 要重新編譯加入外掛(例如 DNS 驗證) | 模組生態龐大,多數雲端與面板都內建支援 |
適合誰 | 第一次架站、小團隊、內部工具、多個小服務 | 已有維運人員、大型網站、需要細緻調校的團隊 |
我們的看法是,對多數中小企業來說,網頁伺服器選哪一套的影響,遠比「主機放在哪裡、有沒有人顧」小。花一個月比較 Caddy 和 Nginx 的效能差異,還不如花一個下午把備份與監控設好。
如果你的服務會越長越多(十幾個程式、需要自動擴充),那時候要談的就是容器編排了,可以先看K3s 是什麼,了解輕量版 Kubernetes 怎麼接手這些工作。
沒有固定 IP 怎麼辦?三種替代方案
沒有固定 IP、遇到 CGNAT、或 ISP 擋 port 時,可以從三條路裡挑一條:Cloudflare Tunnel、租一台雲端主機(VPS)、或用部署平台(PaaS)。三條路都能讓程式被外面看到,差在費用、控制權和要顧的東西多寡。
Cloudflare Tunnel 的原理和一般架站相反。一般架站是「開門等訪客進來」,Tunnel 則是你的主機主動打一通電話給 Cloudflare,之後訪客的連線就沿著這條電話線送回來。主機不用開任何對外 port,CGNAT 也擋不住它。Cloudflare 官方文件有完整的安裝說明,基本功能免費,條件是網域的 DNS 要交給 Cloudflare 管。
租雲端主機(VPS) 等於直接在網路上租一間有固定門牌的房間,每台都附公網 IP,80 和 443 也不會被擋,Caddy 照本文第四段的步驟就能跑。主機類型怎麼挑,可以看網站主機怎麼選那篇的六種類型比較。
部署平台(PaaS) 則是連主機都不用顧,把程式碼交給平台,它幫你處理 HTTPS、網域、重啟與擴充。我們自己的系統大多跑在這類平台上,五大 PaaS 平台比較與Zeabur 評價整理了實際用過的心得。
方案 | 每月成本概念 | 需要固定 IP 嗎 | 你要顧的事 | 適合誰 |
|---|---|---|---|---|
自有主機 + Caddy | 電費與網路費,固定 IP 可能要加價 | 需要 | 硬體、停電、網路、更新、備份全部自己來 | 學習用、內網工具、已有機房的公司 |
自有主機 + Cloudflare Tunnel | 基本功能免費 | 不需要 | 主機穩定度與更新 | CGNAT 用戶、想讓家中或辦公室的服務被外面看到 |
VPS + Caddy | 小規格每月幾百元起 | 附公網 IP | 系統更新、資安、備份 | 想要完整控制權的開發者與小團隊 |
PaaS 部署平台 | 依用量計費,小專案每月幾百元 | 不需要 | 幾乎只剩程式本身 | 想專心做產品、沒有專職維運的團隊 |
Cloudflare 除了 Tunnel,還能在主機前面擋一層快取與防護。主機偶爾掛掉時訪客仍看得到頁面的做法,寫在Cloudflare 救援機制實戰。只是想從外面連回公司或家裡的電腦(而非公開網站),用遠端連線工具更合適,可以參考Mac 對 Mac 遠端連線指南。
公司要自己架主機,還是交給雲端?老闆的判斷清單
給中小企業老闆的結論:對外營業的正式服務,優先放雲端;辦公室那台主機適合跑內部工具、測試環境與學習。
技術上,一台主機加固定 IP 加 Caddy 確實能撐起一個網站。問題出在技術以外:颱風天停電、大樓網路維修、硬碟老化、唯一懂設定的同事離職,任何一件都會讓網站停擺。雲端主機與部署平台的價值,就是把這些風險攤給專門處理它們的人。
判斷項目 | 自己架(辦公室主機) | 交給雲端(VPS 或 PaaS) |
|---|---|---|
停電與斷網 | 要自備 UPS、備援線路 | 機房有多路電力與網路 |
誰在半夜處理當機 | 公司內部同事 | 平台監控 + 你的工程師或廠商 |
前期成本 | 主機一次買斷,固定 IP 可能要加價 | 幾乎為零,按月付費 |
資料放哪裡 | 完全在公司內 | 在雲端業者機房,要確認合約與地區 |
擴充速度 | 要買硬體 | 幾分鐘內升級規格 |
適合的服務 | 內部 ERP 測試機、檔案分享、學習環境 | 官網、客戶入口、會員系統、任何對外收錢的服務 |
評估時可以用一個簡單的問題:「這個服務停掉一天,公司會損失多少?」答案是幾乎沒影響,在辦公室架、拿來練功都很好;答案是客戶打電話來罵、訂單進不來,就該交給有人顧的地方。
另一種很常見的情況:程式是用 AI 工具做出來的,在自己電腦上跑得很順,想直接放上網給客戶用。能跑和能安全上線中間還隔著一段距離,Vibe Coding 做出來的 App 能直接上線嗎那篇有工程師角度的完整檢查。你的程式已經有雛形、卡在上線這一步,我們很樂意幫你做一次上線前的健檢,看看哪些地方要先補起來。
上線前 10 項自我檢查清單
1. 網域 A 記錄已指向固定 IP(dig 驗證過)。2. 用手機行動網路測過 80 與 443 都連得到。3. 路由器 WAN IP 等於外網 IP,沒有卡在 CGNAT。4. 程式只監聽 127.0.0.1。5. 主機防火牆只開 22、80、443。6. SSH 已關閉密碼登入。7. Caddy 的資料夾有保存,重啟不會重新申請憑證。8. 資料庫 port 沒有對外。9. 有每日備份,而且實際還原過一次。10. 有人會收到當機通知。十項有任何一項答不出來,先處理它再上線。
如果評估完決定交給專業團隊,從規格到部署怎麼談,可以先讀客製化網站開發完整指南。已經在跑的網站想補強憑證與備份,WordPress 網站被駭怎麼辦裡的 SSL 與備份章節同樣適用。
ℹ️我們怎麼看
架站這件事正在快速往兩端分化:一端是 Caddy、Cloudflare Tunnel 這類工具讓個人越來越容易把程式公開,另一端是部署平台把 HTTPS、擴充、監控全部收進去。我們判斷 3 年後,中小企業幾乎不會再為對外服務自己買主機,辦公室主機會退回內部工具與資料備份的角色。我們自己的系統也是這樣選的:工程時間要花在產品上,門口交給專門顧門的人。對老闆而言,判斷工具就是前面那個問題:「這個服務停一天會損失多少?」損失越大,越該交給有人 24 小時顧的地方。
ℹ️我們做過這件事
這篇講的分工方式,就是我們每天在用的:公司幾乎所有系統(官網、SalesKing、會員中樞等約 40 個專案)都放在雲端部署平台上,官網前面再加一層 Cloudflare,這些經驗也用在我們累計 40+ 企業客製案的落地上。看到這裡,如果你也在想「我們公司的系統該放哪裡、怎麼上線才安全」,我們很樂意聽你聊聊現在的情況,一起看看從哪一塊開始最划算。
QCaddy 是什麼?
Caddy 是一套用 Go 語言寫的開源網頁伺服器與反向代理。它站在你的程式前面接收網路連線,再轉給本機上的程式,最大特色是預設就會自動向 Let's Encrypt 申請並續期 HTTPS 憑證,設定檔通常只要幾行。
Q有固定 IP 和主機,裝了 Caddy 就能架站嗎?
還差幾個條件:要有網域並設好 DNS A 記錄指向這個 IP、80 和 443 從外面打得進來(路由器 port forwarding、主機防火牆、ISP 都沒擋)、程式只監聽 127.0.0.1,以及主機能長期穩定開著。Caddy 只負責最後的轉送與 HTTPS。
Q80 port 和 443 port 是什麼?
80 是 HTTP(未加密)的預設連接埠,443 是 HTTPS(加密)的預設連接埠。瀏覽器打 http 網址會自動連 80,打 https 會自動連 443,所以平常上網不用輸入 port 號碼。Caddy 會佔用這兩個 port,並把 80 的訪客自動導到 443。
QISP 是什麼?會影響架站嗎?
ISP 是網路服務供應商,也就是幫你拉網路、給你 IP 的公司,例如中華電信 HiNet、台灣大寬頻、遠傳、凱擘大寬頻。它決定你的 IP 是浮動還是固定、是否和別人共用(CGNAT),也可能擋住外部連進來的 80 或 443,這些都會直接影響能不能架站。
Q沒有網域,只用 IP 可以開 HTTPS 嗎?
Let's Encrypt 在 2026 年 1 月正式開放 IP 位址憑證,但只提供約 160 小時的短效憑證。Caddy 對純 IP 預設使用自簽的內部憑證,訪客瀏覽器會跳警告。實務上買一個網域最省事。
Q沒有固定 IP 或遇到 CGNAT 怎麼辦?
可以用 Cloudflare Tunnel 讓主機主動連出去、不用開 port;或租一台附公網 IP 的雲端主機(VPS)再裝 Caddy;也可以直接用部署平台(PaaS),連主機和 HTTPS 都交給平台處理。
QCaddy 和 Nginx 哪個比較好?
第一次架站、小團隊、想快速上線選 Caddy,自動 HTTPS 和簡短設定可以少踩很多坑。團隊已有 Nginx 經驗、需要大量中文資源或複雜調校,選 Nginx。對中小企業而言,主機放哪裡和有沒有人維護,比選哪一套伺服器更重要。
AUTHOR
恆遠數位編輯團隊






留言(0)
尚無留言,成為第一個留言的人吧!