
這次我們看的是 Hacker News 上很有代表性的一個自薦項目Show HN: My Anti AI Computer。說白了這是一臺刻意“反 AI”的電腦。不是裝上某個插件然后自稱屏蔽了 AI而是在系統設計上就做減法不接云端模型、不自動補全、不上報使用數據把控制權重新放回用戶手里。最近 AI 功能幾乎無孔不入系統助手、編輯器補全、辦公軟件摘要、瀏覽器側邊欄甚至輸入法都要聯網“智能糾正”于是有人反向做了這么一臺機器。這篇文章不猜作者倉庫里的每個細節而是從工程實現角度把“反 AI 電腦”拆成一套可以直接照做的思路怎么挑環境、怎么裝系統、怎么配置防火墻和后臺服務、怎么驗證機器到底有沒有“偷偷聯網”、怎么跑本地批量任務以及遇到問題怎么排查。看完之后你自己也能把一臺閑置電腦改造成反 AI 工作機。1. 反AI計算機核心能力速覽先把“反 AI 電腦”在能力層面的共同特征列出來。下面這份清單一部分來自項目標題傳達的理念一部分來自同類本地優先系統的常見設計具體到你實際看到的作者倉庫以它公開的文檔為準。能力項說明項目類型個人電腦/工作站改造實驗軟硬件結合的“反 AI”設計設計目標降低對云端 AI 服務的依賴拒絕遙測提升用戶控制和隱私水平軟件底座通常選擇最小化安裝的 Linux 發行版去掉閉源客戶端和系統級 AI 助手網絡策略默認攔截出站連接只放行本地回環和局域網外網訪問按白名單放行顯存需求反 AI 場景通常不需要大顯存如果保留獨顯只承擔顯示輸出具體占用取決于桌面環境和圖形任務CPU/內存中低性能即可滿足重點在于系統干凈而不是跑大模型啟動方式傳統 PC 啟動進入桌面或終端環境無強制云登錄API 能力以本地服務為主可對外開放局域網接口但默認不調用外部模型服務批量任務支持本地腳本、cron 定時任務、排除故障和隊列全部在本地執行適合場景開發者、隱私敏感用戶、寫作與研究場景、離線辦公、實驗性極客環境從這張表能看出來“反 AI 電腦”不是把電腦變成老古董而是把整個計算環境重新變成“本地優先”。過去五年里被云服務和 AI 助手接管的那部分能力現在都用本地開源工具替代本地搜索、本地全文索引、本地備份、本地腳本自動化。這套思路和本地部署模型剛好是鏡像關系——本地部署是把模型拉回來自己跑反 AI 電腦是把所有聯網智能服務擋在外面連跑都不跑。2. 為什么需要一臺反AI計算機動機與適用邊界2.1 最主要的動機第一是響應速度。AI 助手大部分能力在云端一步操作要經過上傳、排隊、推理、回傳網絡一波動就會明顯感覺到拖沓。反 AI 電腦用本地工具完成同樣的事比如用 ripgrep 搜索代碼、用本地全文索引檢索文檔、用腳本批量重命名文件體感上幾乎零延遲。第二是隱私邊界。云端 AI 服務處理的數據會離開機器即使服務商承諾“不用于訓練”數據仍然經過了第三方服務器。反 AI 電腦從網絡層面就攔住了出站請求從源頭避免數據外流。第三是可控性與可復現性。本地環境里裝了什么服務、誰在監聽端口、什么時候觸發任務都能通過 systemd、cron、日志審計完整回溯。開發環境更干凈不容易出現“上次明明能跑這次突然不行”的問題。第四是成本。不需要為云服務付費不需要頻繁升級顯卡舊筆記本、迷你主機、辦公淘汰機都可以拿來當底座。2.2 適用場景寫作和研究不想被自動補全干擾想先獨立完成初稿。軟件開發用本地命令行工具和自托管服務追求環境可復現。離線辦公處理本地文檔、表格、PDF不需要聯網智能功能。隱私敏感場景涉及個人文件、客戶資料、合同數據希望數據最小化出境。技術實驗想驗證“沒有 AI 依賴的工作流到底能不能跑通”。2.3 不適用場景如果工作是模型訓練、圖像生成、語音合成、大規模向量檢索那反 AI 電腦就不適合。可以用另一臺機器做推理反 AI 電腦作為純辦公和開發前端。這里必須強調合規邊界。反 AI 電腦是技術選擇不代表可以繞過權限和版權約束。如果你處理的是圖片、人臉、音頻、文檔仍然需要確認素材來源合法、授權明確尤其不要因為“本地處理”就以為可以規避版權和隱私規則。反 AI 電腦提供的只是技術邊界不是免責聲明。3. 環境準備與前置條件3.1 硬件層面反 AI 電腦對硬件要求很低重點是穩定和低功耗。一般建議CPU雙核以上即可舊筆記本的 i5 到新平臺的 R5/i5 都能用。內存8GB 起步如果日常開瀏覽器和編輯器比較多建議 16GB。硬盤256GB 以上 SSD剩余空間留給本地文檔和日志。顯卡不是必需項。核顯足夠。如果獨顯驅動折騰成本太高直接在 BIOS 里禁用獨立顯卡或者卸載閉源驅動。網卡有線網卡優先方便用網絡審計工具觀察實時流量。3.2 軟件層面操作系統方面推薦選擇一個主流 Linux 發行版安裝時選擇“最小安裝”。不要選默認附帶全家桶的桌面發行版因為預裝軟件里很可能藏著遙測和云同步組件。你需要在裝機前準備好U 盤系統安裝盤。備用網絡環境首次安裝需要聯網下載基礎包。一個本地的軟件源地址高校鏡像、官方鏡像都行看你自己網絡環境。記錄好機器 IP后續防火墻配置要用。3.3 網絡規劃反 AI 電腦的核心策略是“默認拒絕出站”。安裝階段可以暫時不限制裝完之后再啟用防火墻。網絡規劃建議網段處理方式127.0.0.0/8 本地回環放行192.168.0.0/16 局域網放行用于 SSH、局域網同步10.0.0.0/8 內網按需放行外網 HTTP/HTTPS默認攔截按包管理器和少數白名單域名放行4. 安裝部署與啟動方式4.1 安裝最小化系統不同發行版的安裝步驟大同小異核心選擇都是“最小安裝”。安裝完成后先更新到當前狀態然后進入后續配置。下面以通用 Linux 命令為例具體發行版請換成你自己的包管理器。# 把發行版統一記作 $DISTRO實際用 apt、dnf、pacman 等替換 sudo $DISTRO update sudo $DISTRO upgrade4.2 禁用多余服務系統安裝完成后先檢查當前正在運行的服務把云同步、藍牙、打印、桌面搜索、位置服務等不需要的組件停掉并禁用開機自啟。# 列出所有運行中服務 systemctl list-units --typeservice --staterunning # 停止并禁用不需要的服務服務名以實際環境為準 sudo systemctl disable --now bluetooth.service sudo systemctl disable --now cups.service注意不同發行版服務名不一樣。我的建議是一個個確認不要批量 disable防止把網絡管理或顯示管理器一起關掉。4.3 不裝顯存推理運行庫如果你保留了一張 N 卡在反 AI 電腦上通常沒必要裝 CUDA。如果已經裝了想徹底回到“純顯示模式”可以用包管理器把相關運行庫移除# 示例Debian/Ubuntu 上移除 nvidia-cuda 相關包 sudo apt remove --purge nvidia-cuda-toolkit libnvidia-compute-*如果你的日常需求只有桌面顯示和瀏覽器硬解完全可以把獨顯驅動也拿掉用核顯輸出。這樣顯存占用歸零系統功耗和發熱也會明顯下降。4.4 默認拒絕出站的防火墻配置這是反 AI 電腦最關鍵的一步。我用 nftables 寫一個模板。這個配置會先把默認策略改成攔截再放行本地回環和局域網最后再按需求放行個別外部地址。實際部署時你需要根據自己環境把 IPv6 和包管理器域名一起考慮進去。# /etc/nftables.conf 模板僅攔截 IPv4 出站示例 #!/usr/sbin/nft -f flush ruleset table inet filter { chain input { type filter hook input priority 0; policy drop; # 放行已建立連接 ct state established,related accept # 放行本地回環 iif lo accept # 放行局域網按實際網段調整 ip saddr 192.168.0.0/16 accept ip saddr 10.0.0.0/8 accept } chain forward { type filter hook forward priority 0; policy drop; } chain output { type filter hook output priority 0; policy drop; # 放行本地回環 oif lo accept # 放行局域網 ip daddr 192.168.0.0/16 accept ip daddr 10.0.0.0/8 accept # 放行 DNS按你的 DNS 服務器地址調整 ip daddr 223.5.5.5 udp dport 53 accept ip daddr 223.5.5.5 tcp dport 53 accept # 放行系統包管理器域名這里只是占位請替換成實際鏡像域名 ip daddr 192.0.2.1 tcp dport 443 accept } }這份配置里policy drop意味著默認拒絕所有出站。啟用之后普通軟件基本不能私自聯網。但包管理器需要更新時你要臨時加一條白名單或者臨時關閉攔截sudo systemctl reload nftables # 或者臨時清空規則 sudo nft flush ruleset更新完軟件記得重新加載配置別把全攔截狀態丟著不管。更穩妥的做法是把包管理器域名解析后的 IP 加進白名單日常保持默認拒絕。4.5 啟動后看到的界面完成上述步驟后系統會正常進入桌面或 tty。如果你選擇了無桌面環境默認會停留在命令行登錄界面。此時系統里沒有 AI 助手、沒有云同步客戶端、沒有自動遙測服務只有你自己裝的工具。核心判斷標準是開機之后后臺沒有服務主動嘗試連接外部網絡。5. 功能測試與效果驗證系統裝完后別急著投入使用先按照下面幾條流程驗證機器是否真的“反 AI”。5.1 基礎可用性測試先確認機器能正常啟動、登錄、打開終端uptime free -h df -h預期輸出是開機時間正常、內存和磁盤剩余空間充足。如果內存占用超過 60% 且你還沒開任何程序說明后臺有東西在跑需要繼續往下檢查。5.2 后臺進程審計反 AI 電腦最重要的指標是“干凈”。運行下面命令查看究竟哪些進程在消耗資源# 按內存占用排序查看前 20 個進程 ps -eo pid,comm,%cpu,%mem --sort-%mem | head -20 # 查看當前運行的全部系統服務 systemctl list-units --typeservice --staterunning判斷標準除了桌面環境、網絡管理、終端等必要服務不應該出現看不懂的進程。如果出現 cloud、sync、telemetry、assistant、update 相關服務逐個確認用途并禁用。5.3 網絡出站審計這是整個項目最核心的驗證環節。運行以下命令觀察網絡連接# 查看所有監聽端口和外部連接 ss -tupn # 實時抓包觀察 443 端口有沒有程序往外發包 sudo tcpdump -i eth0 -n port 443預期結果ss的輸出里只有本地監聽端口比如127.0.0.1:22、127.0.0.1:8080沒有大量ESTABLISHED的外部連接。tcpdump在空閑狀態下沒有持續發包。如果出現頻繁訪問固定外部 IP 的情況需要按進程追查# 按端口反查進程 sudo lsof -i :443 # 或 sudo ss -tunp | grep 4435.4 本地能力測試反 AI 電腦替代 AI 助手的方式是本地工具。驗證幾個高頻場景本地文件搜索rg 關鍵詞 ~/Documents本地全文索引安裝recoll或notmuch索引后離線檢索。本地 PDF 處理pdftotext提取文本pdfunite合并 PDF。# 搜索文檔中的關鍵詞全程離線 rg 反AI ~/Documents --type md預期結果關鍵詞能快速定位不需要聯網不需要等待模型響應。5.5 斷網可用性測試這是最直接的檢驗。拔掉網線或者關閉 Wi-Fi然后重復上面rg、pdftotext、編輯器、終端操作。反 AI 電腦的可用性不應該依賴網絡。如果你發現某個常用功能一斷網就崩說明它還是悄悄依賴了外部服務需要替換方案。6. 接口 API 與批量任務6.1 反 AI 電腦還需要 API 嗎需要。這里的 API 指的是本地服務接口用于連接你自己的腳本和工具鏈而不是轉發給云端模型。最典型的場景是一臺反 AI 電腦提供 SSH 訪問、局域網內提供一個簡單 HTTP 健康檢查、本地腳本定時執行批量任務。舉個例子假設你在這臺機器上跑了一個本地文檔轉換服務監聽在127.0.0.1:8080。驗證接口是否可用curl -s http://127.0.0.1:8080/health預期返回ok或者你的服務約定的狀態碼。如果你需要 Python 調用本地接口可以這樣寫import requests response requests.get( http://127.0.0.1:8080/health, timeout5 ) if response.status_code 200: print(本地服務正常) else: print(f服務異常: {response.status_code})關鍵點是接口地址一律寫127.0.0.1或局域網地址不要接任何外部廠商的 endpoint。如果你的反 AI 電腦需要訪問局域網里的其他自托管服務可以放行對應內網 IP 的端口但不要放行到公網。6.2 批量任務反 AI 電腦很適合跑定時本地任務比如日志歸檔、文檔索引、備份、批量重命名、定時清理臨時文件。用 cron 實現時要注意加日志和鎖防止重復執行。下面是一個通用模板用于批量處理本地文檔并把處理日志寫入獨立文件#!/usr/bin/env bash # /usr/local/bin/anti-ai-batch.sh LOGFILE$HOME/logs/anti-ai-batch.log LOCKFILE/tmp/anti-ai-batch.lock # 防止上次任務未結束就再次啟動 exec 9$LOCKFILE flock -n 9 || { echo [$(date %F %T)] 已有任務在運行跳過本次執行 $LOGFILE; exit 1; } echo [$(date %F %T)] 批量任務開始 $LOGFILE # 把所有 PDF 轉成文本存到指定目錄 find $HOME/Documents -type f -name *.pdf -print0 | while IFS read -r -d file; do name$(basename $file .pdf) pdftotext $file $HOME/Notes/${name}.txt done echo [$(date %F %T)] 批量任務結束 $LOGFILE編輯 crontab 添加定時任務crontab -e # 每天凌晨 2 點執行一次 0 2 * * * /usr/local/bin/anti-ai-batch.sh批量任務的核心建議是要給每個任務加日志要使用鎖文件防止重復執行要在任務失敗時輸出明確錯誤信息。這樣即使某個文檔轉換失敗你也可以通過日志定位問題而不是在“反 AI 電腦為什么卡住”這一點上浪費時間。6.3 返回結果與失敗重試如果你的批量任務需要對接其他腳本建議把任務結果統一寫回一個 state 文件例如echo processed_total120 $HOME/logs/anti-ai-batch.state echo failed_count2 $HOME/logs/anti-ai-batch.state然后寫一個簡單的重試腳本專門處理失敗列表#!/usr/bin/env bash FAILED_LIST$HOME/logs/failed-list.txt if [[ -f $FAILED_LIST ]]; then while IFS read -r file; do pdftotext $file $HOME/Notes/$(basename $file .pdf).txt if [[ $? -eq 0 ]]; then echo 重試成功: $file else echo 仍然失敗: $file fi done $FAILED_LIST fi7. 資源占用與性能觀察7.1 CPU、內存與磁盤反 AI 電腦沒有大模型推理壓力資源占用主要來自桌面環境、瀏覽器和本地任務。日常觀察方法# 實時觀察 CPU 和內存 top -o %MEM # 查看磁盤占用 df -h # 查看磁盤 IO 占用的進程 sudo iotop -o一個干凈的系統空閑狀態下內存占用應該很低。如果你使用輕量桌面環境加終端空閑內存占用通常在 1GB 到 2GB 量級如果你用的是完整桌面環境占用量會更高但遠低于跑模型時的負載。具體數字受發行版、桌面環境和預裝服務影響不需要追求絕對最小值重點是沒有“莫名其妙”的進程在吃 CPU。7.2 顯存與顯卡反 AI 電腦場景下顯存不應該成為關注點。如果在安裝階段保留了 N 卡可以用nvidia-smi查看顯存占用如果是 A 卡可以用amdgpu_top或sensors觀察如果是純核顯直接忽略顯存概念。nvidia-smi # 或者 nvtop預期結果是無應用調用 CUDA顯存占用為 0 或只有桌面合成器常用的幾百 MB。如果你看到顯存持續高位或者某個進程名字帶 inference、chat、assistant說明系統里還有 AI 相關服務在跑需要進一步處理。7.3 如何降低資源占用選擇輕量桌面環境例如 XFCE、LXQt或者直接不裝桌面。關閉系統動畫和自啟應用。定時清理日志和臨時文件。瀏覽器限制后臺標簽頁數量。備份任務放到凌晨避免和白天工作爭搶 CPU 和磁盤 IO。7.4 端口沖突與進程殘留如果你在反 AI 電腦上跑了多個本地服務要注意端口沖突。查看端口占用# 查看某個端口被誰占用 sudo lsof -i :8080 # 或者 sudo ss -tulnp | grep 8080有沖突時換端口即可。啟動本地服務時最好寫成 systemd unit讓它自動記錄日志并支持開機自啟# /etc/systemd/system/my-local.service [Unit] DescriptionLocal helper service Afternetwork.target [Service] ExecStart/usr/local/bin/my-local Restarton-failure Useryourname [Install] WantedBymulti-user.targetsudo systemctl daemon-reload sudo systemctl enable --now my-local.service8. 常見問題與排查方法問題現象可能原因排查方式解決方案系統啟動后無法上網默認攔截策略把所有出站擋死查看 nftables 規則和系統日志臨時nft flush ruleset確認是域名白名單缺失還是策略問題再按白名單方式放行后臺進程莫名占用 CPU殘留的云同步或遙測服務在運行ps -eo pid,comm,%cpu,%mem --sort-%cpu停用并禁用多余服務刪除對應軟件包桌面瀏覽器頻繁等待瀏覽器在等待某些遠程域名用tcpdump -i eth0 port 443抓包在瀏覽器設置里關閉預加載、翻譯、遠程字體端口沖突兩個服務監聽同一個本地端口sudo lsof -i :8080修改其中一個服務端口批量任務卡住缺乏鎖或輸入文件異常查看腳本日志和 ps auxgrep batch顯卡驅動問題導致開機黑屏裝了獨顯驅動但配置不完整進入修復模式卸載驅動用核顯輸出或徹底移除閉源驅動包本地服務重啟后失效沒有配置 systemd 開機自啟systemctl status 服務名sudo systemctl enable --now 服務名更新系統時被防火墻攔截包管理器域名不在白名單查看更新日志臨時放行鏡像域名或臨時關閉攔截更新完恢復顯示器輸出的顯存占用偏高桌面合成器使用了 GPU 資源nvidia-smi或nvtop使用核顯輸出開啟合成器低功耗模式9. 最佳實踐與安全使用建議9.1 保持最小可運行配置第一次部署反 AI 電腦時不要追求把所有工具都裝上。先保證一個最小配置能開機、聯網更新、打開終端、編輯文件。再在這個基礎上逐個添加工具。這樣出問題時能迅速判斷是系統問題還是新加工具的問題。9.2 做好本地備份反 AI 電腦的備份很重要因為它默認不連接外部云盤。可以用局域網內的另一個設備做備份目標或者用移動硬盤。建議至少有一個本地快照和一份異地備份# rsync 同步到局域網備份機 rsync -avz --delete $HOME/Documents backupuser192.168.1.50:/backup/9.3 定期審計每個季度做一次系統審計# 查看所有活躍服務 systemctl list-units --typeservice --staterunning # 查看所有啟動項 systemctl list-unit-files --stateenabled # 查看當前外部連接 ss -tunp | grep -v 127.0.0.1如果發現新增的不明服務和外部連接第一時間處理。9.4 合規與授權再次強調技術上的“反 AI”和“本地化”不等于可以濫用數據或規避授權。如果你在反 AI 電腦上處理圖片、音頻、視頻、文檔涉及他人肖像、版權素材或敏感信息時仍然要獲得合法授權。設置密碼、全盤加密、最小化權限這些基本功也不能省。一臺被隨意訪問的反 AI 電腦反而是數據泄露的入口。10. 總結與下一步整個項目最值得嘗試的點不是“反 AI”這個標簽而是它逼著你重新審視自己每天用的電腦里到底有多少“隱形外聯”。大部分人的系統里從輸入法、截圖工具到編輯器都在靜默連接遠程服務。反 AI 電腦的做法是把出站網絡默認關閉讓每個外聯請求都必須經過你的明確允許。建議拿到項目后先做兩件事第一打開終端執行ss -tunp和systemctl list-units --typeservice --staterunning看看當前機器上到底有多少活動連接和后臺服務第二拔掉網線試試你的日常工作流還能完成多少。這兩步做完你對“AI 依賴度”會有一個非常直觀的判斷。最容易踩的坑是防火墻配置太激進把系統更新和包管理器也攔住了。正確做法是保留本地回環和局域網放行外網只放行包管理器鏡像域名其他默認拒絕。這一步寫進裝機筆記后面半年能省不少排查時間。下一步可以做的事情很多把舊筆記本刷成反 AI 辦公機、寫一套 post-install 腳本、把本地文檔索引和批量備份整理成 systemd 定時服務、給常用工具做一個“無網絡依賴清單”。當你把整套環境跑穩之后會發現計算設備真正不可或缺的其實從來不是那個懸浮在側邊的 AI 助手。