中國戶外直播筆記

適用場景:從中國大陸戶外直播。使用多張 SIM 卡頻寬合併(Bonding)+ OpenMPTCProuter + VLESS+Reality/Hysteria2 繞過 GFW,將 LiveU Solo 的 RTMP Direct 流量安全傳輸回台灣,再由 OBS 推流到 Twitch。

快速決策:四種方案白話版比較

給不想看冗長技術文件,只想知道「我該選哪個」的人看的懶人包。想了解每個選擇背後的工程原理,可以往下閱讀完整技術章節。

方案 要幾張 SIM 卡 斷線容錯 抗 GFW 封鎖 設定難度 適合誰
① 科學上網卡 + LRT 過日本 1 張(科學上網卡) 中(單卡,但有 LiveU 官方雲端支援) ★★★★★ 最穩 ★ 最簡單,插卡開播 完全不想處理技術、預算足夠
② RPi5 + Bonding + VPS/PC 2–3 張(一般卡) ★★★★★ 多卡互頂 ★★★★★ 偽裝成正常網站流量 ★★★★★ 最複雜 長時間戶外移動直播、要求最穩定
③ RPi5 + 單卡 → Windows PC 1 張(一般卡) ★★ 單卡無備援 ★★★★★ 同上 ★★★ 中等 先簡化測試、只有一張卡可用
④ 手機直接執行 VPN app 推 Twitch 1 張(插在手機上) ★★ 單卡無備援 ★★★★★ 同上 ★★ 裝個 App 就好 沒有 LiveU、想使用最少設備

① LiveU + 科學上網卡 + LRT → 日本 LiveU Cloud

運作方式:科學上網卡本身內建「科學上網」能力。LiveU 使用自己的 LRT 模式,把訊號送到日本的 LiveU 官方雲端伺服器中轉,再轉播出去。

白話理解:全部交給 LiveU 官方處理。你只需要插卡、開機和開播。這個方案最省事。但是每月必須支付科學上網卡和 LiveU 雲端服務的費用。訊號也多經過一個中轉點(中國 → 日本 → 你的平台),所以延遲比較高。

適合:不想學技術、預算足夠、只求穩定開播的人。

② LiveU + RPi5 + Bonding(多卡合併)+ RTMP Direct → 自己的 VPS/PC

運作方式:購買 2–3 張中國一般 SIM 卡,插在 USB modem 上,再接到一台樹莓派(RPi5)。樹莓派把多張卡的網路「合併」成一條頻寬更大、更穩定的連線(這就是 Bonding)。樹莓派再加上一層偽裝成正常網站流量的加密隧道(Reality),直接送到你自己架設的伺服器(VPS 或家用 PC)。流量不經過 LiveU 官方雲端。

白話理解:這是最自由、最穩定,但也最複雜的方案。多張卡互相備援,一張卡訊號差不會影響直播。隧道偽裝讓中國的網路審查看不出你在做什麼。代價是:你必須自己購買設備、自己設定、自己維護。出問題時,你也必須自己排查。

適合:長時間戶外移動直播(例如邊走邊拍數小時)、對穩定性要求最高的人。

③ LiveU + RPi5(只插 1 張卡,沒有 Bonding)→ Windows PC

運作方式:和②很像。方案③一樣使用 RPi5 + 隧道加密偽裝。但是方案③只用 1 張 SIM 卡,不做多卡合併。樹莓派的設定也簡單很多(不需要安裝多卡合併的系統。一般 Windows 電腦也可以當接收端)。

白話理解:②的簡化版。方案③沒有「多卡互相備援」。一張卡訊號不好或斷線時,直播會受影響。但是抗審查能力完全相同:加密偽裝的邏輯和②一模一樣。

要注意:接收端使用 Windows PC 在技術上可行。但是有幾個優化工具只有 Linux 才有(防止壅塞的 QoS、自動重啟等),Windows 無法使用這些工具。因此維運比使用 Linux 麻煩。

適合:手上只有一張可用 SIM 卡,或想先用簡化的方式測試整條流程是否可行,之後再升級成②的人。

④ 手機(iPhone / Samsung)直接安裝 VPN App,用 Reality 或 Hysteria2 直推 Twitch

運作方式:完全不需要 LiveU 和樹莓派。SIM 卡直接插在手機上。手機安裝一個科學上網 App(例如 v2rayNG、Shadowrocket)。手機本身當直播主機,直接把畫面推送到 Twitch。

白話理解:設備最少的做法,一支手機就夠。協議預設建議選擇 VLESS+Reality(偽裝成正常網站流量),不選 Hysteria2。原因是手機使用電信 SIM 卡的行動資料。電信商比較容易對 Hysteria2 這種協議限速。Reality 相對不會被限速。只有在 Reality 被針對性封鎖,或訊號真的很差時,才切換成 Hysteria2。

要注意:長時間直播時,手機容易發熱,耗電也快。建議全程連接行動電源。

適合:不想帶很多設備、臨時想開播,或當作①②③斷線時的緊急備案。

一句話總結:
  • 不想處理技術 → ①
  • 要最穩定、預算和精力都足夠 → ②
  • 只有一張卡、想先做出可用的版本,再改善 → ③
  • 想使用最少設備,或當作緊急備案 → ④

系統目標與邊界

開始硬體採購與軟體設定之前,必須先明確這套系統的「定位」和「極限」。這是一套低成本、自架、長時間戶外直播的 contribution uplink 系統。這不是廣播級商業解決方案。

本架構的目標

  • 中國戶外長時間直播(10-12 小時/場,5-7 天/月)
  • 避免從中國直推 Twitch(GFW 直接封鎖 RTMP)
  • 避免依賴 LiveU 日本 AWS 中轉(增加 hop、latency 與雲端費用)
  • 用多張 SIM 卡頻寬合併,降低單卡波動風險
  • 繞過中國 ISP 針對大流量上行的 QoS 干擾
  • 保留本地 OBS 的完整控制權(版面覆蓋、Alert、二次編碼)
  • 長時間穩定推流

本架構不是

  • 廣播級(broadcast-grade)超低延遲 contribution 系統
  • 具備封包層級 FEC(Forward Error Correction)的專業傳輸
  • LiveU 官方多鏈路系統的完整替代品
核心定位:
低成本 DIY remote contribution uplink system。用架構層面的多路合併(MPTCP Bonding)和隧道防禦(VLESS+Reality / Hysteria2),彌補 RTMP 在嚴苛網路環境下的先天弱點。

選擇邏輯與決策矩陣

本文件的架構選擇分為兩個維度:中國端如何出境(繞過 GFW) 與 台灣端如何接收串流。兩者獨立選擇,可以自由組合。

中國端出境方案比較

以下三種方案決定的是:你的直播流量如何從中國穿越 GFW 送到台灣。

方案一:本地 SIM 卡 + VLESS+Reality(本文件主要涵蓋)

  • SIM 卡使用中國三大電信的一般上網卡(不是科學上網卡)
  • 穿越 GFW 使用 VLESS+Reality,偽裝 TLS 1.3,幾乎沒有特徵
  • 完全自架,完全自主掌控。VPS 費用是主要的持續成本

方案二:科學上網 SIM 卡 + LiveU LRT JP Cloud

  • SIM 卡是商業科學上網卡(如電信貓、iRoaming 等),網路層已內建 GFW 繞過功能
  • LiveU LRT 是 LiveU 專有協議,穿透力強
  • 最省事,有商業團隊維護線路。缺點是費用高,且繞經日本 AWS 增加延遲(+80–150ms)

方案三:中國租屋固定寬頻 + Windows PC Xray

  • RPi5 的 SIM 只走中國國內段(低延遲、穩定)。GFW 穿越交給固定寬頻
  • 住宅或商業固定 IP 被 GFW 針對性封鎖的機率,遠低於 VPS 機房 IP
  • 適合長期在中國固定地點直播。需要在中國有常駐據點和設備

三方案綜合比較

