為什麼要在 Linux 上直接跑 Mihomo

很多教程聚焦 Windows 與 macOS 下的 Clash Verge Rev 圖形介面,但在無桌面環境的伺服器、輕量發行版,或你只想用終端與配置檔案管理一切時,直接在系統裡執行 Mihomo(原 Clash Meta 核心)會更乾淨、更可指令碼化。Mihomo 與主流 Clash 配置高度相容,同一份 config.yaml 往往只需放好路徑即可工作;再用 systemd 託管程序,就能獲得崩潰自動拉起、開機自啟與統一的日誌入口。

本文假設你已具備合法的代理訂閱或自建節點資訊,並理解本地監聽埠、規則與 DNS 的基本概念。若你尚未熟悉訂閱連結如何轉成配置檔案,可先閱讀站內的《Clash 訂閱連結怎麼用?機場配置檔案一鍵匯入完整教程》,再回到本文完成 Linux 側的落地。

適用場景與發行版差異

以下步驟適用於大多數基於 systemd 的發行版(如 Debian、Ubuntu、Fedora、Arch 及其衍生版)。若你使用 OpenRC 或其它 init,思路相同:核心仍是「可執行檔案 + 配置目錄 + 守護程序」,只是服務單元寫法不同。

架構方面,請在官方 Release 中選擇與機器一致的包:常見桌面與雲主機為 amd64,樹莓派或部分 ARM 雲主機為 arm64。下錯架構會導致無法執行或立即退出,下載前用 uname -m 確認即可。

下載、解壓與安裝路徑

從 Mihomo 官方 GitHub Releases 獲取對應平臺的壓縮包(檔名通常包含 linux-amd64linux-arm64)。下載後解壓得到名為 mihomo 的二進位制檔案,賦予可執行許可權並放入固定路徑,便於後續 systemd 引用:

  • 將二進位制複製到 /usr/local/bin/mihomo(系統級)或 ~/.local/bin/mihomo(使用者級,需保證該目錄在登入使用者的 PATH 中)
  • 執行 chmod +x 確保可執行
  • 可選:使用發行版包管理器或自建指令碼做版本更新;生產環境建議校驗釋出頁提供的校驗和,避免供應鏈風險

若你希望瞭解 Mihomo 與舊版 Clash 核心的關係、以及新協議能力,可對照《Clash Meta 核心升級指南:從舊版遷移到 Mihomo 的完整步驟》,其中對核心能力與配置相容性也有說明。

配置目錄與匯入方式

Mihomo 透過 -d 引數指定配置目錄,該目錄下至少需要 config.yaml。推薦為專用目錄,例如使用者級 ~/.config/mihomo 或系統級 /etc/mihomo,避免與工作目錄混淆。

匯入配置的常見方式有三種:第一,把機場提供的 Clash 配置全文儲存為 config.yaml;第二,在配置中使用 proxy-providers 引用遠端訂閱 URL,由核心定期拉取;第三,從本機其它客戶端匯出相容 YAML 再複製進來。無論哪種方式,都請檢查 mixed-portportexternal-controller(外部 REST API 埠)是否與現有服務衝突。

若你計劃使用 TUN 透明代理,需要額外核心許可權與路由表配合,細節比純 HTTP/SOCKS 監聽複雜。可先完成本教程的基礎常駐,再閱讀《Clash TUN 模式開啟方法:實現真正的全域性透明代理》按場景開啟。

命令列前臺試執行

在寫入 systemd 之前,務必先以前臺方式驗證配置無誤:

mihomo -d ~/.config/mihomo

觀察終端輸出是否出現「配置載入成功」「監聽埠已開啟」等日誌;若報錯,多半是 YAML 縮排、欄位不被當前版本識別,或埠被佔用。前臺驗證透過後再按 Ctrl+C 結束,進入守護程序階段。

使用 systemd 使用者服務(推薦桌面與單使用者)

