這一篇記錄在我這台 ASUS Ascent GX10 電腦上,把一個 WordPress 部落格從零架起來、並在「沒有路由器管理權」的限制下讓外網成功訪問的完整過程。有成功、有踩坑,失敗的部分恰恰是最有學習價值的。
一、環境與限制(先講難的)
| 項目 | 現況 |
|---|---|
| 主機 | Ubuntu 24.04 ARM64,20 核 / 121GB RAM / NVIDIA GB10 |
| 對外網路 | LTE AP,沒有管理權,改不了 port forward |
| 對外 IP | 223.143.242.85(動態,隨時可能換) |
| 既有域名 | duckdns.org(NS 在註冊商 giantpanda)+ Duck DNS 子域 |
核心限制只有兩句:① 入站 port forward 做不到;② 域名註冊商不給 NS 編輯權。這兩個限制直接決定後面的路線。
二、第一階:Docker Compose 把 WordPress 跑起來
三個容器一把梭:
services:
db: # MySQL 8
image: mysql:8.0
wordpress: # 網站本體
image: wordpress:latest
ports: ['8082:80']
tunnel: # Cloudflare 正式 tunnel(之後留作後備)
image: cloudflare/cloudflared:latest
quicktunnel: # Cloudflare Quick Tunnel(真正對外的通道)
image: cloudflare/cloudflared:latest
restart: always
command: tunnel --no-autoupdate --url http://wordpress:80
WordPress 對外監聽 8082,本機 200 OK。這階沒有坑。
三、第二階:外網訪問的三段試錯(重點)
路徑 1:Duck DNS + 路由器 port forward
最經典的方案。Duck DNS 手動改成正確外網 IP,全球 DNS 都生效,外部打 80 埠回傳 522 —— 流量有到路由器,就是沒人把它轉發。
卡點在最後一步:LTE AP ,沒有管理權。此路正式封死。
路徑 2:Cloudflare Tunnel + 自有域名
「正統解」路線,我做到了 80%:
- ✅ Tunnel 建立完成(token 模式、Healthy、自動重連)
- ✅ Public hostname 路由:winson-blog.duckdns.org → http://wordpress:80
- ✅ CNAME 指向
*.cfargotunnel.com,橘雲 Proxied 也開 - ❌ NS 委派改不了:duckdns.org 的 NS 在 giantpanda,後台只有 A/CNAME 紀錄區,沒有「修改 NS」按鈕。Cloudflare 分配的
jewel/tim兩個 NS 沒有人能寫進去
結論:註冊商不給 NS 編輯權 = Cloudflare 永遠停在 pending。卡了半天的最後 10%。
路徑 3:Cloudflare Quick Tunnel(採用 ⭐)
Quick Tunnel(trycloudflare.com)不需要任何 DNS、不需要改 NS、不需要路由器權限 —— 關鍵在於流量是家裡機器主動出站,LTE AP 完全不擋(它只擋入站)。一列命令:
command: tunnel --no-autoupdate --url http://wordpress:80
20 秒後拿到全球可解析的 HTTPS 網址。唯一代價:重啟容器隨機子域會換。寫了個 quicktunnel-url.sh,重開機跑一次就拿回新網址。
四、第三階:收尾(logo、主題、色調)
- Logo:畫三個方向 —— A「疊層 V 字」(V = Vic + 版本堆疊)、B「收斂螺旋」、C「v1→v3 階梯」,選了 A
- Favicon + 文章頭部:產出 16/24/32/48/180/192 全套,用 WP-CLI 導入媒體庫、設為 site_icon 和 custom_logo
- 主題:Kadencia 不在 WP 官方庫(商業主題),改裝 GeneratePress 3.6.1 —— 極速、輕量、免費就夠
- 色調:全套改成跟 logo 一致的 indigo 系 —— 連結
#4338CA、標題#1E1B4B、code block 淺藍底,程式碼閱讀友善
五、現在能做到的
- WordPress 本機 8082 常駐,Quick Tunnel 對全世界提供 HTTPS
- 重開機 / 容器重啟:tunnel 自動重連,跑一次
quicktunnel-url.sh拿回新網址 - 外網 IP 換了?無所謂(出站流量,網址跟你家 IP 無綁定關係)
六、下一步(坦白講)
- 固定網址:Quick Tunnel 的隨機子域每次重啟都換。正解是找一個「改得到 NS 的域名」—— 花 $10 年在 Porkbun / Namecheap / Cloudflare Registrar 任買一個,接上現有的 tunnel token,網址就永久固定。這是最該做的下一步
- SMTP + 備份策略(目前 wp 只在 volume,還沒備份機制)
一句話總結:限制不會讓你做不成,只是在逼你選對工具。沒有 router 權限,就用出站 tunnel 替代入站轉發;沒有 NS 委派權,就用不需要 NS 的 tunnel。這篇部落格本身,就是那段試錯的產物。
沒有留言:
張貼留言