費用說明:以下費用以 NTD 為單位,假設已持有 LiveU Solo 硬體。科學上網 SIM 的費用依供應商與流量方案差異極大。租屋費用依中國城市差異極大。費用僅供參考。
項目 方案一:SIM + Reality 方案二:科學上網卡 + LRT 方案三:租屋 + Xray
GFW 穿透強度 ★★★★★ ★★★★★ ★★★★★
穩定性 ★★★★ ★★★★★ ★★★★★
自主掌控 完全自主 依賴第三方 完全自主
戶外直播 RPi5 需先連回租屋
IP 被封風險 VPS 機房 IP 低(商業維護) 極低(住宅 IP)
延遲 低 高(繞日本) 低
一次性費用(NTD) ~5,600–8,700 ~0 ~10,600–23,700
每月費用(NTD) ~1,400–4,000 ~4,500–9,500 ~8,000–21,650
一年總持有成本 ~22,400–56,700 ~54,000–114,000 ~106,600–283,500
推薦情境 偶爾赴中直播 不想自架 長期駐點直播

費用明細

  • 方案一 每月:HK/JP/TW VPS(CN2 GIA)~500–1,300 + 中國一般 SIM × 3 ~900–2,700
  • 方案一 一次性:RPi5 ~2,500 + USB Modem × 3 ~1,800–3,600 + Hub / 行動電源 / 散熱 ~1,300–2,600
  • 方案二 每月:科學上網卡 × 3(電信貓 / iRoaming 類)~3,000–8,000 + LiveU Connect ~1,500
  • 方案三 每月:中國租屋 ~6,750–18,000 + 固定寬頻 ~225–450 + 中國 SIM × 3 ~900–2,700 + 台灣 VPS ~165–500
  • 方案三 一次性:中國 Windows 迷你主機 ~5,000–15,000 + RPi5 + Modems + 周邊 ~5,600–8,700
注意:本文件後續的技術細節主要對應方案一。方案二不需要額外設定。方案三的 Windows PC Xray 設定參考台灣端 xray 設定邏輯,反向套用於 client 端。

台灣端 ingest 路線選擇

本文件提供兩條台灣端架構路線,依你的實際網路條件選擇:

評估條件 路線 A:台灣本機 ingest 路線 B:VPS ingest
台灣家裡有真正公網 IPv4? 必須有 不需要
台灣 ISP 可做 Port Forwarding? 必須可以 不需要
擔心家裡網路成為單點故障? 是的話不適合 適合
每月持續費用 低(無 VPS 費用) 增加 VPS 費用
對台灣回程路由的掌控度 高 中(依 VPS 供應商)
設定複雜度 中 略低(不需 port forwarding)

如何判斷是否有真正的公網 IP

# 在台灣 Linux 機或路由器上執行
curl ifconfig.me

對照 Router WAN 介面的 IP。如果兩者相同,代表有真正的公網 IP,路線 A 可行。如果不同(或 WAN IP 是 100.64.x.x 開頭),代表處於 CGNAT。必須選擇路線 B,或向 ISP 申請固定 IP。

排列組合決策矩陣

組合 SIM 卡類型 中轉架構 出境方式 可行性 推薦度
1.1 + 2.1 三大電信一般卡 中國境內 VPS 直推台灣 無隧道 不可行
1.1 + 2.2 三大電信一般卡 中國境內 VPS + Xray VLESS+Reality 理論可行 ★★
1.1 + 2.3 三大電信一般卡 直推海外 AWS 無隧道 不可行
1.2 + 2.1 科學上網卡 中國境內 VPS 直推台灣 科學上網卡內建 邏輯冗餘 ★
1.2 + 2.2 科學上網卡 中國境內 VPS + Xray 雙重隧道 架構錯誤
1.2 + 2.3 科學上網卡 直推海外 AWS 科學上網卡內建 科學上網卡現況 ★★★
推薦 三大電信一般卡 台灣/海外 VPS + Reality VLESS+Reality 完全可行 ★★★★★
關鍵結論:一般卡必須搭配「出境隧道」才能連到境外。科學上網卡已內建出境能力,再加中轉層只會增加延遲。

不可行組合說明

  • 【1.1 + 2.1】一般卡 + 中國境內 VPS 直推台灣:從中國境內任何節點「直接」推流到台灣境外,都會被 GFW 識別並阻斷。即使中轉經過中國境內 VPS,最後一跳「中國→台灣」仍暴露在 GFW 下。而且中國境內伺服器對外提供串流服務需要 ICP 備案。
  • 【1.1 + 2.3】一般卡 + 直推海外 AWS:中國三大電信的一般上網卡預設封鎖所有境外連線(少數白名單除外)。LiveU 的 RTMP Direct 直接嘗試連線 AWS 時,會被 GFW 靜默丟包。

理論可行但不推薦

【1.1 + 2.2】一般卡 + 中國境內 VPS + Xray 出境:技術上可行(一般卡走中國內網,出境隧道在中國 VPS 上)。但是需要在中國有固定據點租屋,備案合規風險高,技術複雜度高,成本接近方案三。

決策流程

graph TD
    Start([想換架構?]) --> Q1{預算與技術意願?}
    Q1 -->|預算充足 + 完全不想處理技術| A1["維持現有方案: 科學上網卡 + LiveU LRT + 日本 AWS"]
    Q1 -->|願意自架 2-4 小時 + 追求低成本| Q2{台灣現場是否有公網 IP?}
    Q2 -->|是, 具備真實公網 IPv4| A2["選擇 路線 A: 台灣本機 Ingest (0 元 VPS 持續費用)"]
    Q2 -->|否, 處於 CGNAT 寬頻環境| A3["選擇 路線 B: 租用香港/日本/台灣 VPS (每月持續費用約 $15-40 USD)"]
    Q1 -->|只有 1 張 SIM 卡 / 想先簡化測試| A5["免 Bonding 精簡版: 單卡直推 (不裝 OMR,RPi5 純跑 Xray client)"]
    Q1 -->|長期駐點中國 >6個月 + 有固定辦公室| A4["考慮 方案三: 中國據點固定寬頻 + Xray 出境隧道 ([!] 需審慎評估風險)"]
          

整體架構拓撲

路線 A:台灣本機 Ingest 架構拓撲

graph TD
    subgraph China ["════════ 中國現場邊界 ════════"]
        FX30["Sony FX30 攝影機"] -->|HDMI 輸出| LiveU["LiveU Solo (RTMP Direct 模式)"]
        LiveU -->|WiFi / Ethernet| RPi5["樹莓派 Raspberry Pi 5 (OpenMPTCProuter v0.63)"]

        subgraph RPi5_Detail ["多鏈路聚合調校"]
            direction TB
            ModemA["USB Modem A (中國電信 SIM)"]
            ModemB["USB Modem B (中國聯通 SIM)"]
            ModemC["USB Modem C (中國移動 SIM)"]
        end

        RPi5 ---> ModemA & ModemB & ModemC
        ModemA & ModemB & ModemC -->|MPTCP Bonding 頻寬聚合| Tunnel["跨越 GFW 防火牆 (標準 TLS / QUIC 流量)"]
    end

    subgraph Taiwan ["════════ 台灣本機端防禦邊界 ════════"]
        Tunnel -->|公網傳輸| LinuxServer["Linux Ingest 本機主機 (Ubuntu 22.04 / Debian 12)"]

        subgraph Linux_Detail ["內部服務堆疊"]
            direction TB
            OMR_S["omr-server 核心接收端"]
            Xray["Xray 服務端解密"]
            MediaMTX["MediaMTX 核心本體 (RTMP Ingest + 強認證)"]
            QoS["CAKE QoS 隊列調校 (限制 ACK 阻塞 / 防 Bufferbloat)"]
        end

        LinuxServer ---> OMR_S --> Xray --> MediaMTX
        LinuxServer --> QoS

        MediaMTX -->|區域網路 RTMP 含 Auth| OBS["OBS Studio 控制台 (Windows 主機 / Linux 筆電)"]
        OBS -->|CBR 預測碼率推流| Twitch((Twitch 串流平台))
    end
          

路線 B:VPS Ingest 架構拓撲

