在法國用 Freebox 跑 NFS 給 Raspberry Pi 當備份碟,同步卡住的實測
Freebox Pop 韌體 4.8.x,光纖 1Gbps/700Mbps,Raspberry Pi 4B 4GB 跑 Raspberry Pi OS Bookworm(核心 6.6),USB 3.0 外接一顆 2TB SSD 接到 Freebox 的 USB 埠,透過 NFS 掛到 Pi 上,用來接收每日備份。資料量約 180GB、二十多萬個小檔案,單檔平均 1MB 上下。現象是 `rsync`
平常寫點程式,看到有意思的討論會回兩句。
Freebox Pop 韌體 4.8.x,光纖 1Gbps/700Mbps,Raspberry Pi 4B 4GB 跑 Raspberry Pi OS Bookworm(核心 6.6),USB 3.0 外接一顆 2TB SSD 接到 Freebox 的 USB 埠,透過 NFS 掛到 Pi 上,用來接收每日備份。資料量約 180GB、二十多萬個小檔案,單檔平均 1MB 上下。現象是 `rsync`
家裡的 Orange 光纖是 Livebox 5,光纖 1G/600M,公網 IPv4 是動態的,但這一年幾乎沒變過。我在裡面跑一台小主機當 Nginx 反代,後面掛了兩三個自用服務,憑證用 certbot 的 webroot 模式續。上個月續期開始失敗,Let's Encrypt 回 404,但網站本身從外面訪問一切正常。
手上有一台 2015 年的 ThinkPad,8GB RAM、256GB SSD,法國家裡光纖 1Gbps/700Mbps,Freebox Pop。原本只是裝 Proxmox VE 8 跑一台 Debian LXC 當內網跳板,順便放個 Samba 給家人備份照片。實際用起來發現兩個現象:一是從外網連回來,大概十幾分鐘沒動作就斷;二是備份照片時整台機器會卡到 SSH 都進不去。資料量不大,照片約
Orange 光纖 Livebox 5,下行 2Gbps/上行 800Mbps,家裡一台 x86 小主機跑 Debian 12 當入口,外出用筆電和手機連 WireGuard 回家拿檔案。現象很具體:握手成功、ping 得通,但一傳大檔就卡住,scp 傳到 3~4MB 就停,ssh 打字延遲明顯。同一個設定在 VPS 上完全正常,所以問題不在 WireGuard 本身。
去年把一台 Raspberry Pi 放在 Freebox Pop 後面跑幾個自架服務,IPv4 靠端口轉發,IPv6 直接給裝置位址,圖的是不用為每個服務開一條轉發規則。跑起來當天就遇到問題:隔天早上外部連不進來,從內網看服務正常,`ip -6 addr` 裡的位址前綴跟昨天不一樣。
上個月幫一個在里昂的朋友處理 CPF 帳號,被要求做 France Identité 的身分驗證。他的環境是 iPhone 13,iOS 17.4,身分證是 2021 年換發的新式晶片卡。現象很具體:App 裝好、帳號登入都正常,但一走到「掃描身分證」那一步,NFC 一直讀不到,重試十幾次,App 只給一句「無法讀取晶片」。
線上環境是 PHP 8.2 + nginx + php-fpm,機器 4 核 8G,opcache 開著但 `opcache.validate_timestamps=1`、`revalidate_freq=2`。每次發版後頭幾分鐘,首頁 p95 從 80ms 衝到 400ms 以上,CPU 也跟著上去。檔案不多,大概 300 多個 PHP 檔,但首頁會載入框架跟一堆 service,全部要現編譯。
用的是 QNAP TS-253D,QTS 5.1,兩顆 4TB 做 RAID1,資料大概 1.8TB,主要是照片和專案 archive。外接是一顆 4TB 的 WD My Book,走 USB 3.0。現象是:用 File Station 手動複製到外接碟,複製到一半常常卡住,進度條不動,等十幾分鐘才跳錯,錯誤訊息只說寫入失敗,沒有更多線索。
我住里昂,家裡是 Freebox Pop,光纖 2Gbps/600Mbps,機器是一台閒置的 NUC(i5-8259U,16G),跑 Debian 12。需求很簡單:人在外面時要能連回家裡的 NAS、印表機跟幾台 IoT 設備,不想在 Livebox 或 Freebox 後台一個一個開端口,也不想暴露公網 IP。數據量不大,日常就是同步幾百 MB 的文件,偶爾從 NAS 拉 10GB 左右的備份。
公司一個跑了三年的老專案要從 PHP 7.4 升到 8.2,規模不大:大約四十個 controller、兩百多個 model,QPS 平常不到五十,所以沒有做灰度,直接在測試機全量跑。第一次執行 `composer update` 之後,單元測試掛了十幾個,都是同一類症狀:`Creation of dynamic property X::$foo is deprecated`。