该项目不再维护, 请使用 clashtui 替代。
language: English (out of date) | 中文
- 我一般有多个机场链接, 因为有些机场并不能保证 24 小时能上网。所以喜欢将多个机场写在一个配置文件, 方便切换。
- 可以用自己的分流规则。这样做会更加安全。再整个黑白名单模式切换。
- 黑名单模式好处是省流量, 安全 (不需要走代理的网站不走代理)。坏处是遇到不匹配的网站要切换到白名单模式。
- 白名单模式的好处是规则如果没有匹配到该网站时也可以访问, 不用切换模式。坏处是不省流量, 可以不走代理的网站走了代理, 不安全。
- 自己写的配置一般会有依赖的网络资源 (比如:
url
字段) 时, 所以可能会出现这种情况:
我根据自己平时的使用, 开发了这个软件实现了上述的功能和解决了上述的问题。如果你使用 clash 的习惯和我相同, 这个软件应该适合你。
- 通过自身代理来更新配置而不是直连。
- 可定义配置模块来生成 Clash 配置。对于有多个订阅链接的用户可以将所有订阅合并到一个配置文件, 而且订阅之间不混乱。
- 可自定义后端地址将订阅链接转换为 Clash 配置。
- 小巧高效。平时只需运行一个 Clash Server 在后台。ClashAuto 要用时再打开即可。
- Windows
- Linux
- 从 release 下载软件包 (免安装)。
- 双击运行
clashauto.bat
。 - 选择
install
后, Windows 会安装一个开机启动的 clash 服务。 - 选择
test_config
, 让 clash 下载所需要的文件, 比如:Country.mmdb
。
手动允许 clash.exe
程序通过防火墙。(如果客户端可以访问 clash 服务, 但是不能访问外网的情况下。)
如果只有一个机场 (有两种方式):
- 在
data/profiles
目录下新建一个后缀为_url
的文件, 将机场链接放入其中。然后更新并选择这个配置即可。 - 将机场链接放入
data/tpl/proxy_provider_urls
中, 然后使用create_yaml
的tpl_basic_single_pp.yaml
模板创建 clash 配置文件。接下来更新并选择生成的配置即可。
如果有两个以上的机场:
- 将机场链接放入
data/tpl/proxy_provider_urls
中, 然后使用create_yaml
的tpl_basic_multi_pp.yaml
模板创建 clash 配置文件。接下来更新并选择生成的配置即可。
- 如果导入机场链接的方式是, 在
data/profiles
目录下新建一个后缀为_url
的文件的方式的, 更新并选择该配置文件即可。 - 如果导入机场链接的方式是使用模板的, 选择
update_final_config
选项即可。
在浏览器打开 http://127.0.0.1:9090/ui
。(建议固定该标签页, 这样每次打开浏览器时会自动打开该标签页。)
假设使用模板生成的配置:
- 如果只是临时访问该网站, 则可以在
yacd
中的Entry-RuleMode
选择Entry
(确保旧链接已经断开)。访问完之后, 记得切回原来的选项。 - 如果是经常要访问该网站, 则可以在模板中为该网站添加 clash 分流规则 (一般使用
DOMAIN-SUFFIX, DOMAIN, DOMAIN-KEYWORD
即可)。然后使用该模板重新生成的配置。
- clashauto.bat: 启动 Windows 平台的 ClashAuto
- clashauto: 启动 Linux 平台的 ClashAuto
- data: 放置用户的数据。
- config.ini: ClashAuto 的配置。
- profiles: 用于放置 profile 文件。
- basic_clash_config.yaml: 用于配置 clash 的基础配置。修改该文件后, 记得重启 clashauto.bat
- tpl: 用于根据 Clash 模板配置文件生成新的配置文件。
- proxy_provider_urls: 放置有 proxies 字段的 Clash 配置。
- .yaml 文件: Clash 模板配置文件
- tpl_basic_single_pp.yaml: 如果只有一个 provider, 可以使用此模板。
- tpl_basic_multi_pp.yaml: 如果有多个 provider, 可以使用此模板。
- final_clash_config.yaml: 通过 basic_clash_config 和 profile 文件合并后配置文件, clash 是用这个配置文件启动的。
- clash_config: 是 clash 的配置目录。
双击运行 clashauto.bat
后, 会有如下选项:
-
update_final_config: 表示更新 final_clash_config.yaml 这个文件依赖的资源。
-
update_profile
表示更新 profile 文件依赖的资源。
可以用一个后缀是
_url
的文件放置 profile 的链接。它会将链接的内容保存到将_url
为.yaml
的文件。同时会更新该 profile 依赖的资源。如果链接的内容不是一个 clash 配置文件, 可以通过一些订阅转换网站转换成 clash 的配置。比如: https://acl4ssr-sub.github.io/
比如:
profiles/example_url
<your clash config url>
同时也支持
vmess://, trojan://
等开头的链接并且可以将它们一起放在一个 url 文件。比如:profiles/example_url
<your clash config url> vmess://... trojan://...
选择该选项后会将 url 的内容保存到 profiles/example.yaml, 且更新该配置依赖的资源。更新成功后, 用户在 select_profile 选项中选择该配置即可。
-
select_profile: 表示选择一个
profile
和basic_clash_config.yaml
合并到final_clash_config.yaml
。同时重启 clash 服务使配置文件生效。 -
restart/stop/config/install/uninstall clash_service: 都是用于操作 clash 服务。
-
test_config: 测试
final_clash_config.yaml
配置文件。 -
create_yaml: 用于根据 Clash 模板配置文件生成新的配置文件。
-
tun_mode: 启用/关闭 tun 模式
-
uwp_loopback: 允许应用程序在本地回环地址(loopback address)上进行网络通信。为了增强应用程序的安全性,Microsoft 在默认情况下禁用了微软商店的应用在本地回环地址上进行网络通信的功能。
Clash Auto 会使用自身作为代理来更新 clash 配置文件的依赖和更新 clash 的配置文件。
sc_host: 表示订阅转换的后端地址。在转换 url 时, 如果发现 url 的内容不是 Clash 配置, 则使用订阅转换来转换该 url。 tun_mode: 表示启动/关闭 tun 模式。
目的: 如何有多个有 proxies 字段的配置合并在一个配置文件中使用时, 一般会为每个配置文件写一个 proxy-provider, Select Group 和 Auto Group。该功能是为每个配置每个文件的生成这些组。
比如:
tpl_basic.yaml
proxy-groups:
- name: "Entry"
type: select
proxies:
- AllAuto
- AllSelect
# 使用名为 "Auto" 组下的所有组
- <Auto>
url: http://www.gstatic.com/generate_204
interval: 300
- name: "AllSelect"
type: select
use:
# 使用名为 "provider" 下的 providers
- <provider>
url: http://www.gstatic.com/generate_204
interval: 300
- name: "AllAuto"
type: url-test
proxies:
- <Auto>
url: http://www.gstatic.com/generate_204
interval: 30
# 为模板名为 "provider" 下的 providres 生成组
- name: "Select"
tpl_param:
providers: ["provider"]
type: select
use: null
url: http://www.gstatic.com/generate_204
interval: 300
- name: "Auto"
tpl_param:
providers: ["provider"]
type: url-test
use: null
url: http://www.gstatic.com/generate_204
interval: 300
- name: "RuleMode"
type: select
proxies:
- DIRECT
- Entry
- name: "RuleMode-LastMatch"
type: select
proxies:
- Entry
- DIRECT
proxy-providers:
# 为所有 url 生成 providers
provider:
tpl_param:
type: http
url: null
path: null
interval: 3600
health-check:
enable: true
interval: 600
url: http://www.gstatic.com/generate_204
proxy_provider_urls (如果这些 url 的内容如果没有 proxies 的内容, 会使用 SubConverter 来转换。)
https://example1.com
https://example2.com
生成的 tpl_basic.yaml
proxy-groups:
- name: Entry
type: select
proxies:
- AllAuto
- AllSelect
- Auto-provider0
- Auto-provider1
url: http://www.gstatic.com/generate_204
interval: 300
- name: AllSelect
type: select
use:
- provider0
- provider1
url: http://www.gstatic.com/generate_204
interval: 300
- name: AllAuto
type: url-test
proxies:
- Auto-provider0
- Auto-provider1
url: http://www.gstatic.com/generate_204
interval: 30
- name: Select-provider0
type: select
use:
- provider0
url: http://www.gstatic.com/generate_204
interval: 300
- name: Select-provider1
type: select
use:
- provider1
url: http://www.gstatic.com/generate_204
interval: 300
- name: Auto-provider0
type: url-test
use:
- provider0
url: http://www.gstatic.com/generate_204
interval: 300
- name: Auto-provider1
type: url-test
use:
- provider1
url: http://www.gstatic.com/generate_204
interval: 300
- name: RuleMode
type: select
proxies:
- DIRECT
- Entry
- name: RuleMode-LastMatch
type: select
proxies:
- Entry
- DIRECT
proxy-providers:
provider0:
type: http
url:
https://example1.com
path: proxy-providers/tpl/provider0.yaml
interval: 3600
health-check:
enable: true
interval: 600
url: http://www.gstatic.com/generate_204
provider1:
type: http
url:
https://example1.com
path: proxy-providers/tpl/provider1.yaml
interval: 3600
health-check:
enable: true
interval: 600
url: http://www.gstatic.com/generate_204
会将合并后的文件复制到 profiles 目录, 然后更新并选择这个 profile 即可。
从 Release 下载软件, 解压软件压缩包, 然后将之前的 data 的文件 (选择自己需要的) 复制到安装目录下即可。
- 安装 python, python-pip
- pip install ruamel.yaml requests
比如:
-
安装 Clash premium。并确保有 clash server unit (
systemctl cat clash@
可以查看)。比如 ArchLinux:yay -S clash-premium-bin
安装之后,
/usr/lib/systemd/system/clash@.server
内容如下:[Unit] Description=A rule based proxy in Go for %i. After=network.target [Service] Type=exec User=%i Restart=on-abort ExecStart=/usr/bin/clash [Install] WantedBy=multi-user.target
-
运行
clashauto
, 选择 config_clash_server。修改:
[Service] # 删除原先的 ExecStart ExecStart= # 修改 `-d, -f` 参数。 ExecStart=/usr/bin/clash -d /opt/clash-auto/clash_config -f /opt/clash-auto/final_clash_config.yaml
或者, 创建文件
/etc/systemd/system/clash@root.service.d/override.conf
:[Service] ExecStart= ExecStart=/usr/bin/clash -d /opt/clash-auto/clash_config -f /opt/clash-auto/final_clash_config.yaml
和 Windows 平台差不多。