1 个不稳定版本

0.1.0 2023年12月29日

#282 in 配置

MIT 许可证

1MB
3K SLoC

ClashTui

Demo

语言: 英文 | 中文

目录

支持的平台

  • Windows
  • Linux

目标受众

  • 熟悉 clash 配置
  • 偏好 TUI 软件

安装 Mihomo 服务(启用调优模式)

Linux

例如: ArchLinux

# cat /etc/pacman.d/hooks/mihomo.hook (Systems without hooks may need manual setcap or use mihomo@root service)
[Trigger]
Operation = Install
Operation = Upgrade
Type = Path
Target = usr/bin/mihomo

[Action]
When = PostTransaction
Exec = /usr/bin/setcap 'cap_net_admin,cap_net_bind_service=+ep' /usr/bin/mihomo
# ---

paru -S mihomo

# systemctl edit mihomo
[Service]
# Remove the original ExecStart
ExecStart=
ExecStart=/usr/bin/mihomo -d /srv/mihomo -f /srv/mihomo/config.yaml
# ---

mkdir /srv/mihomo
cd /srv/mihomo
chown -R mihomo:mihomo /srv/mihomo
usermod -a -G mihomo <user>
groups <user>       # Check if the user is in the mihomo group
chmod g+w /srv/mihomo               # Required for clashtui to create files.
chmod g+w /srv/mihomo/config.yaml   # Required for clashtui to have write permissions.

systemctl enable mihomo  # Enable at boot
systemctl restart mihomo  # Start the service

建议使用功能正常的 mihomo 配置来测试 mihomo 服务以验证其成功。检查是否有缺失的 meta-rules-dat 文件。

Windows

安装 scoop(可选)

irm get.scoop.sh -outfile 'install.ps1'
.\install.ps1 -ScoopDir 'D:\Scoop' -ScoopGlobalDir 'D:\ScoopGlobal' -NoProxy    # I chose to install it in the D drive.

例如

  • 使用 scoop install mihomo 安装 mihomo。或者,下载适合您系统的 mihomo 并将其放置在 D:/PortableProgramFiles/mihomo/mihomo.exe
  • 创建目录 D:/MyAppData/mihomo 和文件 D:/MyAppData/mihomo/config.yaml
  • 安装 clashtui 后执行的操作

如果 mihomo 客户端(例如,metacubexd)可以访问但需要代理访问某些网站

  • 对于通过 Scoop 安装的 mihomo:允许 D:\Scoop\apps\mihomo\1.17.0\mihomo.exe 而不是当前路径。更新 mihomo 后,重复此过程。
  • 对于手动下载的 mihomo 安装:允许 D:/PortableProgramFiles/mihomo/mihomo.exe

安装 clashtui

Linux

例如:ArchLinux

# Check for the latest [PKGBUILD](https://github.com/JohanChane/clashtui/blob/main/PKGBUILD).
paru -S clashtui        # For other Linux distributions, manually download and place clashtui in the PATH.
clashtui                # Initial run generates default files in ~/.config/clashtui.

# nvim ~/.config/clashtui/config.toml
[default]
# Parameters correspond to the command <clash_core_path> -d <clash_cfg_dir> -f <clash_cfg_path>
clash_core_path = "mihomo"
clash_cfg_dir = "/srv/mihomo"
clash_cfg_path = "/srv/mihomo/config.yaml"
clash_srv_name = "mihomo"       # systemctl {restart | stop} <clash_srv_name>
# ---

如果您有 cargo,您可以使用 cargo install clashtui 安装 clashtui。

Windows

手动下载并安装 clashtui 或通过以下命令安装:scoop bucket add extras; scoop install clashtui。之后,文件 clashtui.json 将被添加到 scoop extras 仓库。如果没有添加到 scoop extras,可以将 clashtui.json 文件放在 D:\Scoop\buckets\extras\bucket\clashtui.json,以便 scoop install clashtui 正常工作。

首次运行 clashtui 会在 %APPDATA%/clashtui 生成默认文件。

修改 %APPDATA%/clashtui/config.toml

[default]
# Parameters correspond to the command <clash_core_path> -d <clash_cfg_dir> -f <clash_cfg_path>
#clash_core_path = "D:/PortableProgramFiles/mihomo/mihomo.exe"
clash_core_path = "D:/Scoop/shims/mihomo.exe"       # `Get-Command mihomo`
clash_cfg_dir = "D:/MyAppData/mihomo"
clash_cfg_path = "D:/MyAppData/mihomo/config.yaml"
clash_srv_name = "mihomo"       # nssm {install | remove | restart | stop | edit} <clash_srv_name>

编辑后,将 clashtui 和 nssm 添加到 PATH

  • 对于通过 scoop 安装的 clashtui:scoop install nssm
  • 对于手动下载的 clashtui:将 D:/PortableProgramFiles/clashtui 添加到 PATH。

