這篇適合誰:為什麼 Fedora 不能照搬 Ubuntu 指令

Fedora Workstation 與 Ubuntu 同樣是 systemd 世界,但預設防火牆SELinux 強制模式dnf/RPM 生態NetworkManager 預設行為都會改變你「以為已經做對了」的結果。Clash Meta(Mihomo)核心在 Linux 上仍是單一二進位+ YAML,差別在於:二進位放哪裡、誰有權限建立 TUN、以及守護行程是否在正確的網路目標就緒後才啟動。

本文假設你熟悉終端機,並僅在合規情境下使用代理工具。流程刻意採「先 dnf 補齊執行期假設、再手工前台驗證、再寫 systemd、最後開 TUN」的順序,避免把問題一次埋進服務與安全模組的組合裡。若你想先建立 TUN 與全系統流量的概念地圖,建議先閱讀本站Clash TUN 模式完全指南,再回來對照 Fedora 特有的防火牆與 SELinux 訊號。

與 Ubuntu 桌面路線的逐步對照,亦可平行參考Ubuntu 安裝 Clash Meta:systemd 自啟與 TUN 逐步設定;下列章節會標出兩者在指令與預設服務上的分岔點。

前置:用 dnf 對齊核心假設,而不是先猜權限

在 Fedora 上,請先確認架構(x86_64aarch64 等)與核心版本,並用 dnf 補齊「日後一定會用到」的診斷與網路工具,例如 iprouteiptables-nft 或專案慣用的防火牆除錯工具。你未必需要把 Mihomo 裝進 RPM 套件;實務上仍以受控目錄放置官方或可信來源提供的預編譯檔較常見,但執行期函式庫與核心模組是否齊備,會直接影響 TUN 與路由操作是否報錯。

若你打算讓使用者層級的 systemd 在圖形登入前也能穩定拉起服務,請一併了解 loginctl enable-linger 的用途:它讓使用者的 user service 在沒有活躍工作階段時仍可存留,與「登入後才跑代理」是不同模型。伺服器或常駐盒子的話,則多半回到系統層級單元並搭配專用帳號。

取得二進位與校驗和時,請遵守組織的資安流程;安裝套件僅作為輔助,不等於替代理節點背書。若你需要帶圖形介面的 Linux 用戶端,本站用戶端下載頁提供集中整理的取得入口;本文仍以「核心+systemd」為主軸,方便你在 Workstation 上自行裁剪。

目錄、帳號與 SELinux:二進位放錯位址會改寫錯誤訊息

建議維持與其他 Linux 教學一致的三層結構:唯讀執行檔主設定檔可寫入工作目錄(訂閱快取、GeoIP、規則集等)。在 Fedora 預設啟用 SELinux 的情況下,把執行檔放在 /usr/local/bin 與放在使用者家目錄,安全情境(context)可能不同;若 systemd 日誌出現拒絕存取類訊息,請先用 ausearchjournalctl 對齊 denied 事件,再決定是要調整檔案標籤、使用政策模組,還是改採更符合 FHS 的安裝位置。

原則上仍應避免長期以 root 互動身分跑完整核心;較穩健的方向是專用系統帳號搭配最小能力集,或以使用者服務加上明確的裝置與能力授權。任何放寬 SELinux 的動作都應有紀錄與回滾方式,避免「一次 setenforce 0 測完就忘記開回來」這類技術債。

若你剛從 Ubuntu 轉來,記得:AppArmor 與 SELinux 的錯誤字串長得不一樣,但本質都是強制存取控制;不要一看到權限錯誤就先改 chmod 777。

設定檔先行:無 TUN 時就要能穩定命中規則

在啟用 TUN 之前,請先讓 mixed-port 或分開的 HTTP/SOCKS 監聽、出站節點與基礎規則在「純本機代理」模式下穩定工作。請檢查 DNS 區塊與 fake-ip 選項是否會在後續與 NetworkManager 或 systemd-resolved 互動時產生邊角案例;策略組順序維持「越具體越靠前」,MATCH 兜底在後。

規則與訂閱有重大調整時,可延伸閱讀Clash Meta(Mihomo)核心升級指南,避免欄位名稱與預設值假設和實際版本脫節。當無 TUN 時已能穩定分流,開 TUN 後若出現全系統斷網,就比較容易把問題縮小到路由或 DNS 閉環。

手工前台試跑:對齊工作目錄與環境變數

在接入 systemd 前,請於終端機以前台啟動(路徑請替換為你的實際位置):

/path/to/mihomo -d /path/to/workdir -f /path/to/config.yaml

觀察是否成功監聽埠、訂閱是否更新、以及是否有 TUN 或權限相關訊息。若前台成功、服務失敗,優先比對工作目錄權限環境變數SELinux 拒絕事件;Fedora 上這三者的組合出現頻率通常高於「純 chmod 問題」。

systemd 單元:After 網路目標與能力集(CAP_NET_ADMIN)

