自建企業級網路診斷工具:NextTrace MTR 完全教學 (2026)

簡介

如果你讀過我上一篇《【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

特徵傳統 MTRNextTrace Web
界面黑色終端機現代化網頁
訪問方式SSH 命令行瀏覽器 HTTP
IPv4/IPv6
部署難度中等極簡單(Docker)
隱私性100%(本地)100%(自己架)
成本免費免費

NextTrace 相比在線工具嘅優勢

外面有好多免費嘅在線 MTR 工具(例如 mtr.sh、wondernetwork 等),但佢哋有幾個問題:

  1. 數據隱私:你輸入嘅 IP 會被上傳到陌生伺服器
  2. 流量限制:通常有每日查詢限制
  3. 追蹤來源:查詢來自某個特定數據中心,代表性唔足
  4. 廣告同追蹤器:網頁有第三方 JavaScript 同 Cookie

而自建嘅 NextTrace,所有數據都留喺你自己嘅伺服器,完全私密。


第二部分:部署環境需求

你需要嘅嘢

  1. 一部伺服器(樹莓派 4、NAS、Oracle Cloud、Debian 機等任何 Linux 主機)
  2. Docker + Docker Compose(已安裝)
  3. Nginx Proxy Manager(如果想綁定域名)
  4. 一個域名(可選,直接用 IP 都得)

本教學假設你已經有 Docker 運行緊。如果未有,請先安裝:

bash# Ubuntu/Debian
curl -fsSL https://get.docker.com | sh

# 驗證安裝
docker --version
docker-compose --version

硬件需求

NextTrace 非常輕量級:

指標需求
CPU1 核心
記憶體512 MB
磁盤空間100 MB
網絡頻寬5 Mbps 起

即使係樹莓派 Zero 或 Oracle Always Free 嚴選機都可以跑到!


第三部分:快速部署 (5 分鐘版本)

方法 1:Docker CLI(最快)

如果你只想快速試用,唔需要 Nginx Proxy Manager,直接黐返呢條 command 落你個伺服器:

bash
docker run -d \
--name nexttraceweb \
--restart unless-stopped \
--privileged \
--network host \
tsosc/nexttraceweb:latest 3100

然後用瀏覽器開 http://your_server_ip:3100 就可以用!

圖:NextTrace MTR 網頁界面即時追蹤效果

方法 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

然後執行:

bash
docker-compose up -d

搞掂!


第四部分:進階設定 – 綁定域名 (Nginx Proxy Manager)

如果你想通過域名(例如 mtr.abc.com)訪問,而唔係直接用 IP + Port,就需要設定 Nginx Proxy Manager。

步驟 1:Portainer 中創建新 Proxy Host

  1. 開啟 Portainer,去 Nginx Proxy Manager
  2. 點 Proxy Hosts -> Add Proxy Host
  3. 填入以下設定:
欄位
Domain Namesmtr.abc.com
Schemehttp
Forward Hostname / IP192.168.X.X (你 Debian 內網 IP)
Forward Port3100
Block Common Exploits
Websockets Support✓ (重要!)
Cache Assets

步驟 2:配置 SSL 憑證

  1. 去 SSL Tab:
    • SSL Certificate: 選擇 Let's Encrypt (Wildcard)(如果未有就自動申請)
    • Force SSL: ✓

步驟 3:修復 Socket.IO 連接問題

  1. 去 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,令佢以為所有連接都來自本地。

  1. 撳 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 加一個登入頁面。

快速設定

  1. 去 Cloudflare Dashboard -> Zero Trust -> Access -> Applications
  2. 點 Add an Application -> Self-hosted
  3. 域名選 mtr.abc.com
  4. 去 Policies Tab,建立一個 Policy:
    • Policy NameAdmin Only
    • ActionAllow
    • Include: 選 Emails,輸入你自己嘅郵箱
  5. 撳 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

text
healthcheck:
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 穿透:

bash
docker run -d \
--name cloudflared \
-e TUNNEL_TOKEN=<your-tunnel-token> \
cloudflare/cloudflared:latest tunnel run

2. 自動備份追蹤結果到 InfluxDB

如果想長期監控網絡質素,可以連接 InfluxDB + Grafana:

text
services:
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

By k1chan

留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料