graph TD
    subgraph China_B ["════════ 中國現場邊界 ════════"]
        FX30_B["Sony FX30 攝影機"] -->|HDMI| LiveU_B["LiveU Solo (RTMP Direct 模式)"]
        LiveU_B -->|LAN / WiFi| RPi5_B["樹莓派 Raspberry Pi 5 (OMR 多卡聚合 + 隧道加密)"]
    end

    subgraph VPS ["════════ 香港 / 日本 / 台灣 雲端 VPS ════════"]
        CloudServer["Linux Cloud VPS (1 vCPU / 1GB RAM)"]

        subgraph VPS_Detail ["雲端收斂服務堆疊"]
            direction TB
            V_OMR["omr-server 聚合接收解包"]
            V_Xray["Xray 傳輸層解密"]
            V_MMTX["MediaMTX 串流中繼 (1935/8890 對公網下架)"]
        end

        CloudServer ---> V_OMR --> V_Xray --> V_MMTX
    end

    subgraph Taiwan_B ["════════ 台灣工作室接收端 ════════"]
        OBS_B["OBS Studio 導播台 (Windows 本機 / Linux 筆電)"]
    end

    RPi5_B -->|優化回程線路 CN2 GIA / CMIN2| CloudServer
    V_MMTX -->|跨公網 RTMP 安全拉流| OBS_B
    OBS_B -->|CBR 固定碼率推流| Twitch_B((Twitch 串流平台))
          

資料流對照

區段 路線 A 路線 B
LiveU → RPi5 WiFi / Ethernet WiFi / Ethernet
RPi5 → ingest server MPTCP + Reality → 台灣本機 MPTCP + Reality → 香港/日本/台灣 VPS
ingest server → OBS 內網 RTMP 公網 RTMP(需 auth)
OBS → Twitch RTMP RTMP

硬體清單與費用總覽

中國端硬體(隨身攜帶)

設備 規格建議 用途 供電 估價(NTD)
Raspberry Pi 5 4GB RAM 執行 OpenMPTCProuter USB-C PD 行動電源 約 2,500
USB Modem × 3 Huawei E3372h-153 或 Quectel EC21 各插一張 SIM,強烈建議改成 Stick Mode USB Hub 供電 600–1,200 /支
獨立供電 USB Hub 7-port,支援 USB-C PD 輸入 避免 RPi5 主板電壓瞬降 獨立行動電源 400–800
行動電源 USB-C PD 65W 以上 RPi5 + Hub 同時供電 — 800–1,500
microSD 32GB A2 Class 10 安裝 OpenMPTCProuter — 200–400
SIM × 3 電信 + 聯通 + 移動 三電信商互補 — 視方案
散熱套件 銅散熱片 + 小風扇 防 modem 過熱斷線 — 100–300
重要提醒:SIM 插在 USB Modem 內,不是插在 RPi5 上(RPi5 本身沒有 SIM 卡槽)。Hub 必須獨立供電。不可以從 RPi5 的 USB 取電。

台灣端 / VPS 端

設備 路線 A(本機 ingest) 路線 B(VPS ingest)
ingest server 台灣 Linux 本機(x86_64,Ubuntu 22.04 / Debian 12,2GB RAM 以上) 香港或日本 / 台灣 VPS(1 vCPU / 1GB RAM,建議 CN2 GIA 線路)
OBS 主機 Windows 11,有獨顯;或 Linux 筆電 同左
路由器 支援 port forwarding 不需要特殊設定

軟體清單

軟體 安裝位置 用途
OpenMPTCProuter v0.63 RPi5(刷入 microSD) MPTCP Bonding 客戶端
omr-server Linux ingest server Bonding 接收端
xray-core Linux ingest server(omr-server 腳本內含) VLESS+Reality server
mediamtx v1.9.x Linux ingest server RTMP ingest + auth
OBS Studio Windows 本機 或 Linux 筆電 場景覆蓋、推 Twitch
Netdata Linux ingest server(建議) 即時鏈路品質監控

費用總覽

一次性硬體費用

項目 費用(NTD)
Raspberry Pi 5(4GB) 2,500
USB Modem × 3 1,800–3,600
獨立供電 USB Hub 400–800
行動電源(PD 65W+) 800–1,500
microSD(32GB A2) 200–400
散熱套件 100–300
合計 約 5,800–9,100

每月持續費用比較

項目 路線 A 路線 B
ingest server NT$0(自家機器) USD 15–40/月(依 VPS 規格)
中國 SIM 流量費 依用量 依用量
LiveU Solo Connect ~USD 45/月(保留 LRT 備援用) 同左
台灣 ISP 固定 IP 申請 部分 ISP 免費,部分需要加購 不需要

三方案每月費用明細

  • 方案一(SIM + Reality):HK/JP/TW VPS(CN2 GIA)~NT$500-1,300 + 中國一般 SIM × 3 ~NT$900-2,700,總計 ~NT$1,400-4,000
  • 方案二(科學上網卡 + LRT):科學上網卡 × 3 ~NT$3,000-8,000 + LiveU Connect ~NT$1,500,總計 ~NT$4,500-9,500
  • 方案三(租屋 + Xray):中國租屋 ~NT$6,750-18,000 + 固定寬頻 ~NT$225-450 + 中國 SIM × 3 ~NT$900-2,700 + 台灣 VPS ~NT$165-500,總計 ~NT$8,000-21,650

實戰警告:Modem 散熱與供電架構

實戰中,最常見的突然中斷原因不是 GFW。原因是 USB Modem 過熱觸發熱保護,或 Hub 供電不足造成 USB 瞬降 reset。三台 Modem 的射頻不會互相干擾。真正的問題是「散熱疊加」和「供電瞬降」。

[ 行動電源 PD 65W+ ]
    │                  │
    ▼                  ▼
[ RPi5 主板 ]    [ 獨立供電 USB Hub ] ([!] 必須有外部 PD 輸入孔)
                    ├── Modem A(貼銅散熱片)
                    ├── Modem B(小風扇主動散熱)
                    └── Modem C(保持通風間距)
不可以做的事:
  • 將三台 Modem 緊貼在一起,或塞進密閉收納包內運作。
  • 從 RPi5 的 USB port「取電」給 Hub(三卡同時搜尋基地台的瞬間,電流達 1.5A,會觸發 RPi5 過流保護)。

中國電信商申請與流量策略

申請資格與必備文件

台灣居民持有效「台灣居民來往大陸通行證(台胞證)」,即可在中國三大電信商門市辦理手機門號。

文件 說明
台胞證(正本) 必備,實名認證主要憑證
台灣護照(備用) 部分門市的掃描設備可能要求
預儲值金 約 ¥100-500 人民幣,依方案而定
大陸住址 / 飯店資訊 部分門市會要求登記

申請流程:到高德地圖搜尋「中國聯通/移動/電信 營業廳」,攜帶證件到直營門市(直營門市比代理點可靠)。告知「慢辦手機號,用台胞證申辦」,選擇資費方案 → 實名拍照認證 → 當場開卡。

提醒:中國門號無法線上申辦,必須本人臨櫃完成實名制。辦卡時必須拍照留存合約內容、方案名稱和營業員工號。如果後續有爭議,可以作為投訴依據。

資費方案參考(2026 年行情)

三大電信商基本比較

電信商 信號覆蓋 資費定位 台胞推薦度
中國移動 ★★★★★ 最廣 中高 ★★★
中國聯通 ★★★★ 城市佳 最便宜 ★★★★★
中國電信 ★★★★ 南方強 中等 ★★★★

常見資費方案(人民幣/月)

方案等級 月租 通用流量 適合情境
保號/最低 ¥8-19 0-100MB 回台收簡訊、驗證碼
入門 ¥29-39 5-20GB 短期旅遊、輕度使用
主流 ¥49-79 30-60GB 長期駐點、中度使用
高階 ¥99+ 80GB+ 或無限 商務、重度上網

換算參考:¥29 ≈ NT$130;¥79 ≈ NT$360

如何辦到 8 元保號卡

直接告知營業員:「我要辦 8 元月租方案」。如果被拒絕,換一家直營門市(不同門市的權限不同)。部分門市會要求「先辦高價方案,次月 1 號再改」。這時必須確認合約條款。辦好後回台灣,可以透過中國聯通國際客服 +86-186-1861-0010 申請改為 8 元方案。

直播流量需求計算

流量換算公式

6000 kbps = 0.75 MB/s = 2.7 GB/小時
8000 kbps = 1.0 MB/s = 3.6 GB/小時

每月總流量估算

