Clash Verge TUN 模式安装失败排查记录

Clash Verge TUN 模式故障排查报告

问题现象

  • Clash Verge 开启 TUN 模式时报错:install service failed(退出码 1)
  • 界面提示服务安装失败,TUN 模式无法启用

环境信息

项目 信息
系统 Ubuntu 25.10 (Questing Quokka)
内核 6.17.0-14-generic
Clash Verge 版本 2.4.5 (deb 安装)
systemd 版本 257
用户权限 sudo 组成员

排查步骤

1. 检查系统 TUN 支持

1
2
3
ls -l /dev/net/tun
# 结果:crw-rw-rw- 1 root root 10, 200 Mar 7 20:45 /dev/net/tun
# 结论:TUN 设备正常

2. 查看应用日志

日志路径:~/.local/share/io.github.clash-verge-rev.clash-verge-rev/logs/latest.log

关键日志:

1
2
3
4
[2026-03-08 12:59:44.847] INFO [Service] 需要安装服务,执行安装流程
[2026-03-08 12:59:44.847] INFO [Service] install service
[2026-03-08 12:59:54.893] WARN [Service] pkexec failed with code 134, falling back to sudo
[2026-03-08 12:59:54.910] INFO [Service] install status code:1

结论:GUI 通过 pkexec 调用服务安装器失败(退出码 134),回退到 sudo 也失败。

3. 检查崩溃报告

路径:/var/crash/_usr_bin_clash-verge-service-install.0.crash

1
2
Signal: 6
SignalName: SIGABRT

结论clash-verge-service-installpkexec 环境下触发了 panic(SIGABRT)。

4. 手动测试服务安装

1
2
3
4
5
6
7
# pkexec 方式
pkexec /usr/bin/sh -c /usr/bin/clash-verge-service-install
# 结果:成功,退出码 0

# sudo 方式
sudo clash-verge-service-install
# 结果:成功,退出码 0

结论:手动执行均可成功,问题出在 GUI 调用流程。

5. 验证服务状态

1
2
systemctl status clash-verge-service
# 结果:active (running),enabled

根因分析

Clash Verge 2.4.5 版本在 Ubuntu 25.10 环境下,GUI 调用 pkexec 执行服务安装时存在兼容性问题:

  1. clash-verge-service-install 是 Rust 编写的二进制程序
  2. 在 GUI 进程通过 pkexec 调用时,程序内部触发 panic(退出码 134 = SIGABRT)
  3. 随后回退到 sudo 方式,但 GUI 环境下无法交互输入密码,导致失败

这是 Clash Verge 2.4.5 版本的一个已知问题,与 polkit/pkexec 的非交互式调用场景不兼容。

解决方案

方案一:手动安装服务(推荐)

1
sudo clash-verge-service-install

或完整重装:

1
2
sudo clash-verge-service-uninstall
sudo clash-verge-service-install

方案二:一行命令修复

1
echo "你的密码" | sudo -S clash-verge-service-install

方案三:使用 pkexec

1
pkexec /usr/bin/sh -c /usr/bin/clash-verge-service-install

验证修复

1
2
3
4
5
6
7
8
9
# 检查服务运行状态
systemctl status clash-verge-service

# 检查服务是否开机自启
systemctl is-enabled clash-verge-service

# 预期输出
# Active: active (running)
# Enabled: enabled

后续建议

  1. 升级版本:关注 Clash Verge Rev 后续版本更新,该问题可能在后续版本修复

  2. 避免重复触发:服务已安装后,不要再点击”安装服务”按钮

  3. 快速修复脚本(可选):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 创建修复脚本
    cat << 'EOF' | sudo tee /usr/local/bin/fix-clash-verge-service
    #!/bin/bash
    clash-verge-service-uninstall 2>/dev/null
    clash-verge-service-install
    systemctl status clash-verge-service --no-pager
    EOF

    sudo chmod +x /usr/local/bin/fix-clash-verge-service

    之后遇到问题时执行:sudo fix-clash-verge-service

  4. 检查服务状态

    1
    systemctl is-active clash-verge-service && echo "服务正常" || sudo clash-verge-service-install

相关文件路径

文件 路径
应用日志 ~/.local/share/io.github.clash-verge-rev.clash-verge-rev/logs/
配置文件 ~/.local/share/io.github.clash-verge-rev.clash-verge-rev/verge.yaml
服务文件 /etc/systemd/system/clash-verge-service.service
安装器 /usr/bin/clash-verge-service-install
卸载器 /usr/bin/clash-verge-service-uninstall
服务程序 /usr/bin/clash-verge-service

排查日期:2026-03-08
排查人员:Sisyphus (AI Assistant)