Fedora 上安装 Clash Verge:SELinux 与防火墙放行实测步骤
为什么在 Fedora / RHEL 系要单独谈 SELinux 与 firewalld?
不少用户从 Ubuntu 或 Debian 系换到 Fedora Workstation、Rocky、Alma 等 RHEL 家族发行版后,会沿用同一套「下载图形客户端 → 导入订阅 → 开系统代理」的流程;界面层面一切正常,却在以下几类场景突然卡住:本机浏览器明明已走代理,局域网里的手机却连不上电脑的 HTTP 端口;客户端日志提示监听失败或权限不足;开启 TUN 后路由表异常或与自带 VPN 冲突。与默认关闭强制访问控制的桌面环境相比,Fedora 默认启用 SELinux(强制模式),再配合默认运行的 firewalld,入站流量与可执行文件标签都会多一层策略约束。
本站已有面向 Linux 的 《Ubuntu 上装 Clash Verge:订阅导入与 systemd 开机自启》,侧重 deb/AppImage 路径与 systemd 用户单元。本文不重复逐步教订阅语法,而是补齐 Fedora 上最常见的 SELinux 审计与 firewalld 放行顺序,并说明与局域网代理、端口监听相关的实测排错路径,便于你在企业级策略环境下也能稳定使用 Clash Verge(通常指社区维护、内核为 Mihomo 的 Clash Verge Rev 系构建)。
范围说明:下文以 Fedora Workstation 传统桌面(RPM/DNF、GNOME、默认 firewalld)为主;Silverblue / Kinoite 等不可变系统若使用 Flatpak,路径与 SELinux 标签可能不同,但「先看审计日志、再放行防火墙」的思路一致。
在 Fedora 上安装 Clash Verge Rev
Clash Verge Rev 在 Linux 上常见分发为 AppImage、通用 .tar.gz,部分渠道也会提供 .rpm。建议优先从本站 下载页面 获取与当前架构(多为 x86_64,ARM 设备注意 aarch64)匹配的构建,避免运行来路不明的单文件。
AppImage 流程(最常见)
- 将
.AppImage放到固定目录,例如~/Applications/或/opt/clash-verge/(后者便于统一标签与备份)。 - 执行
chmod +x Clash.Verge*.AppImage;若从浏览器下载,部分文件可能带「禁止执行」扩展属性,可用chmod与ls -l复查。 - 首次建议在终端前台启动,便于直接看到 GTK/WebKit 或 Tauri 相关依赖报错;若缺库,用
sudo dnf install按报错名补装(具体包名随 Fedora 大版本变化,以终端提示为准)。
RPM 包(若可用)
若你拿到的是 .rpm,可用 sudo dnf install ./clash-verge*.rpm 安装,可执行文件通常落在 /usr/bin 或厂商指定路径,SELinux 一般已有对应域或落在 bin_t 一类宽松标签上,比「用户主目录里的 AppImage」更少遇到执行上下文问题。无论哪种安装方式,后续订阅导入与「设为系统代理」在客户端内的操作与跨平台一致,细节可对照 《Clash 订阅链接怎么添加》。
订阅与系统代理:先确认本机可用
在「订阅」页粘贴机场提供的 HTTPS 订阅地址,更新成功后到「代理」页确认节点非空,再打开系统代理或等价开关。若此处仍失败,先按订阅文档排除环路、时间与 TLS 问题,不要急于改防火墙。需要全局接管更多应用时,再考虑 TUN;原理与排错可延伸阅读 《Clash TUN 模式完全指南》。
小技巧:更新订阅时若反复失败,可暂时关闭系统代理再拉取,避免「用代理下载订阅」形成环路;这与 Windows、macOS 上的习惯一致。
SELinux:先审计,再决定放行方式
SELinux 不是「关了就万事大吉」的开关;在桌面场景下,更稳妥的做法是先确认拒绝事件是否来自策略,再选择移动文件位置、恢复上下文、或按需增加布尔值/本地策略模块。盲目执行 setenforce 0 仅适合短期验证,不适合长期使用。
是否拦截:看日志比猜端口可靠
当客户端提示无法绑定某端口、无法创建设备或执行某辅助程序时,在复现问题后立即用管理员权限查看审计日志(示例命令,需已安装 audit 相关包):
sudo ausearch -m avc -ts recent | tail -n 50
sudo journalctl -xe | grep -i denied
若出现 denied 且类型为 avc,记下源上下文(scontext)、目标上下文(tcontext)与被拒绝的操作(bind、name_connect、execmod 等)。图形化环境可安装 setroubleshoot,用 sealert 生成人类可读说明,它会经常提示「是否允许通过 audit2allow 生成模块」——仅在理解风险后再采用。
可执行文件与目录位置
放在用户下载目录下的 AppImage 可能带 user_home_t 等标签,部分操作会被策略限制。实测中更稳妥的做法包括:把二进制放到 /opt 或 /usr/local/bin 等常规路径,并用 semanage fcontext 与 restorecon 恢复预期标签;或直接使用打包规范较好的 RPM。具体标签名以你系统上的 ls -Z /path/to/file 为准,不要照抄网络上的单条 chcon,以免大版本升级后失效。
与 TUN / 权能相关
启用 TUN 往往涉及创建 /dev/net/tun、改路由或 CAP_NET_ADMIN。在 SELinux 开启时,若内核或策略对未域化的用户进程限制较严,日志里可能出现与 tun_tap_device 或网络相关权能有关的拒绝项。此时应结合客户端是否提供「以 root 辅助进程提权」「安装为系统服务」等官方能力,而不是简单关闭整个安全模块。若你同时使用 NetworkManager 管理的 WireGuard 或第三方 VPN,注意避免两个栈争抢默认路由,可先停一侧再验证。
firewalld:入站与局域网代理
默认情况下,firewalld 对入站连接较严格:即使 Clash Verge 已在 0.0.0.0 上监听混合端口,同网段设备发起的 TCP 连接仍可能被防火墙丢弃,表现为手机 Wi‑Fi 已连、代理地址填对,却超时或立即拒绝。这与「本机回环能通、外网进不来」的症状一致。
放行代理端口(示例)
先在客户端确认 HTTP / SOCKS / mixed-port 实际数值(勿假设一定是 7890)。假设混合端口为 7890,且当前活动区域为 public(用 firewall-cmd --get-active-zones 查看),可执行:
sudo firewall-cmd --permanent --add-port=7890/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
若仅在可信家庭网络使用,也可考虑把有线或 Wi‑Fi 接口划入 home 区域并配合该区域策略,但不建议在公共网络把接口盲目设为 trusted。多端口场景按实际监听结果逐项添加;改完后用手机浏览器访问 http://电脑局域网IP:端口 做最小验证(以客户端是否提供简易状态页为准,勿暴露管理接口到公网)。
与 Allow LAN、绑定地址的关系
客户端内需同时打开 Allow LAN(或等价选项),并把监听地址设为 0.0.0.0 而非仅 127.0.0.1。系统防火墙放行后,仍要排除路由器 AP 隔离、访客网络与网段不一致等问题;更完整的跨平台清单见 《Clash 开启局域网代理后手机仍上不了网?》,本文在 Fedora 上把 firewalld 作为与 Windows Defender 同级的一站。
推荐验证顺序(实测可复现)
- 本机回环:在电脑上用浏览器验证代理与节点出口,确认配置本身可用。
- 监听地址:使用
ss -tlnp | grep -E '7890|mixed'(端口换成你的实际值)确认进程监听在0.0.0.0或期望地址。 - 防火墙:
firewall-cmd --list-all核对端口与区域;必要时暂时对单接口测试(仅在可信环境)。 - SELinux:若仍异常,回到审计日志查 AVC,按提示调整文件位置或策略,避免先关防火墙再关 SELinux 的「双关」习惯。
- 局域网设备:最后用手机在同一网段访问代理端口,再排查 DNS 与策略规则。
常驻与开机:仍可配合 systemd
Fedora 同样使用 systemd。若你希望登录后自动拉起图形客户端,可在「启动应用程序」里添加与手动启动相同的命令,或参考前述 Ubuntu 文中的用户级单元示例,把 ExecStart 换成你在本机上的 AppImage 或 /usr/bin 路径。注意用户单元依赖图形会话,未登录桌面时通常不会运行;这与 Ubuntu 一文的结论一致。
常见问题速查
只有局域网不通
优先查 firewalld 入站与 Allow LAN、绑定地址;再查路由与 AP 隔离。此类问题很少是订阅本身损坏。
TUN 打不开或一开就断
对照 SELinux 日志与其它 VPN 是否冲突;必要时先只用系统代理模式稳定使用,再逐项打开 TUN。深度说明仍以 TUN 专文 为准。
系统大版本升级后异常
Fedora 半年一版,策略与防火墙默认区域可能变化。升级后建议复查 firewall-cmd --list-all、客户端版本与 AppImage 是否需重新下载。
合规提示:请在你所在地法律允许的范围内使用代理工具;本文仅作技术说明,不提供任何具体线路或服务。
更系统的安装与路由概念可在本站 教程文档 中扩展阅读。把 Fedora 当作主力桌面时,花一点时间建立「审计 → 防火墙 → 客户端」的固定排查顺序,比反复重装客户端更能节省时间。
小结
在 Fedora / RHEL 系环境使用 Clash Verge,除了导入订阅与打开系统代理,还应把 SELinux 与 firewalld 纳入常态检查:SELinux 侧以审计日志为准决定文件位置与策略;firewalld 侧为局域网代理显式放行 TCP 端口并与 Allow LAN、绑定地址联动。与 Ubuntu 教程并列阅读时,你会得到「包管理与自启动」+「企业发行版安全栈」两套拼图。
成熟图形客户端在规则与日志可读性上往往优于临时脚本;若你还在对比各平台客户端或准备从其它发行版迁移,不妨通过本站渠道获取当前系统对应构建并完成首次配置。相比零散方案,统一的 Clash 生态在稳定性与易用性上通常更省心。→ 立即免费下载 Clash,开启流畅上网新体验
想跳过版本筛选?从本站 下载页 选择 Linux 构建,按本文顺序处理 SELinux 与防火墙后再导入订阅;内核与客户端更新可在应用内检查。