什麼是 OONI¶
連不上某個網站時,第一個直覺通常是「是我網路有問題嗎?」OONI(Open Observatory of Network Interference,網路干擾開放觀測)就是為了把這種感受轉成可驗證的資料。它提供開源檢測工具 OONI Probe 與公開資料平台 OONI Explorer,讓任何人都能跑檢測、查紀錄,把封鎖、監控、降速這些行為留下時間、地點、ASN 都對得上的觀測痕跡。
對在台灣的我們,OONI 的核心價值在於讓討論能以資料為基礎。某個網站連不上,不必停在「是不是被封鎖了」的猜測,OONI 能留下時間、地點、ASN 都對得上的紀錄,讓社群、媒體、研究者佐證一次連線異常時有可引用、可重現的依據。也因此,ASN 觀測涵蓋率 在台灣才會是個值得長期關注的議題,觀測點越多元,這份紀錄的代表性就越強。
OONI 計畫主要推動事項¶
OONI 的工作可以拆成四塊。核心是 OONI Probe 這個檢測應用程式,用來檢查特定網站或線上服務是否被封鎖。跑出來的結果會公開成資料集,任何人都能線上查閱與分析,了解各地網路的審查狀況。OONI 同時跟研究人員、倡議者合作,分析這些資料、追蹤全球與區域網路干擾的趨勢與影響,也跟各地組織與在地社群合作,把檢測能力鋪到更多網路角落。
參與 OONI 的檢測活動,等於把你這條網路的觀測資料留進公開資料集。當其他人需要佐證封鎖事件、追跨境差異、或對照不同 ASN 的狀況時,會有更多元的紀錄可以引用。
如何運作?¶
- Probe:為 OONI 檢測觀察程式。
- Censor:為資訊傳輸過程中的監控者,可能為公司 IT 網路、電信公司、國家等級的網路架構。網路干預可透過以下方式進行,但其結果與目的都是阻止檢視網站內容。
- DNS 篡改(DNS tampering、DNS 異常):把網址解析導到錯誤位址,讓你連到假網站或直接連不上。
- IP 封鎖(TCP/IP 異常):直接擋掉目標伺服器的 IP,封包送不到。
- HTTP 封鎖(HTTP blocking):在網頁連線層攔截,常見是跳出一頁封鎖告示。
- 基於 TLS 的干擾:在加密連線剛要建立(TLS 握手)時把它切斷,例如 ClientHello 訊息後出現連線重置或連線逾時(timeout)。
- Tor:洋蔥路由網路,將連線請求透過三層節點的轉介傳送取得資訊。
- Helper:檢測目標對象,可能為網站、通訊軟體連線、VPN 連線、連線效能等。
在臺灣比較熟悉與類似的阻擋行為與技術如中華電信提供的「色情守門員」、透過 DNS 阻擋廣告、惡意網站的 AdGuard、Pi-Hole。 或是數位發展部與財團法人臺灣網路資訊中心(TWNIC)進行網域阻擋的打擊詐騙方式,都可算是阻擋網頁瀏覽。
我們所處的網路是否真的自由?
以上舉例通常都是針對惡意網站、網路廣告、釣魚詐騙來進行善意阻擋(如:DNS RPZ),但如果是刻意阻擋某些內容呢?或是來自某些未被觀察紀錄到 ASNs 的阻擋行為?雖然目前觀測的資料都無大規模阻擋,但因為觀測資料多樣性不足,都只集中在中華電信(AS3462)的觀測資料,因此在「各區域觀察資料與 ASNs 涵蓋率」研究項目中會比對目前我們還有多少在 TW 的 ASNs 是未被觀測到的。
OONI 適合做什麼、不適合做什麼¶
OONI 的定位跟 Tor、Tails 不一樣:Tor 與 Tails 給使用者保護自己用,OONI 給社群、媒體、研究者觀測網路環境用。動手前先回頭看 威脅模型如何建立 有助於釐清需求是不是真的對得上 OONI 解決的問題。
適合:
- 佐證封鎖事件。某個網站某個時段在某個 ASN 連不上,OONI Probe 跑過會留下可引用的紀錄。
- 長期觀測單一地區的網路環境變化。把 OONI Probe 跑成 cronjob,幾個月下來能看到趨勢。
- 跨 ASN、跨地區比較。OONI Explorer 上不同 ASN 的觀測結果可以對照,找出哪一段網路有差異。
- 媒體、研究、倡議用途。需要外部可驗證的數據時,公開資料集是堅實的引用基礎。
不適合:
- 即時警報。OONI Explorer 上的資料透過 fastpath 接近即時,但仍不是給「現在這一秒網站連不上」做秒級告警用的。S3 原始資料集另有約一小時的批次延遲。
- 判斷單一裝置中毒或本地 DNS 設錯。OONI 看的是網路層的可及性,不是端點安全。
- 辨識深度封包檢測(DPI)行為的細節。OONI 觀察的是「結果」(連得上/連不上、回應內容是否異常),不是「過程」中的封包細節。
- 取代 Tor 或 VPN。OONI 不會把你的連線匿名化,它只是讓你知道網路有沒有在干預。
OONI Probe 觀測程式提供行動裝置版本(Android, iOS)、桌面版本(Windows 64bit, macOS)、或是無任何桌面介面的終端程式版本。
終端機介面可以使用 ooniprobe run 執行所有檢測項目。或是設定 cronjob(Linux 上的排程工具,讓指令定時自動執行)在空閒時間跑觀察檢測。
# 在第 4、10 和 22 小時的第 10 分鐘執行。
10 4,10,22 * * * ooniprobe run > /dev/null 2>&1 &
自動執行
ooniprobe autorun 指令目前僅在 macOS 有效。在 Debian/Ubuntu Linux 上安裝 CLI 後,背景定期測試預設就會啟用,不必另設 cronjob。上面的 cronjob 範例適用於沒有自動執行的環境。
OONI Explorer 觀測資料¶
檢測到的觀察資料會即時回傳到 OONI 的資料庫,可透過 OONI Explorer 線上分析各個區域的狀況及不同檢測項目的結果。此外,也可以直接存取 S3 儲存空間(Registry of Open Data on AWS),下載延遲一小時的原始觀測資料,以便進行更深入的交叉分析。可根據分析議題需求選擇即時查閱或下載詳細資料進行進一步研究。
常見問題¶
我在家裡跑 OONI Probe,會不會被 ISP 標記?
OONI Probe 的測試行為(連到一份公開的測試清單上的網站、記錄回應)跟一般使用者瀏覽網頁差別不大,台灣目前沒有任何 ISP 因為跑 OONI 而封鎖或警告使用者的案例。如果擔心,預設清單(Test List)排除了多數高敏感類型的網站,可以放心。在審查嚴格的國家(如中國、伊朗)情況不同,OONI 官方文件有額外的風險說明。
OONI 檢測會不會誤判?
會。OONI 看到的是「連線結果與一般情況不同」,不會自動斷定原因。常見誤判來源:對方網站本身故障、CDN 負載平衡造成 IP 變動、本地 DNS 設定錯誤、企業/校園網路的合規過濾。OONI Explorer 把判斷邏輯(DNS、TCP、TLS、HTTP 各層的觀察結果)公開,誤判可以被追查與修正。要做嚴謹結論前,建議交叉比對多個 ASN、多個時段的紀錄。
TWNIC 的 DNS RPZ 阻擋詐騙網站,OONI 算這是審查嗎?
OONI 的角色是觀測與記錄,不是判定。它會把「在這個 ASN、這個時段、這個網站 DNS 解析異常」如實寫下來。是不是「審查」、是不是「合理」要靠人去詮釋。TWNIC 的詐騙網站封鎖在 OONI 資料裡會呈現為 DNS 異常,但不會被自動標記成審查。這也是為什麼觀測資料的價值在於「公開、可重現」,而不是「誰說了算」。
可以同時跑 OONI Probe 跟 Tor 嗎?
可以,但要分清楚目的。OONI Probe 是觀測工具,跑檢測時走的是你本地的 ISP 連線(這樣才能觀測到當地的網路環境)。如果讓 OONI 走 Tor,觀測到的是 Tor 出口節點的網路環境,不是你本地的,失去意義。Tor Browser 與 OONI Probe 在同一台電腦上可以共存,各跑各的。
我在台灣,最簡單的貢獻方式是什麼?
手機裝 OONI Probe,每天讓它跑一次自動檢測就是有效貢獻。如果家裡有 Linux 主機,照本文「如何安裝」段的 cronjob 範例設定,就能持續累積。想再進一步可以參考 OONI 網站檢測清單 補充本地關注的網站,或讀 ASN 觀測涵蓋率 了解哪些 ASN 還缺觀測點。