以 6000–8000 kbps,10–12 小時/場,5–7 場/月 為例:

情境 計算方式 每月流量
最低需求 2.7 GB × 10h × 5 天 135 GB
一般需求 3.15 GB × 11h × 6 天 ~208 GB
最高需求 3.6 GB × 12h × 7 天 302 GB
注意:上述是純推流流量。實際使用需要額外預留 10–20%,用於 MPTCP 協議開銷、Reality 隧道 TLS 封裝 overhead、系統更新、監控與重傳流量。建議預算:每月 150–350 GB。

流量加餐包組合建議

中國聯通(推薦首選)

加餐包 價格 流量 有效期 備註
20GB 包 ¥20 20GB 7 天 性價比高
50GB 包 ¥40 50GB 30 天 直播首選
100GB 包 ¥70 100GB 30 天 大流量優惠

聯通直播組合建議:基礎方案 ¥39/月(20GB 通用)+ 50GB 加餐包 × 3 = ¥120 + 備用 20GB 包 × 1 = ¥20,合計 ¥179/月(約 190GB 流量)

中國移動

加餐包 價格 流量 有效期
30GB 包 ¥35 30GB 30 天
60GB 包 ¥60 60GB 30 天

移動直播組合建議:基礎方案 ¥59/月(30GB)+ 60GB 加餐包 × 2 = ¥120 + 30GB 備用包 × 1 = ¥35,合計 ¥214/月(約 210GB 流量)

中國電信

加餐包 價格 流量 有效期
50GB 包 ¥50 50GB 30 天
100GB 包 ¥90 100GB 30 天

電信直播組合建議:基礎方案 ¥79/月(60GB + CN2 GIA 骨幹)+ 100GB 加餐包 × 1 = ¥90 + 50GB 備用包 × 1 = ¥50,合計 ¥219/月(約 210GB 流量)

多卡策略與風險注意事項

多卡策略建議

三大電信 SIM 各持一張,在 OpenMPTCProuter 做 Bonding。各 SIM 的定位如下:

SIM 卡 角色 優勢
中國聯通 主力推流 城市信號穩定、資費低、限速門檻高(200GB/月)
中國電信 次要 CN2 GIA 骨幹,延遲最低,南方地區覆蓋強
中國移動 偏遠備援 覆蓋最廣,山區 / 郊區補位
提示:三卡透過 OpenMPTCProuter 自動 Bonding,單卡斷線不影響直播。如果預算有限只辦兩張,建議聯通 + 移動,覆蓋互補效果最好。

重要注意事項

  • 流量「定向」與「通用」陷阱:部分加餐包標榜「定向流量」(如騰訊系、阿里系免流)。推流到 Twitch 或日本伺服器不適用定向流量。必須確認購買的是「通用流量」或「國內 + 國際通用」。
  • 限速門檻(公平使用政策):
    電信商 達量限速門檻 限速後速度
    聯通 200GB/月 1Mbps(仍可推流但碼率需降)
    移動 100GB/月 128Kbps(基本無法推流)
    電信 200GB/月 3.1Mbps(可低碼率備援)
  • 實名制與風控:台胞證辦卡後,如果回台灣長期不使用,可能被系統判定為「異常」而停話。解決方案:每月至少發一則簡訊,或產生少量流量,保持活躍。也可以開通國際漫遊(收簡訊免費)。
  • 繳費便利性:中國門號回台灣後,無法用台灣信用卡直接繳費。建議綁定支付寶或微信支付,或請中國朋友協助代繳。

實用聯絡方式

項目 資訊
中國聯通國際客服 +86-186-1861-0010(可英文/繁體中文)
中國移動國際客服 +86-138-0010-0186
中國電信國際客服 +86-189-1891-0000
工信部投訴 https://dxss.miit.gov.cn

設定步驟

本章節分為四個分頁。依據你選擇的架構路線和設備,點擊對應的分頁,查看詳細設定指令與實戰細節。

台灣端 Linux 設定(路線 A:本機 ingest)

前置條件:Ubuntu 22.04 / Debian 12、具備真正的公網 IPv4(不是 CGNAT)、路由器可以設定 Port Forwarding。

1. 安裝 omr-server 與 xray 細調

# 安裝 OpenMPTCProuter server (內含 xray)
wget -O - https://www.openmptcprouter.com/server/omr-6-install.sh | sh

# 取得 server key (RPi5 設定時需填入)
cat /root/openmptcprouter_config.txt

編輯 /etc/xray/config.json,確保 VLESS+Reality 參數正確:

{
  "inbounds": [{
    "port": 443, "protocol": "vless",
    "settings": {
      "clients": [{ "id": "你的UUID", "flow": "xtls-rprx-vision" }],
      "decryption": "none"
    },
    "streamSettings": {
      "network": "tcp", "security": "reality",
      "realitySettings": {
        "dest": "www.cloudflare.com:443",
        "serverNames": ["www.cloudflare.com"],
        "privateKey": "你的私鑰",
        "shortIds": ["隨機8位hex"],
        "fingerprint": "chrome"
      }
    }
  }]
}

2. mediamtx 安裝與 Auth 設定

密碼警告:liveu 與 obs 的密碼只能使用大小寫英文與數字 (A-Za-z0-9)!不可以包含 @ : / # ? & 等特殊字元。否則 LiveU 設備解析 RTMP URL 時,會靜默失敗。
VERSION="v1.9.1"
wget https://github.com/bluenviron/mediamtx/releases/download/${VERSION}/mediamtx_${VERSION}_linux_amd64.tar.gz
tar -xzf mediamtx_*.tar.gz && sudo mv mediamtx /usr/local/bin/

設定 /etc/mediamtx.yml:

authMethod: internal
authInternalUsers:
  - user: liveu
    pass: 純英數字強密碼
    permissions: [{ action: publish, path: live/liveu }]
  - user: obs
    pass: 純英數字強密碼
    permissions: [{ action: read, path: live/liveu }]
rtmpAddress: :1935
paths:
  live/liveu:
    sourceOnDemand: no

3. CAKE QoS 與 MSS Clamp (核心優化)

# CAKE QoS (將 90000kbit 換成實際上傳頻寬的 90%)
sudo tc qdisc replace dev eth0 root cake bandwidth 90000kbit \
  diffserv4 dual-srchost nat wash no-ack-filter split-gso rtt 50ms

# MSS Clamp (寫死 1360,避開 PMTU Blackhole)
sudo iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
  -j TCPMSS --set-mss 1360
sudo apt install iptables-persistent -y && sudo netfilter-persistent save

4. 防火牆 (UFW) 與 systemd

sudo ufw allow 443/tcp          # xray VLESS+Reality
sudo ufw allow 1935/tcp         # mediamtx RTMP
sudo ufw allow 65001/udp        # omr-server Glorytun
sudo ufw allow 65101/tcp        # omr-server Shadowsocks
sudo ufw allow 65201:65208/udp  # omr-server MLVPN
sudo ufw enable && sudo ufw reload

# 設定自動重啟
sudo systemctl edit xray --force
# 填入:[Service]\nRestart=always\nRestartSec=5
sudo systemctl edit omr-server --force
# 填入:[Service]\nRestart=always\nRestartSec=10

VPS 設定(路線 B:VPS ingest)

架構差異:VPS 直接具備公網 IP,不需要處理 CGNAT 和路由器 Port Forwarding。但是 OBS 需要跨公網拉流,所以安全性設定更重要。

1. VPS 選型與線路測試

  • 規格:1 vCPU / 1GB RAM 即足,頻寬 ≥ 20Mbps。
  • 線路:優先選擇 CN2 GIA (電信) / AS9929 (聯通) / CMIN2 (移動) 優化線路。
# 在 VPS 上測試回程線路 (各跑 100 次取樣)
apt install mtr-tiny -y
mtr -rwzbc 100 223.5.5.5        # 電信 (阿里 DNS)
mtr -rwzbc 100 114.114.114.114  # 聯通 (114 DNS)
mtr -rwzbc 100 180.76.76.76     # 移動 (百度 DNS)

判斷標準:中間節點丟包不代表真實丟包。只看「最後一跳」是否 0% 丟包,且延遲穩定。

2. 安裝步驟與安全強化

