簡介
如果你讀過我上一篇《【2026 最新實戰】Oracle Cloud Free Tier 搶 A1 Flex 全攻略(含自動掛機腳本+避坑指南》嘅文章,相信你已經知道點樣利用永久免費雲伺服器建立自己嘅網站。但係當網絡出現問題時,你點樣快速診斷延遲、丟包同路由問題呢?
NextTrace MTR 就係答案。

NextTrace 係一款由 Golang 開發嘅開源可視化路由追蹤工具,而 NextTrace Web 則係其輕量級 Web 版本,提供美觀嘅網頁介面,讓任何人都可以即時分析網路路徑、延遲同丟包率。
呢篇教學會帶你喺 5 分鐘內,利用 Docker + Nginx Proxy Manager,部署一個自己嘅 NextTrace MTR 服務,比起用在線工具更私密、更快速、完全免費。
第一部分:理解 MTR 同 NextTrace
咩係 MTR?
MTR (My Traceroute) 係一個結合咗 Traceroute 同 Ping 功能嘅網路診斷工具。傳統 Traceroute 只係拍一次快照,而 MTR 會持續發送數據包(通常每秒一個),並即時記錄延遲同丟包率。
使用場景:
- 診斷 ISP 網路瓶頸
- 檢測 DDoS 攻擊來源
- 優化 CDN 路由
- 測試伺服器連接質量
NextTrace 點樣優勝於傳統 MTR
| 特徵 | 傳統 MTR | NextTrace Web |
|---|---|---|
| 界面 | 黑色終端機 | 現代化網頁 |
| 訪問方式 | SSH 命令行 | 瀏覽器 HTTP |
| IPv4/IPv6 | ✓ | ✓ |
| 部署難度 | 中等 | 極簡單(Docker) |
| 隱私性 | 100%(本地) | 100%(自己架) |
| 成本 | 免費 | 免費 |
NextTrace 相比在線工具嘅優勢
外面有好多免費嘅在線 MTR 工具(例如 mtr.sh、wondernetwork 等),但佢哋有幾個問題:
- 數據隱私:你輸入嘅 IP 會被上傳到陌生伺服器
- 流量限制:通常有每日查詢限制
- 追蹤來源:查詢來自某個特定數據中心,代表性唔足
- 廣告同追蹤器:網頁有第三方 JavaScript 同 Cookie
而自建嘅 NextTrace,所有數據都留喺你自己嘅伺服器,完全私密。
第二部分:部署環境需求
你需要嘅嘢
- 一部伺服器(樹莓派 4、NAS、Oracle Cloud、Debian 機等任何 Linux 主機)
- Docker + Docker Compose(已安裝)
- Nginx Proxy Manager(如果想綁定域名)
- 一個域名(可選,直接用 IP 都得)
本教學假設你已經有 Docker 運行緊。如果未有,請先安裝:
bash# Ubuntu/Debian
curl -fsSL https://get.docker.com | sh
# 驗證安裝
docker --version
docker-compose --version
硬件需求
NextTrace 非常輕量級:
| 指標 | 需求 |
|---|---|
| CPU | 1 核心 |
| 記憶體 | 512 MB |
| 磁盤空間 | 100 MB |
| 網絡頻寬 | 5 Mbps 起 |
即使係樹莓派 Zero 或 Oracle Always Free 嚴選機都可以跑到!
第三部分:快速部署 (5 分鐘版本)
方法 1:Docker CLI(最快)
如果你只想快速試用,唔需要 Nginx Proxy Manager,直接黐返呢條 command 落你個伺服器:
bashdocker run -d \
--name nexttraceweb \
--restart unless-stopped \
--privileged \
--network host \
tsosc/nexttraceweb:latest 3100
然後用瀏覽器開 http://your_server_ip:3100 就可以用!

方法 2:Docker Compose(推薦)
如果你想用 Portainer 管理,或者之後想加 Nginx Proxy Manager,用 Compose 更方便。
建立一個檔案 docker-compose.yml:
textversion: '3.8'
services:
nexttraceweb:
image: tsosc/nexttraceweb:latest
container_name: nexttraceweb
restart: unless-stopped
privileged: true
network_mode: "host"
command: ["3100"]
labels:
- "autoheal=true"
healthcheck:
test: ["CMD-SHELL", "nc -z 127.0.0.1 3100 || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
然後執行:
bashdocker-compose up -d
搞掂!
第四部分:進階設定 – 綁定域名 (Nginx Proxy Manager)
如果你想通過域名(例如 mtr.abc.com)訪問,而唔係直接用 IP + Port,就需要設定 Nginx Proxy Manager。
步驟 1:Portainer 中創建新 Proxy Host
- 開啟 Portainer,去 Nginx Proxy Manager
- 點 Proxy Hosts -> Add Proxy Host
- 填入以下設定:
| 欄位 | 值 |
|---|---|
| Domain Names | mtr.abc.com |
| Scheme | http |
| Forward Hostname / IP | 192.168.X.X (你 Debian 內網 IP) |
| Forward Port | 3100 |
| Block Common Exploits | ✓ |
| Websockets Support | ✓ (重要!) |
| Cache Assets | ✓ |
步驟 2:配置 SSL 憑證
- 去 SSL Tab:
- SSL Certificate: 選擇
Let's Encrypt (Wildcard)(如果未有就自動申請) - Force SSL: ✓
- SSL Certificate: 選擇
步驟 3:修復 Socket.IO 連接問題
- 去 Advanced Tab,貼入以下 Nginx 設定(呢步好重要!):
textlocation /socket.io/ {
proxy_pass http://192.168.X.X:3100/socket.io/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host "192.168.X.X:3100";
proxy_set_header Origin "http://192.168.X.X:3100";
}
點解要加呢段? NextTrace 用 Socket.IO 做即時通訊,如果 Host 同 Origin Header 唔匹配,Backend 會拒絕連接(HTTP 400 Error)。呢段代碼會欺騙 Backend,令佢以為所有連接都來自本地。
- 撳 Save。
步驟 4:驗證連接
去 https://mtr.abc.com(唔好訪問 HTTP,會自動轉向),輸入一個 IP 地址(例如 8.8.8.8),撳 Start Nexttrace。
如果成功,你會見到實時嘅網絡路由追蹤結果!如果顯示「No Response」或者圖表唔更新,請檢查上面嘅 Nginx 設定係咪正確。
第五部分:加強安全性 – Cloudflare Zero Trust Access
如果你想添加一層驗證,防止陌生人隨便用你嘅 MTR 工具,可以用 Cloudflare Zero Trust Access 加一個登入頁面。
快速設定
- 去 Cloudflare Dashboard -> Zero Trust -> Access -> Applications
- 點 Add an Application -> Self-hosted
- 域名選
mtr.abc.com - 去 Policies Tab,建立一個 Policy:
- Policy Name:
Admin Only - Action:
Allow - Include: 選
Emails,輸入你自己嘅郵箱
- Policy Name:
- 撳 Save。
從此,訪問 https://mtr.abc.com 嘅人會先見到一個 Cloudflare 登入畫面,需要用你指定嘅 Email 收驗證碼先至能入到 NextTrace。所有登入嘗試都會喺 Cloudflare Logs 中記錄,包括失敗嘅嘗試。
第六部分:故障排查
問題 1:「無法連接到伺服器」
原因:Docker 容器未運行或埠口被佔用
解決:
bash# 檢查容器狀態
docker ps | grep nexttraceweb
# 查看日誌
docker logs nexttraceweb
# 重新啟動
docker restart nexttraceweb
問題 2:網頁載入到但「輸入 IP 後無反應」
原因:Socket.IO 連接被 Nginx Proxy Manager 封鎖(HTTP 400)
解決:確保已經在 NPM 嘅 Advanced Tab 加入咗上面嘅 Nginx 代碼,同時檢查 Host 同 Origin Header 係咪指向正確嘅內網 IP。
問題 3:「權限被拒(Permission Denied)」
原因:NextTrace 需要 Root 權限執行網路操作
解決:確保 Docker Compose 中已經設定 privileged: true 同 network_mode: host。
問題 4:容器頻繁重啟(Unhealthy)
原因:Docker Healthcheck 失敗。部分底層系統冇內建 wget 導致預設檢查失敗。
解決:更新 docker-compose.yml 嘅 healthcheck 語法,改用 nc:
texthealthcheck:
test: ["CMD-SHELL", "nc -z 127.0.0.1 3100 || exit 1"]
interval: 30s
timeout: 10s
retries: 3
第七部分:進階技巧
1. 通過 Cloudflare Tunnel 外部訪問(無需公開 IP)
如果你嘅伺服器冇公開 IP(例如喺私人網絡入面),可以用 Cloudflare Tunnel 穿透:
bashdocker run -d \
--name cloudflared \
-e TUNNEL_TOKEN=<your-tunnel-token> \
cloudflare/cloudflared:latest tunnel run
2. 自動備份追蹤結果到 InfluxDB
如果想長期監控網絡質素,可以連接 InfluxDB + Grafana:
textservices:
nexttraceweb:
# ... 上面嘅設定
environment:
- INFLUXDB_URL=http://influxdb:8086
- INFLUXDB_DB=network_metrics
第八部分:常見疑問 (FAQ)
Q1:我可以用公開嘅 NextTrace 在線工具嗎?
A:當然可以,但用自建嘅優勢係:
- 無每日查詢限制
- 數據唔會被上傳到第三方
- 可以喺內網環境測試
- 追蹤來源係你自己嘅伺服器,代表性更高
Q2:NextTrace 會消耗好多頻寬嗎?
A:唔會。MTR 追蹤通常只發送 30-100 個數據包,每次查詢消耗嘅流量不到 1 MB。即使係得 1Mbps 嘅連接都應付到。
Q3:可以用 IPv6 嗎?
A:可以!NextTrace 完全支持 IPv6。你可以輸入 IPv6 地址(例如 2606:4700::1111)進行追蹤。
Q4:需要申請 API Key 嗎?
A:唔需要。NextTrace 係完全自主嘅服務,無需任何第三方 API。
總結
用 NextTrace Web + Docker + Nginx Proxy Manager,你可以喺 5 分鐘內建立一個專業級嘅網絡診斷工具,既安全、又私密、又免費。
呢個工具特別適合:
- 系統管理員:監控網絡質素同診斷問題
- 開發者:測試 API 連接質素
- 網站站長:檢測 CDN 路由
- 普通用戶:排查 ISP 網絡問題
希望呢篇教學對你有幫助。如果有任何問題,歡迎喺下面留言討論!
參考資料
NextTrace GitHub Repository – https://github.com/nxtrace/NTrace-core
NextTrace Web Documentation – https://github.com/nxtrace/nexttracewebapi
MTR (My Traceroute) Overview – Cloudflare Learning Center
How Traceroute Works – Wikipedia
Network Diagnostic Tools Comparison – GTHost Blog
Docker Hub: tsosc/nexttraceweb – Official Image
Cloudflare Zero Trust Access – Enterprise Authentication Layer
Cloudflare Zero Trust Audit Logs – Security Best Practice
Cloudflare Tunnel Documentation – Secure Remote Access
MTR Data Usage Analysis – Network Engineering
Open Source Network Tools – DevOps Best Practices