运行 clashtui。在 ClashSrvCtl 中选择 InstallSrv。程序将根据配置的设置安装基于 mihomo 的核心服务。该服务将在启动时自动启动。安装后,启动核心服务,并输入 R 继续操作。

配置 basic_clash_config.yaml

手动配置 {~/.config | %APPDATA%}/clashtui/basic_clash_config.yaml。此文件中的某些基本字段合并到 clash_cfg_path 中。有关配置 tun 模式的说明,请参阅 此处

启动

Windows

选择以下方法之一

  • clashtui 命令添加到 PATH。在终端中输入 clashtui,按下 win + r,或在文件资源管理器的地址栏中。
  • 双击 clashtui

clashtui 使用 crosstermratatui 进行实现。为了在 Windows 上获得最佳使用效果,请考虑使用 Windows Terminal。将 Windows Terminal 的命令启动方法设置为使用 Windows Terminal 来执行 clashtui 命令。

便携模式

在 clashtui 程序目录中创建一个名为 data 的文件夹。此文件夹将数据存储在 data 中,而不是在 ~/.config/clashtui%APPDATA%/clashtui 中。

用法

? 显示帮助。

  • 在配置文件区域,按 i 输入名称(尝试避免使用后缀)和 Uri。
  • U 更新配置文件的依赖项。它默认使用其代理进行更新。如果使用 tun 模式或系统代理且没有可用节点,更新前请停止 mihomo 服务(按 S)。
  • Enter 选择配置文件。
  • 在浏览器中输入 http://127.0.0.1:9090/ui

如果 Windows 平台无法打开 http://127.0.0.1:9090/ui

  • ClashSrvCtl 中选择 TestClashConfig 以检查语法和自动下载的地理文件。
  • 按下 L 查看日志。(按下 H 打开 clashtui 配置目录。按下 G 打开 clash 配置目录。检查相关文件是否正确。)
  • 使用 netstat -aon | findstr "9090" 检查端口是否存在。如果不存在,考虑使用与 mihomo 兼容的版本。
  • 如果可以打开但不能访问需要代理的网站,请允许 mihomo 通过防火墙。

支持导入文件配置。输入文件路径作为 Uri

使用配置模板

  • 按下 t 切换到模板。
  • 选择 template_proxy_providers,按下 e 编辑,并根据需要输入订阅链接(无需修改)。

例如

https://....
https://....

# Supports comments
#https://....
  • 按下 EnterProfile 中生成配置。按下 p 切换回配置文件,再按下 Enter 选择配置。

下载的 clashtui 版本通常包含模板。如果没有,最新的模板可以在 这里 获取。

高级用法

配置打开文件和目录的命令

./data/config.toml 中进行配置。%s 将自动替换为所选文件的路径。

对于 Linux

[default]
edit_cmd = "alacritty -e nvim %s"
opendir_cmd = "alacritty -e ranger %s"

对于 Windows

[default]
edit_cmd = "notepad %s"

自定义配置模板

模板功能是 clashtui 的独特之处。请参考提供的示例模板以获取使用说明。

定义重复使用的字段

pp: &pp {interval: 3600, intehealth-check: {enable: true, url: https://www.gstatic.com/generate_204, interval: 300}}
delay_test: &delay_test {url: https://www.gstatic.com/generate_204, interval: 300}

template_proxy_providers 中的每个链接生成一个 proxy-provider

proxy-providers:
  provider:
    tpl_param:
    type: http    # The type field should be placed here, not in pp, as it's used for updating resources.
    <<: *pp

为每个代理提供者生成一个 Select, Auto proxy-group

proxy-groups:
  - name: "Select"
    tpl_param:
      providers: ["provider"]
    type: select

  - name: "Auto"
    tpl_param:
      providers: ["provider"]
    type: url-test
    <<: *delay_test

使用 Select, Auto 代理组

proxy-groups:
  - name: "Entry"
    type: select
    proxies:
      - <Auto>
      - <Select>

clashtui 的文件结构

  • basic_clash_config.yaml:包含 mihomo 配置的基本字段,将被合并到 clash_cfg_path 中。
  • config.yaml:clashtui 的配置文件。

项目免责声明

本项目仅用于教育和研究目的。作者不保证本项目代码的准确性、完整性和适用性。用户应自行承担使用代码的风险。

作者不对因使用本项目代码而造成的任何直接或间接损失负责,包括但不限于数据丢失、计算机损坏或业务中断。

在使用本项目代码之前,用户应充分了解其功能及其潜在风险。如有必要,请寻求专业意见。作者对使用本项目代码产生的任何后果概不负责。

在使用本项目代码时,请遵守相关法律法规。不要将其用于非法活动或侵犯他人权利的行为。

作者保留对本免责声明的解释权,并可随时修改和更新。

依赖项

~12–24MB
~372K SLoC