安裝 omr-server、xray、mediamtx、CAKE、MSS Clamp 的指令和「路線 A」完全相同。

UFW 白名單限制:OBS 需要跨公網連入 VPS 的 1935 port,因此強烈建議只允許台灣 OBS 主機的固定 IP 存取,防止 mediamtx 被暴力破解或被盜用推流。
# 僅允許台灣固定 IP 存取 RTMP
sudo ufw allow from 你的台灣固定IP to any port 1935
sudo ufw allow 443/tcp # xray 必須對中國端開放
sudo ufw enable

如果台灣 IP 是動態的,確保 mediamtx 的 obs 密碼足夠複雜,並考慮安裝 fail2ban 監控 1935 port 的異常連線。

中國端 Raspberry Pi 5 設定

核心原則:在台灣完成所有設定和壓力測試,確認無誤後再帶入中國。戶外斷電風險高,必須使用 squashFS 唯讀根目錄系統。

1. 燒錄 OMR 與初次設定

  1. 下載 rpi-5-squashfs-factory.img.gz (v0.63+),用 Balena Etcher 燒錄至 microSD (A2 Class 10)。
  2. 用網路線連接電腦與 RPi5 的 LAN 口,並用瀏覽器開啟 http://192.168.100.1 (注意是 http)。
  3. 預設帳號 root,密碼為空,立即設定強密碼。

2. VPN 協議與 WAN 設定

進入 System → OpenMPTCProuter → Settings Wizard,填入台灣端 IP 與 Server Key。

協議選擇:強烈建議首選 Hysteria2 (UDP/QUIC)。MPTCP 本身是 TCP。如果再選擇 VLESS+Reality,會形成「三層 TCP」。在戶外 4G/5G 高丟包環境下,三層 TCP 會引發嚴重的 Head-of-Line Blocking,導致斷流。

進入 Network → Interfaces,將識別為 eth1, eth2, eth3 的 USB Modem 新增為 WAN 介面,並在各介面的 Advanced Settings 中勾選 MSS clamping。

3. 關閉 USB Autosuspend (必須執行)

Linux 預設會讓閒置的 USB 休眠,導致 Modem 假死,而且 log 沒有錯誤訊息。SSH 連入 RPi5,執行:

# 永久關閉 USB 休眠
echo 'usbcore.autosuspend=-1' >> /etc/cmdline.d/usb.conf
reboot

4. LiveU Solo 設定 (強烈建議有線)

  • 物理連接:使用 Cat5e 網路線連接 LiveU Solo 的 Ethernet 口與 RPi5 的 LAN 口 (eth0)。有線可以消除 WiFi 干擾,延遲穩定 <1ms。
  • Solo Portal:推流模式選 RTMP Direct,URL 填入 rtmp://liveu:密碼@你的公網IP/live/liveu。
  • 備援:在 Portal 中保留 LRT + RTMP 設定。緊急時,可以一鍵切換回 LiveU 日本 AWS 中轉。

OBS 推流端設定 (Windows / Linux 筆電)

OBS 負責從 ingest server 拉流、疊加版面與 Alert,並二次編碼後推送到 Twitch。

1. 編碼器選擇 (Linux 筆電適用)

顯卡類型 推薦編碼器 OBS 設定名稱 備註
NVIDIA (GTX/RTX) NVENC H.264 NVIDIA NVENC H.264 首選,需 proprietary driver
Intel (UHD/Iris) VA-API H.264 FFmpeg VA-API H.264 需安裝 intel-media-driver
AMD (RX 5000+) VA-API H.264 FFmpeg VA-API H.264 open source 驅動已內建
無獨顯 / 舊硬體 x264 (CPU) x264 吃 CPU,建議碼率 ≤ 4500kbps

2. Media Source (拉流設定)

來源 → 新增 → 媒體來源,取消勾選「本機檔案」:

  • 路線 A (內網):rtmp://obs:密碼@192.168.x.x/live/liveu
  • 路線 B (公網):rtmp://obs:密碼@VPS公網IP/live/liveu
緩衝設定:勾選「使用緩衝」,大小設為 1000-3000 ms。不可以勾選 Ultra Low Latency。OBS 進階設定中的 Network Buffering 建議設為 1-5 MB,設 0 會卡頓。設超過 10 MB 會累積明顯延遲。

3. 推流設定 (OBS → Twitch)

設定項目 建議值 說明
碼率控制 CBR 固定碼率讓 bonding 流量可預測,避免突發流量擠爆頻寬
目標碼率 6000–8000 kbps 依出發前實測的「穩定最低聚合頻寬」決定
關鍵影格間隔 2 秒 Twitch 強制要求
B-frames 0 降低 encoder 內部緩衝延遲
Profile / Tune high / zerolatency 兼顧畫質與即時性
Linux 筆電使用者注意 (NVIDIA Optimus):
如果你的筆電同時擁有 Intel 內顯與 NVIDIA 獨顯,OBS 預設可能使用內顯編碼,導致極度卡頓。必須在終端機使用 prime-run obs 啟動 OBS,或在 ~/.bashrc 中設定 export __NV_PRIME_RENDER_OFFLOAD=1 強制使用獨顯 NVENC。出發前必須使用 nvidia-smi 確認驅動已正確載入。

免 Bonding 精簡方案:單卡直推

適用情境:只有 1 張可用 SIM 卡、想先簡化測試,或訊號穩定而不需要多卡合併容錯。核心邏輯不變(RTMP Direct + VLESS+Reality 偽裝科學上網)。差別只在拿掉 MPTCP 這一層 bonding。

適用情境與取捨

你的情況 建議
只有 1 張可用 SIM(例如只申請了聯通卡) 用本節精簡版
想先驗證 RTMP Direct + Reality 整條鏈路是否可行,再加 bonding 用本節精簡版起步,之後升級到完整 Bonding 版
訊號涵蓋穩定的城市戶外(非深山/邊境) 精簡版夠用,單卡波動風險可以接受
長時間戶外移動直播、追求最高容錯 用完整 Bonding 版(見「設定步驟」章節)

拿掉 bonding,放棄的是「單卡波動不影響直播、多卡頻寬合併」這兩個核心承諾。換來的是:設定複雜度大幅降低、少一張 SIM 卡的月租費、少一層 TCP 疊加。

架構圖與封包結構

中國現場                                    台灣/海外
┌──────────────┐   Ethernet   ┌──────────┐   VLESS+Reality   ┌──────────────┐
│  LiveU Solo  │ ───RTMP────► │   RPi5   │ ─────(TCP)───────► │ ingest server │
│ (RTMP Direct)│              │ (xray    │      單一 SIM       │ (xray+media-  │
└──────────────┘              │  client) │      無 bonding     │  mtx)         │
                               └──────────┘                     └──────────────┘
                                    │
                               單張 SIM 卡
                               (4G/5G 直連)

拿掉 MPTCP subflow 這一層後,變成兩層 TCP:RTMP (TCP) → Reality (TCP) → 單一實體網路(4G/5G)

少一層 TCP 不代表問題消失:TCP meltdown / HOL Blocking(見「深度說明」章節)的嚴重程度比完整 bonding 版(三層 TCP)低,但沒有消失。RTMP 本身是 TCP,Reality 隧道也是 TCP。兩層疊加的問題依然存在。

RPi5 端設定

不需要 OpenMPTCProuter(OMR 的核心賣點是 MPTCP bonding,單卡用不到)。改用標準 Raspberry Pi OS Lite + xray-core client,設定更單純:

  1. 用 Raspberry Pi Imager 燒錄 Raspberry Pi OS Lite (64-bit),開機後用 SSH 連入並更新系統
  2. 安裝 xray-core:
    bash <(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)

client 設定(/usr/local/etc/xray/config.json):

