馬德里的星期五晚上,小剛正準備發布一個重要的更新。他寫好程式碼,跑完測試,最後一步是部署到生產環境。指令很簡單:docker pull。
但映像檔始終無法下載。一開始他以為是自己的網路問題,重試了幾次,改用不同的 Docker Registry。沒有用。最後他發現整個西班牙都面臨同一個問題——但只在有足球比賽的時候。
一場比賽,一個封鎖
這不是小剛的問題,也不是 Docker Hub 的問題。這是 LaLiga——西班牙足球聯賽——為了阻止盜播流,要求 ISP 封鎖特定 IP 區段的結果。而那些 IP 恰好屬於 Cloudflare。
封鎖的影響遠遠超出足球直播。開發者無法拉取 Docker 映像檔,GitHub 無法被存取,甚至依賴 Cloudflare 的智能設備都會失效。一位西班牙的開發者在 Hacker News 上描述了他的經歷:比賽時間一到,他的網路就「神秘地壞了」。ISP 不給錯誤訊息,只是靜靜地丟棄封包。瀏覽器轉個不停,最後顯示「找不到網頁」。
這聽起來很熟悉。中國的 GFW 也是這樣運作的:你不是被明確地拒絕存取,只是被放在一個「偶爾壞掉」的網路裡。
不只是 Docker
LaLiga 的封鎖針對的是 Cloudflare 的 R2 儲存服務,但 Docker Hub 只是其中一個「附帶傷害」。許多開源專案和開發工具都依賴 Cloudflare 的 CDN。
一位開發者提到,他在比賽期間無法修復線上問題,因為工具無法連線。另一位提到,他的智能家居設備——防盜警報和自動門——在比賽時會失效,因為它們的後端也依賴 Cloudflare。
最令人不安的是一個來自上週的報導:一位婦女在社群媒體上求助,她的父親患有失智症,使用一個 GPS 追蹤裝置。有一天晚上,她父親沒有回家,她想定位裝置,卻發現應用程式無法連線。因為剛好有一場足球比賽。
「我無法拉取 Docker 映像檔」這種問題不會登上晚間新聞。但一位失蹤老人的定位裝置失效,這就會。
審查的無意義傷害
LaLiga 的回應是這樣的:這只是「一個小問題」,只影響「一些談論 docker 映像檔或 github 倉庫」的書呆子。
這是一個危險的誤解。當你封鎖一個基礎設施級別的服務時,你影響的不只是「書呆子」。你影響的是所有依賴那個基礎設施的人。
一位開發者在討論串中寫道:「這很難說出口,但這些壓力事件是讓主流人群開始關心審查的唯一途徑。」安全問題和個人安全比開發者的不便更能推動公眾討論。
但這不是一個健康的公眾討論模式。我們不應該等待有人失蹤或受傷,才意識到網路審查的問題。
技術上的問題,社會上的後果
這不是一個單獨的事件。全世界都在朝著更多的網路審查前進,但我們沒有意識到我們正在拆解一個花了巨大努力、智慧和金錢才建構起來的奇蹟。
一位開發者提到了中國的經驗:「那是一個感覺像是還沒有完全形成的網際網路。不是因為技術不夠,而是因為太多的東西被無形地封鎖了。」
西班牙的情況只是這個趨勢的一個例子。一個足球聯賽為了商業利益,就能要求 ISP 封鎖一個全球性的基礎設施。而這發生在一個「西方民主國家」。
如何保護自己
對於面臨這個問題的西班牙開發者,一些實際的解決方案:
- 使用 VPN:繞過本地 ISP 的封鎖。選擇一個不在西班牙的伺服器。
- 獨立 DNS:封鎖如果在 DNS 層面,自訂 DNS 可能有所幫助。
- 法律途徑:向 ISP 和西班牙電信監管機構投訴,聲稱因隨意服務審查而遭受財務損失。
但這些只是短期解決方案。長期來看,我們需要更系統性的改變。
一個開發者提議建立一個網站,提供簡單的投訴模板,讓人們可以更容易地發送正式投訴。「投訴的阻力越小,就會有越多的人去做,這或許能引起更多關注。」
但另一位開發者對此持悲觀態度:「LaLiga 在國內似乎有足夠的政治權力來掩蓋這一切。」
網際網路正在被拆解
一位開發者寫道:「我很驚訝在未來 10 年內,消費者是否能直接存取網際網路。一切都將必須透過核准的應用程式。」
這聽起來很誇張,但看看我們現在的網際網路使用習慣:許多人只使用手機應用程式、串流服務和社群媒體。對他們來說,「網際網路」和「應用程式」之間沒有區別。
如果有一天,所有的網路存取都必須透過核准的通道,大多數人不會注意到差異。但對於開發者、技術愛好者和那些需要自由存取網際網路的人來說,這將是一個巨大的倒退。
一個奇蹟正在消失
網際網路是史上最偉大的通訊基礎設施。它讓任何人都可以與世界上的任何人溝通,存取幾乎任何資訊,建立和分享創造性作品。
但這個基礎設施正在被一個個「小問題」逐步拆解。LaLiga 為了阻止盜播,封鎖了 Cloudflare。ISP 為了「保護用戶」,封鎖了某些網站。政府為了「打擊假訊息」,封鎖了某些內容。
每個封鎖都有它的理由。每個封鎖都聽起來合理。但加總起來,我們正在失去一個自由和開放的網際網路。
對於台灣的開發者來說,這是一個警示。我們現在享有的網路自由不是理所當然的。它需要被保護、被維護、被對抗任何試圖限制它的力量。
最後一個想法
小剛最終在比賽結束後部署了他的更新。但他沒有忘記這個經驗。
他開始使用 VPN。他開始備份重要的映像檔到本地伺服器。他開始思考如何建構一個不依賴單一基礎設施的系統。
「這不是一個可以解決的問題,」他對同事說,「這是一個需要一直對抗的問題。」
網際網路自由是一場持續的鬥爭。不是某一天會贏的戰爭,而是每天都要打的戰役。
我們可以選擇參與,或選擇忽視。但選擇後者,不代表問題會消失。它只會變得更糟,直到有一天,我們發現自己生活在一個「偶爾壞掉」的網際網路裡。
而到時候,我們可能已經忘記它曾經是什麼樣子。