使用者服務不需要 root 寫系統單元,適合個人筆記本或單使用者 VPS。建立目錄 ~/.config/systemd/user/,新建 mihomo.service,示例內容如下(請按實際路徑修改 ExecStart 與配置目錄):

[Unit]
Description=Mihomo (Clash) proxy daemon
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mihomo -d /home/你的使用者名稱/.config/mihomo
Restart=on-failure
RestartSec=3
LimitNOFILE=65536

[Install]
WantedBy=default.target

然後執行:

systemctl --user daemon-reload
systemctl --user enable --now mihomo.service
systemctl --user status mihomo.service

使用者服務的「開機自啟」依賴使用者 lingering:部分發行版需執行 sudo loginctl enable-linger 你的使用者名稱,否則登出後使用者服務不會隨開機啟動。若你在無圖形 SSH 環境,這一點尤其重要。

系統級 systemd 服務(多使用者或固定路徑)

若二進位制與配置放在 /usr/local/bin/etc/mihomo,可使用系統單元 /etc/systemd/system/mihomo.service,將 ExecStart 改為 /usr/local/bin/mihomo -d /etc/mihomo,並以 sudo systemctl enable --now mihomo 啟用。系統服務預設隨多使用者目標啟動,適合家庭閘道器或共享伺服器;請注意配置檔案許可權,避免普通使用者讀到敏感節點資訊。

驗證:埠、API 與日誌

配置中若開啟了 external-controller(例如 127.0.0.1:9090),可在本機執行 curl http://127.0.0.1:9090/version,返回 JSON 中含 mihomo 與版本號即表示控制面正常。代理埠可用 ss -tlnp | grep mihomocurl 走本地 SOCKS/HTTP 代理訪問測試頁(請使用合法測試目標)。

日誌檢視:journalctl --user -u mihomo.service -f(使用者服務)或 sudo journalctl -u mihomo.service -f(系統服務)。出現持續重連、DNS 失敗或規則匹配異常時,可結合日誌級別 log-level: infodebug 臨時調高(注意磁碟與隱私)。

許可權、安全與更新習慣

儘量不要以 root 身份執行 Mihomo,除非你必須繫結特權埠或做系統級 TUN。配置檔案含訂閱地址與節點憑證,建議目錄許可權設為僅當前使用者可讀。更新二進位制時,先 systemctl stop 對應服務,替換檔案後再 start,避免半寫入狀態。企業環境還可配合只讀配置分割槽、定時任務校驗雜湊等方式加固。

常見問題速查

埠已被佔用

修改 config.yamlmixed-port/port/external-controller 為空閒埠,或停止佔用程序後重啟服務。

Exec format error 或 Permission denied

多為架構不匹配或缺少可執行位,重新下載對應架構並 chmod +x

SELinux 拒絕(Fedora/RHEL)

檢視 audit2why 日誌,按需調整策略或將二進位制與配置放到允許路徑;生產環境避免粗暴關閉 SELinux。

小結與桌面使用者的另一種選擇

在 Linux 上無圖形客戶端跑 Clash,本質是「Mihomo 二進位制 + 配置目錄 + systemd 生命週期管理」。這條路徑對自動化、遠端伺服器與最小化系統特別友好;相較需要介面點選的客戶端,你完全掌握啟動引數、日誌與更新節奏。若你同時在桌面環境需要規則視覺化、一鍵切換節點與內建診斷,圖形客戶端在易用性上仍更省心——例如 Clash Verge Rev 已內建最新 Mihomo 核心,省去手動下載與替換的瑣碎步驟。

無論你選擇純命令列還是客戶端,穩定的核心與清晰的配置結構才是長期使用體驗的關鍵。若你希望省去伺服器上手工維護核心版本的精力,也可以在桌面或常用工作機上使用官方客戶端統一管理訂閱與規則。→ 立即免費下載 Clash,開啟流暢上網新體驗