{
  "inbounds": [
    {
      "listen": "0.0.0.0",
      "port": 1935,
      "protocol": "dokodemo-door",
      "settings": {
        "address": "你的 ingest server IP",
        "port": 443,
        "network": "tcp"
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "vless",
      "settings": {
        "vnext": [
          {
            "address": "你的 ingest server IP",
            "port": 443,
            "users": [
              {
                "id": "你的 UUID",
                "flow": "xtls-rprx-vision",
                "encryption": "none"
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "serverName": "你的 SNI",
          "fingerprint": "chrome",
          "publicKey": "你的 public key",
          "shortId": "你的 shortId"
        }
      }
    }
  ]
}

dokodemo-door inbound 直接把本機 1935 port 收到的 RTMP 流量,透過 outbound 的 VLESS+Reality 送到 ingest server 的 443 port。開機自動啟動:

sudo systemctl enable xray
sudo systemctl start xray

LiveU Solo 設定:Ethernet 接 RPi5,目的地 URL 填 rtmp://liveu:密碼@RPi5的LAN IP:1935/live/liveu(注意:目的地是 RPi5 本機的 1935 port,不是公網 IP)。

Server / VPS 端設定差異

沿用完整版的 server 端設定,但跳過安裝 omr-server 這一步。omr-server 是接收 MPTCP bonding 流量的元件,單卡用不到。xray 細調、mediamtx、CAKE、MSS Clamp、systemd 和 UFW 的其餘步驟完全相同。

硬體與費用差異

項目 完整 Bonding 版 精簡版
SIM 卡 2–3 張 1 張
USB Modem ×3 0(使用 RPi5 內建 WiFi 熱點轉發,或接 1 個 USB Modem)
RPi5 系統 OpenMPTCProuter 標準 Raspberry Pi OS Lite
Server 端多裝的元件 omr-server 無
每月 SIM 費用(估) NT$600–1,500 NT$200–500

風險與限制

限制 說明
無容錯 單卡訊號變差或斷線時,沒有其他鏈路支援,直接影響直播
TCP meltdown 仍存在 兩層 TCP(RTMP + Reality)疊加的 HOL Blocking 沒有消失,只是比三層版本輕
抗封鎖能力不變 Reality 偽裝邏輯和完整版完全相同。這不是精簡版犧牲的項目
仍建議備妥 Hysteria2 遇到 Reality 被針對性封鎖,或弱網丟包嚴重時切換

手機直推變體(無 RPi5)

如果連 RPi5 都想省掉,改成手機直接當編碼器(例如 Moblin 或其他支援 RTMP/SRT 輸出的直播 app)。SIM 卡直接插在手機上,用 v2rayNG(Android)或 NekoBox 等 app 建立 VLESS+Reality tunnel,並用 VPN 模式導流本機流量。

協議選擇邏輯和本節一致,但更偏向 Reality:
  • 手機使用電信 SIM 卡上網。電信商對行動資料 UDP 流量限速的機率,比固定寬頻更高。Hysteria2(QUIC/UDP)被限速的風險比 Reality 高
  • 少了 RPi5 這一層,封包結構是 RTMP + Reality 兩層 TCP。HOL Blocking 風險可以控制
  • 單一連線沒有 bonding 分散風險。被 GFW 主動探測時,偽裝成正常 HTTPS 的 Reality 比 Hysteria2 更保險
什麼時候切 Hysteria2:Reality 被針對性封鎖時,作為備援。或者訊號極差(丟包率高到 HOL Blocking 已嚴重卡頓)時,QUIC 的抗丟包能力優先於偽裝能力。
注意:坊間有些整理主張:手機戶外移動直播「不論訊號好壞,都該直接用 Hysteria2」。這種主張把電信商 UDP 限速風險完全排除在考量之外。這個立場過於武斷。電信商是否對行動資料做 UDP QoS,因地區、電信商和時段而異。沒有普遍成立的證據。本節維持「訊號正常時 Reality 優先,訊號極差時才切換到 Hysteria2」的雙風險比較邏輯。這是較保守的判斷方式,不預設武斷的結論。

這個變體也是「備援計畫與故障排查」章節「情況 B」(RPi5 或 USB Modem 全數故障)的正式版本。差別在於:情況 B 是臨時應急。這裡是把這個變體當成一開始就規劃好的正式架構。

深度說明

台灣端 VPS 為何仍需要 Reality 偽裝?

很多人誤以為「伺服器在台灣,GFW 管不到」。這是錯誤的。GFW 封鎖的不是「某個國家的 IP」,而是「流量特徵」和「協議指紋」。

架構組合 GFW 能否識別 RTMP? 預計存活時間
台灣 IP + RTMP 明文 (無隧道) 100% 可識別 (DPI 看穿) < 10 秒
台灣 IP + Reality 偽裝 無法識別 (視為 TLS) 長期穩定
結論:「有沒有偽裝」比「伺服器在哪裡」重要 100 倍。台灣 IP 的優勢是「被主動列入黑名單的機率較低」,而且「延遲低」。但是如果不包上 Reality 隧道,RTMP 的握手魔數 (0x03) 在出境瞬間,依然會被 GFW 靜默丟包。

VLESS+Reality+Vision vs Hysteria2 深度比較

比較項目 VLESS+Reality+Vision Hysteria2
底層傳輸 TCP UDP/QUIC
協議角色 VLESS(協議)+ Reality(偽裝)+ Vision(優化) 單一協議,內建混淆和擁塞控制
抗封鎖能力 ★★★★★ 偽裝成正常 HTTPS,幾乎無特徵 ★★★★ 有混淆,但 UDP 可能被標記
弱網表現 TCP in TCP 可能 HOL blocking QUIC + Brutal 擁塞控制,丟包恢復快(前提是頻寬填寫正確)
推流友善度 需調高 OBS buffer 換穩定 UDP 對即時上傳更友善
被 QoS 風險 低(看起來像正常 443 流量) 中(部分 ISP 對 UDP 限速)
設定複雜度 中(需生成 key/shortId/SNI) 低(YAML 設定,官方引擎簡潔)
社群資源 非常豐富(3x-ui + Xray 生態) 中等(apernet 官方 + 3x-ui 整合)
2024–2025 年更新,會影響上表「抗封鎖能力」評分: USENIX Security 2025 論文證實,GFW 自 2024 年 4 月起,已能大規模解密 QUIC Initial 封包(利用明文傳送的 DCID 推導金鑰),並依 SNI 黑名單封鎖。這是 QUIC 加密假設首次被大規模突破。這不等於 Hysteria2 已被攻破:GFW 是依黑名單比對特定網域,而且解密有計算成本瓶頸,2025 年 3 月後對境外連入方向的處理也已有調整。但是上表中 Hysteria2 的評分基礎確實需要更新為:必須開啟 Salamander 混淆(obfs: salamander),並避開高知名度 masquerade 網域。否則「未混淆」的 Hysteria2 實際抗封鎖能力,可能低於這張表原本評估的水準。這也讓下方「Reality 為主、Hysteria2 為備援」的結論多了一個支持理由。

VLESS+Reality+Vision 有沒有用到 BBR?

上表「弱網表現」只說明了 TCP in TCP 的 HOL blocking。還有一個更底層的變數:BBR/CUBIC 是作業系統核心層的 TCP 壅塞控制演算法,和 VLESS/Reality/Vision 這三層完全無關。這三層都在 TCP 之上執行。封包丟失時是否降速,由目前的作業系統設定決定。

sysctl net.ipv4.tcp_congestion_control
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
關鍵:壅塞控制由發送端決定。 本文件架構是 RTMP(LiveU)→ RPi5(xray client)→ 台灣 server。直播上傳的發送端是 RPi5。真正該優化 BBR 的地方是 RPi5 這台 Linux 機器,不是 LiveU 本身(LiveU 到 RPi5 是區網內部,不會丟包)。
免 Bonding 精簡方案如果用 Windows 直連,沒有原生 BBR。 Windows(10 1809 / 11)預設是 CUBIC。Windows 11 22H2 起可以手動開啟實驗性 BBR2。但社群已回報開啟後會導致 v2rayN 連不上、無法更新。不建議冒險開啟。維持 CUBIC 即可。
更正+新增:上表「QUIC 內建 FEC + BBR」不夠精確。核心其實是 Brutal 擁塞控制。 和傳統 TCP/BBR「一丟包就降速」相反,Brutal 是你告訴它頻寬是多少,它就按固定速率推送,丟包也不降速。這正是直播場景真正得到的好處。但是這個「頻寬」欄位填的是「中國到台灣跨境路徑實測出來的容量」,不是你家寬頻的同步速率(例如 500/500),也不是你打算用掉的量(例如手機直播頂多 20/20)。前者是本地端速率,和跨境瓶頸無關。後者是用量,沒有為 FEC 和重傳開銷留下緩衝。正確做法:用 iperf3 透過隧道,實測跨境路徑在晚高峰的穩定吞吐量,並填入實測值的八到九成。
這裡的風險不對稱:設太大比設太小嚴重得多。 填太小只是安全,但浪費頻寬(吞吐量鎖在上限以下,路徑能承受更多,卻沒有用到)。填太大是主動把整條連線打爆:Brutal 不會「填不滿就算了」。Brutal 照你填的數字持續推送,把鏈路灌爆,丟包更嚴重,連 RTMP 推流本身都會受影響。
Hysteria2 不是隨時都用滿頻寬。 只有「持續有資料要送(如 OBS 穩定輸出),而且路徑發生丟包」時,Brutal 才會用到設定的頻寬上限,並且不退讓。平常瀏覽這類輕量使用,傳多少就送多少,不會憑空用滿頻寬。
Gecko 混淆(v2.9.2 新增,2026-05):本文件架構可能還用不到。 Gecko 建立在 Salamander 之上,把 QUIC 握手包拆成隨機碎片。但是只有 mihomo 1.19.26+ 支援。sing-box 只有 1.14 alpha 預覽版支援。Xray-core 系(含 3x-ui 面板)完全不支援。如果你的 RPi5 或伺服器使用 3x-ui,目前仍然只能使用 Salamander。
維運提醒:Xray-core 已移除 allowInsecure。 2026 年起(約 v26.1.31 硬報錯、v26.2.6 正式移除,UTC 2026-06-01 舊設定全面失效),Xray-core 移除了「跳過憑證驗證」的 allowInsecure 開關,改用 pinnedPeerCertSha256。VLESS+Reality 完全不受影響。但是,如果本架構任何一段使用 Xray-core + 自簽憑證執行 Hysteria2,而且設定中有 allowInsecure,內核可能拒絕啟動。檢查設定檔,改填 pinnedPeerCertSha256,或改用官方 hysteria 引擎。

TCP in TCP 問題說明與解法

本架構如果使用 VLESS+Reality,封包結構為 RTMP (TCP) → Reality (TCP) → MPTCP subflow (TCP),三層都是 TCP。在戶外 4G/5G 丟包率高的環境下,外層 TCP 的重傳機制會阻塞內層 TCP 的 ACK,引發嚴重的 Head-of-Line Blocking (HOL Blocking),導致直播延遲飆升,甚至斷流。

避開 TCP in TCP 的實戰建議

方案 做法 適用情境
方案 A(推薦) 在 OMR 的 VPN 設定改用 Hysteria2(UDP/QUIC 底層) GFW 對 UDP 干擾不嚴重的地區
方案 B 使用 Glorytun UDP 或 MLVPN 作為底層隧道,承載 Xray 需要 UDP 穿透力更強的方案
方案 C(保底) 維持 VLESS+Reality,但備妥 Hysteria2,在 OMR 快速切換 見備援計畫
注意:如果必須維持 VLESS+Reality,在戶外弱網環境下,必須接受 HOL Blocking 風險。這時建議把 OBS 的 Network Buffering 調高到 3–5 MB,以延遲換取穩定性。

協議封裝命名對照

「隧道包隧道」(tunnel-in-tunnel)沒有統一的專有名詞。但依外層和內層協議的組合,各有各的說法。以下整理四種組合,並對照本頁的實際情境:

組合 常見說法 是否有專屬問題名稱 對應本文件情境
TCP in TCP
(外層TCP包內層TCP)
TCP-over-TCP TCP meltdown
(TCP-over-TCP problem)
本架構使用 VLESS+Reality 時的 RTMP → Reality → MPTCP(見上方「TCP in TCP 問題說明」)
UDP in UDP
(外層UDP包內層UDP)
UDP-over-UDP 無特別名稱
(最自然的組合,沒有已知問題)
本架構使用 Hysteria2(QUIC/UDP)時的情境
TCP in UDP
(外層UDP包內層TCP)
TCP-over-UDP 無專屬名稱 例如 QUIC 本身:底層是 UDP,但在其上模擬了類似 TCP 的可靠傳輸行為
UDP in TCP
(外層TCP包內層UDP)
UDP-over-TCP 無專屬名稱
(有潛在問題但未被廣泛討論)
例如 SRT(UDP)外層包 VLESS+Reality(TCP)。本架構因 LiveU 不支援 SRT Direct 而未採用。但是改用支援 SRT 的推流端時,就會遇到這種情境
總結:這四種組合通稱 protocol tunneling 或 encapsulation。四者之中,只有 TCP in TCP 的問題有正式名詞 TCP meltdown (外層 TCP 重傳會阻塞內層 TCP 的 ACK,引發上方提到的 Head-of-Line Blocking)。其餘三種組合目前都只是描述性說法,沒有被廣泛討論的專屬問題名稱。
2024–2025 年更新:USENIX Security 2025 論文證實,GFW 自 2024 年 4 月起,已能大規模解密 QUIC Initial 封包,並依 SNI 黑名單封鎖。這表示「Hysteria2 抗封鎖能力優於 Reality」不能再視為理所當然。GFW 對 QUIC 已經有主動 DPI 能力,不只是「有混淆就安全」。GFW 仍然是依黑名單比對,不是無差別封鎖,而且解密有計算成本瓶頸。但是必須開啟 Salamander 混淆,並確認 masquerade 網域不是高知名度站點。

實戰建議:VLESS+Reality 為主、Hysteria2 為備援

不是二選一,而是「主力 + 備援」的組合:

為什麼 Reality 是預設

  • RTMP 本身是 TCP。整條鏈路(RTMP → 隧道 → MPTCP)本來就以 TCP 為基礎。使用 Reality 不會多引入一種傳輸層
  • 偽裝能力最強。GFW 看到的是標準 TLS 1.3 握手。被主動探測時,Reality 還會把連線轉發給真實網站,幾乎沒有特徵
  • 長期來看,抗封鎖穩定性優於 Hysteria2(UDP 特徵即使有混淆,還是比偽裝成正常 HTTPS 更容易被盯上)
但是要有心理準備:三層 TCP(RTMP + Reality + MPTCP)在戶外高丟包環境下,有 TCP meltdown / HOL Blocking 風險(見上方協議封裝命名對照)。直播延遲可能飆升,甚至斷流。解法是把 OBS 的 Network Buffering 調高到 3–5 MB,用延遲換取穩定。

什麼時候切 Hysteria2

  • Reality 突然被 GFW 針對性封鎖
  • 弱網環境的丟包率特別高,TCP meltdown 已經嚴重影響直播品質時,QUIC 的多路復用可以讓丟包不阻塞整體
  • 代價是:UDP 在部分中國 ISP 會被 QoS 限速,設定複雜度也略高

實戰 SOP

  1. 平時用 VLESS+Reality 開播
  2. 在 ingest server 同時安裝好 Hysteria2,保持隨時可以切換的狀態
  3. 直播中如果發現碼率異常或延遲飆高,直接在 OpenMPTCProuter 後台切換協議。不需要重新設定整條鏈路
一句話:Reality 求穩,Hysteria2 求快。兩個都備好。建議不要只選一個。

MTU / MSS / Bufferbloat 深度說明

為什麼 MTU/MSS 在這套架構特別重要?

本系統的封包結構經歷多層封裝,每一層都會消耗 header 空間:

RTMP(TCP)
  ↳ 包在 VLESS+Reality(TCP + TLS overhead,約 60 bytes)
      ↳ 包在 MPTCP(subflow header,約 20 bytes)
          ↳ 傳出實體網路(Ethernet MTU 1500 bytes)

如果內層 TCP 的 MSS 沒有向下調整,加上外層 header 後會超過 1500 bytes。這會導致靜默分片(silent fragmentation)、PMTU Blackhole(ICMP 被過濾,導致 PMTU Discovery 失效)、重傳率暴增,以及 OBS 畫面卡頓。

MSS 計算邏輯

計算步驟 數值
設定 tunnel 介面 MTU 1400 bytes(為外層封裝保留 100 bytes 空間)
減去 IP header − 20 bytes
減去 TCP header − 20 bytes
最終 MSS 設定值 1360 bytes
為什麼用固定值,而不是 --clamp-mss-to-pmtu?
動態方式依賴 PMTU Discovery(透過 ICMP Type 3 Code 4)。但是跨境鏈路的 ICMP 常被 GFW 或 ISP 過濾,PMTUD 會靜默失效。直接固定為 1360 是更可靠的做法。

Bufferbloat 與 CAKE QoS 的關係

台灣端上傳頻寬同時被 OBS(推 Twitch)和 omr-server(接收中國端串流)佔用時,如果沒有 QoS,TCP ACK 封包會被大封包排在後面等待。中國端的 LiveU 收不到 ACK,就會誤以為鏈路惡化而降低碼率。CAKE QoS 的作用是確保上傳隊列不會被少數大封包塞滿,讓 ACK 能及時通過。

上線前測試清單

核心原則:在台灣模擬完整流程,出發前排除所有問題。不可以到中國現場才發現問題並除錯。

基本連線測試

  • RPi5 連上 ingest server(omr-server 後台顯示 connected)
  • xray tunnel 建立成功(journalctl -u xray 無錯誤)
  • LiveU RTMP Direct 推流到 mediamtx(http://Linux機IP:9997 顯示 publisher)
  • OBS 能從 mediamtx 拉流
  • OBS 能推流到 Twitch

斷線恢復測試(必須測試)

  • 拔掉 Modem A:觀察 LiveU 碼率是否平滑下降但繼續推流。重新插回後,確認是否自動恢復
  • 拔掉 Modem A + B(只剩 C):確認系統能以單卡繼續推流
  • 重啟 xray: systemctl restart xray,觀察 LiveU 是否在 30 秒內自動 reconnect
  • 重啟 omr-server:systemctl restart omr-server,觀察整條 tunnel 的恢復時間
  • 重啟 mediamtx:systemctl restart mediamtx,觀察 OBS 的 Media Source 是否自動重連
注意:如果 LiveU 斷線後不會自動 reconnect,出發前必須制定手動重連的 SOP(例如準備好能開啟 Solo Portal 的手機)。不能只依賴自動恢復。

壓力測試

  • 持續推流 30 分鐘,觀察碼率穩定性
  • 觸摸 USB Modem 檢查溫度。過燙時,必須加裝散熱
  • 確認 CAKE 在運作:tc qdisc show dev eth0
  • 確認 MSS clamp 有封包計數:iptables -t mangle -L FORWARD -v | grep TCPMSS

備援計畫與故障排查

備援計畫

戶外直播有很多變數。必須針對各種潛在故障點,準備對應的備援方案(Plan B),確保直播不中斷。

情況 A:ingest server 故障(本機或 VPS)

  • 對策:切回 LiveU LRT 模式。
  • 操作:LiveU Solo Portal → 關閉 RTMP Direct → 改回 LRT + RTMP 輸出 → 目的地填入 LiveU 雲端轉發設定。
  • 注意:雖然經過日本 AWS 會增加延遲,但直播至少不會中斷。平時在 Portal 中保留 LRT 設定,不可以刪除。

情況 B:RPi5 或 USB Modem 全數故障

  • 對策:LiveU 直接改用手機熱點,繼續用 RTMP Direct 單卡推流(沒有 bonding,但維持直播)。
  • 協議選擇:手機使用電信 SIM 卡資料。UDP 流量被電信商限速的機率,比固定寬頻更高。建議手機端優先使用 VLESS+Reality ,不選 Hysteria2。只有在 Reality 被針對性封鎖,或訊號極差時,才切換。

情況 C:Reality 被 GFW 封鎖

  • 對策:預先在 ingest server 安裝好 Hysteria2 備用。
  • 操作:在 OpenMPTCProuter 後台的 VPN 設定中,切換為 Hysteria2。
  • 注意:必須保留備用協議,才能隨時切換。不可以只有單一隧道協議。

情況 D:台灣 ISP 故障(路線 A)

  • 短期:啟用 4G 備援路由(如果有備用 router)。
  • 中期:臨時切換到路線 B(快速開一台 VPS,使用相同的設定流程)。

情況 E:方案一整體失效(VPS IP 被封 + Reality 被封)

依序嘗試以下切換順序:

  1. 換 VPS IP:同一供應商重新開機,取得新 IP,或換節點。
  2. 切換到 Hysteria2:參考情況 C。
  3. 切換到方案二(科學上網卡 + LRT):準備一張備用科學上網卡,LiveU LRT 設定保留不刪。
  4. 切換到方案三(租屋固定寬頻):如果有中國據點,啟用備用 Windows PC Xray。
最終防線:建議至少保留方案二(科學上網卡 + LRT)作為最終備援。重大直播當天突發封鎖時,科學上網卡的切換速度最快,可以確保重要活動順利播出。

故障排查

系統出現異常時,依照以下症狀與指令排查。

症狀 診斷指令 說明
Bonding 沒有合併頻寬 systemctl status mptcpd 確認 MPTCP 服務狀態。確認三個 WAN 介面都 Connected。如果是 HiLink mode,確認三張卡的網段不衝突。
Modem 突然消失
(WAN disconnected)
lsusb
cat /sys/module/usbcore/parameters/autosuspend
dmesg -T | grep -i usb | tail -20
autosuspend 應顯示 -1;over-current → 供電問題;device disconnected → 過熱問題。
Tunnel 不通 / GFW 封鎖 ss -tlnp | grep 443
journalctl -u xray -f
確認 xray 監聽 443。確認 port 443 forwarding 正確(路線 A)。
LiveU 推流被拒
(Auth 失敗)
journalctl -u mediamtx -f 密碼如果含特殊字元,需要 URL encode(例如 @ → %40)。
OBS 拉不到串流 systemctl status mediamtx
瀏覽器開 http://Linux機IP:9997
確認 LiveU 正在推流(必須有 publisher,OBS 才能拉流)。OBS URL 格式必須包含 auth。
推流碼率不穩 / jitter 高 tc qdisc show dev eth0
sudo iptables -t mangle -L FORWARD -v | grep TCPMSS
確認 CAKE 已套用。如果 MSS clamp 封包計數為 0,表示規則被覆蓋,必須重新插入。
全域快速檢查 systemctl status omr-server xray mediamtx 三個服務都 active (running) 是基本前提。

安全性注意事項

將串流服務暴露在公網(尤其是路線 B 的 VPS)時,必須做好基本的安全防護,避免被盜用推流、頻寬被盜用或遭受惡意攻擊。

必須執行的事項

  • mediamtx 帳密分離:設定 publish (LiveU 推流) 與 read (OBS 拉流) 分開的兩組帳密。不可以用同一組。
  • 強密碼與隨機 UUID:xray 使用強密碼和隨機產生的 UUID,避免被掃描器爆破。
  • 不可以洩漏機密:不在任何公開頻道、截圖或直播畫面中洩漏 Stream Key、Reality 私鑰、mediamtx 密碼或 VPS 真實 IP。

建議事項

  • 優先使用 RTMPS:如果 LiveU Solo 版本支援 RTMPS Direct,優先使用 RTMPS 加密 RTMP 流量,防止中間人攔截。
  • IP 白名單(路線 B 必備):VPS 的 mediamtx RTMP port (1935) 加上 IP 白名單,只允許台灣 OBS 主機的固定 IP 存取。
  • 安裝 fail2ban:在 ingest server 安裝 fail2ban,自動封鎖暴力嘗試 SSH 或 RTMP port 的惡意 IP。
  • 定期檢查日誌:定期確認 journalctl -u mediamtx 中沒有異常的 publish 嘗試,也沒有未知 IP 的連線紀錄。

不可以做的事

  • 裸露 mediamtx(沒有 auth 設定,任何人都可以推流與拉流,極易被盜用頻寬,推播違規內容)。
  • 使用弱密碼或預設密碼(如 admin、123456、liveu123)。
  • 公開 Reality 的 shortId 或 privateKey(這會導致偽裝完全失效,節點會立即被封鎖)。
  • 在 GitHub 等公開儲存庫提交包含真實 IP、UUID 或密碼的 config.json 或 mediamtx.yml。