桌面使用者可優先採 systemctl --user,伺服器或常駐閘道則常用系統層級單元。以下為概念範本,實際路徑、帳號與加固欄位請依環境調整:

[Unit]
Description=Mihomo (Clash Meta) on Fedora
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mihomo -d /var/lib/mihomo -f /etc/mihomo/config.yaml
Restart=on-failure
RestartSec=3
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=yes

[Install]
WantedBy=multi-user.target

network-online.target 可降低「網路尚未就緒就拉起核心」的競態;CAP_NET_ADMIN 與 TUN 建立息息相關,但是否足以涵蓋你的設定檔堆疊,仍應以實際日誌為準。完成單元後執行 daemon-reloadenable --now,並用 journalctl 觀察重啟節奏,避免設定錯誤導致無限洗版。

TUN 啟用順序:裝置節點、模組與 firewalld

在設定檔中啟用 TUN 後,請同步檢查三層:核心是否允許建立 tun 介面行程是否具備所需能力或安全情境、以及防火牆是否把新介面或轉送流量攔下。Fedora Workstation 預設啟用 firewalld 時,常見現象是「核心日誌看起來正常,但應用程式仍無法對外」,此時請用 firewall-cmd --list-all 與區域(zone)邏輯檢查轉送與信任介面,而不是先懷疑節點品質。

/dev/net/tun 的權限模型會隨版本與 udev 規則演進;若你遇到「裝置存在卻無法開啟」,請比對當前使用者群組、能力集與 denied 事件,而不是沿用數年前的部落格 chmod 指令。啟用順序仍建議:先無 TUN 驗證規則,再開 TUN;開啟後立刻檢視路由表與連線日誌,確認沒有解析或路由閉環。

睡眠喚醒後路由被 NetworkManager 重寫的情況,在筆電與 Wi‑Fi 環境並不少見;這類問題與 Clash 設定無直接關係,卻會表現成「一覺醒來 TUN 還在、流量却不走核心」。把「系統網路事件」納入你的維運清單,會比反覆改規則更有效。

DNS 與 NetworkManager:fake-ip 與桌面解析器並存時的取捨

Fedora 桌面常同時存在 NetworkManager、systemd-resolved 與瀏覽器內建 DoH。當核心接管 DNS 或回傳 fake-ip 時,請明確知道「最後一哩解析者」是誰;否則會出現 ping 正常、HTTPS 握手失敗、或僅部分應用異常。過渡期請以日誌驗證查詢是否仍進入核心,而不是先大改規則集。

若你剛從「僅本機 mixed-port」切到 TUN,第一件事建議仍是用日誌驗證 DNS 查詢路徑;這與 Ubuntu 上的診斷順序相同,差別在於 Fedora 上你更常需要同時對照 firewalld 與 SELinux 訊號。

終端機代理環境變數:與 TUN 並行時的單一變因原則

即使 TUN 已啟用,部分命令列工具仍可能因實作差異而不完全依賴路由表;保留明確的 http_proxyHTTPS_PROXYALL_PROXY 在伺服器維護場景仍然務實。請對齊埠與協定前綴,並為內網保留合理的 no_proxy。排查時請遵守單一變因,先驗證其中一條路徑再疊加,避免日誌同時出現虛擬介面與 HTTP 代理兩類線索而難以解讀。

常見分診:SELinux、firewalld、單元重啟與漏流

單元反覆重啟:先讀 journal 是否為 YAML 語法、訂閱失敗或埠占用;② TUN 建立失敗:檢查能力集、/dev/net/tun 與 denied 事件;③ 有連線但網頁打不開:優先 DNS 與防火牆區域,其次才是節點延遲;④ 部分應用仍直連:回到規則命中與程式是否繞過系統解析。每次變更都請留下簡短備註(日期、動機、回滾方式),數月後的你會感謝當下的紀律。

更廣義的文件索引可收藏本站使用說明與文件,把 Fedora 與其他平台的差異放在同一知識庫維護。若你需要追蹤上游實作與 Issue,可在獨立段落查閱相關開源專案頁面;安裝包取得與圖形用戶端下載仍以本站下載頁為主路徑,避免誤以為必須從第三方 Release 頁才能完成安裝。

結語:把「可驗證」寫進 Fedora 工作站的日常

相較於複製一串過期指令,Clash Meta 在 Fedora 上的長期穩定,多半來自dnf 補齊的假設、systemd 可觀測的失敗模式、以及 TUN 與防火牆/SELinux 的順序化排查。當你把手工試跑、單元檔、TUN 與 DNS 的節奏固定下來,未來無論是升級 Workstation 或換機,都能用同一套檢查清單快速回到正軌。

若你希望跨平台都有一致體驗,並在圖形介面與命令列之間取得平衡,選擇文件完整、更新節奏穩定的 Clash 系工具,通常比四處拼湊過期教學更省時間;相比只解決單點問題,建立可審計的流程會讓代理設定真正適合日常桌面使用。

立即免費下載 Clash,開啟流暢上網新體驗