我的家庭網路透過 OpenBSD 與 pf 執行就寢管制
我正在設置一個基於 OpenBSD 的路由器,以便按計劃自動限制網路存取,同時允許特定設備的例外情況。
背景
本文作者分享了如何利用 OpenBSD 作業系統與其內建的 pf(packet filter)防火牆,將一台低功耗的 Qotom 迷你電腦改造成家用路由器。作者的核心目標是建立一套自動化的「就寢時間」機制,在特定時段限制家中裝置的網路存取,同時為伺服器備份與特定裝置保留例外權限,藉此取代原有的商用網路設備,並深入學習非專有的系統架構。
社群觀點
在 Hacker News 的討論中,許多網友對作者手繪的河豚(OpenBSD 吉祥物 Puffy)水彩插畫表示讚賞,認為這為硬核的技術文章增添了溫馨的氣息。在技術實作層面,社群展開了深入的探討。部分資深網路工程師建議,與其在單一區域網路(LAN)中維護複雜的例外清單,更優雅的做法是採用 VLAN 虛擬區域網路。透過將需要管制的裝置與始終連線的伺服器劃分到不同的 VLAN,管理者只需針對特定網段切換防火牆規則,能大幅簡化設定並降低維護難度。
針對作者最初僅允許 TCP 流量的嚴格限制,不少評論者指出這在現代家庭環境中極具挑戰。許多常見的應用程式如 Discord、Roblox 以及各類線上遊戲(如 Minecraft)高度依賴 UDP 協議,過於激進的阻斷可能導致服務異常。此外,關於 pf 與 Linux 系統常用的 iptables 之爭也是討論焦點。支持者認為 pf 的語法更具邏輯性且易於審計,特別是其「錨點」(anchors)機制在處理定時任務時,比 iptables 的鏈式結構更為直觀且具決定性,能有效避免規則衝突。
硬體選擇方面,社群對 Realtek 與 Intel 網卡的表現有著廣泛共識。許多使用者證實了作者在 OpenBSD 上遇到 Realtek 驅動不穩定的經驗,認為 Intel 網卡在 BSD 體系下擁有更佳的韌體相容性與穩定性。有趣的是,也有家長分享了實務上的挫折,指出即便路由器端實施了嚴格的斷網管制,孩子仍可能透過切換至行動數據(Cellular data)來規避限制,這顯示了單純從網路層級控管家庭成員行為的局限性。另有網友提出更具人性化的建議,例如利用 pf 的頻寬控制功能,在就寢前一小時採取逐漸限速或增加丟包率的方式,而非生硬地直接斷網,以提供更平滑的緩衝體驗。
延伸閱讀
- The Book of PF (4th Ed.):作者與留言者多次提及的權威參考書,深入介紹 pf 防火牆的配置。
- OpenBSD Handbook:文中推薦的基礎路由器架構指南。
- veb(4):留言提到 OpenBSD 新版本中強化的虛擬乙太網路橋接功能,將提升 VLAN 的處理效率。