全局配置

全局配置定义了 代理端口、允许局域网、运行模式、日志级别、外部控制器、外部用户界面、身份验证和实验性功能等

代理端口

端口是计算机或路由交换机内部的一部分,计算机按照 INTERNET 传输层 TCP/IP 协议进行通信,不同的协议对应不同的端口
http(s)代理端口
port: 7890
socks4/4a/5 代理端口
socks-port: 7891
混合代理端口 http(s)+socks
mixed-port: 7892
redir端口仅限Linux以及MacOS适用,tproxy端口仅限linux适用 (Android设备属于Linux设备)
redirect 透明代理端口,仅能代理TCP流量
redir-port: 7893
tproxy 透明代理端口,可以代理TCP以及UDP流量
tproxy-port: 7894

允许局域网

允许其他设备经过clash的代理端口访问互联网
可选值 true/false
allow-lan: true
绑定IP,仅允许某个IP访问代理端口
"*" 绑定所有IP地址,默认值,不填写此项则绑定全部
192.168.31.31: 绑定单个IPV4地址
"[aaaa::a8aa:ff:fe09:57d8]": 绑定单个IPV6地址
bind-address: "*"
http(s) 和 socks 代理的用户验证
authentication:
- "user1:pass1"
- "user2:pass2"

运行模式

rule(规则) / global(全局) / direct(直连)
此项拥有默认值,默认为规则模式
mode: rule

日志级别

clash内核输出日志的等级,仅在控制台和控制页面输出
log-level: info
silent 静默,不输出
error 仅输出发生错误至无法使用的日志
warning 输出发生错误但不影响运行的日志,以及error级别内容
info 输出一般运行的内容,以及error和warning级别的日志
debug 尽可能的输出运行中所有的信息

IPV6

是否允许内核接受ipv6流量
可选值 true/false,默认为false
ipv6: true

进程匹配模式

控制是否让clash去匹配进程
always 开启,强制匹配所有进程
strict 默认,由 clash 判断是否开启
off 不匹配进程,推荐在路由器上使用此模式
find-process-mode: strict

外部控制(API)

外部控制器,可以使用 RESTful API 来控制你的 clash 内核
API 监听地址,你可以将127.0.0.1修改为0.0.0.0来监听所有IP
external-controller: 127.0.0.1:9090
HTTPS-API 监听地址,需要配置 tls 部分配置文件
external-controller-tls: 127.0.0.1:9443
API 的访问密钥
secret: ""

外部用户界面

可以将静态网页资源(比如clash-dashboard)运行在 clash API,路径为 API地址/ui
可以为绝对路径,或者clash工作目录的相对路径
external-ui: dashboard

缓存

在clash官方中,profile应为扩展配置,但在clash.meta,仅作为缓存项使用
profile:
store-selected: true
# 储存 API 对策略组的选择,以供下次启动时使用
store-fake-ip: true
# 储存fakeip映射表,域名再次发生连接时,使用原有映射地址

出站接口

clash的流量出站接口
interface-name: en0

路由标记

为Linux下的出站连接提供默认流量标记
routing-mark: 6666

TLS

目前仅用于API的https
tls:
certificate: string # 证书 PEM 格式,或者 证书的路径
private-key: string # 证书对应的私钥 PEM 格式,或者私钥路径

全局客户端指纹

全局 TLS 指纹,优先低于 proxy 内的 client-fingerprint。
目前支持开启 TLS 传输的 TCP/grpc/WS/HTTP ,支持协议有 VLESS,Vmess 和 trojan.
global-client-fingerprint: chrome
可选:"chrome", "firefox", "safari", "ios", ,"android", "edge", "360"," qq", "random"
若选择"random", 则按照真实世界数据按概率生成一个现代浏览器指纹。

自定GEO下载地址

geox-url:
geoip: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat"
geosite: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat"
mmdb: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/country.mmdb"

实验性

完整示例

# port: 7890
# socks-port: 7891
mixed-port: 10801
# redir-port: 7892
# tproxy-port: 7893
allow-lan: true
bind-address: "*"
find-process-mode: strict
global-client-fingerprint: chrome
# routing-mark:6666
ipv6: true
mode: rule
log-level: debug
# interface-name: en0
external-controller: 0.0.0.0:9093
external-controller-tls: 0.0.0.0:9443
# external-ui: dashboard
geox-url:
geoip: "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat"
geosite: "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat"
mmdb: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country.mmdb"
tls:
certificate: string # 证书 PEM 格式,或者 证书的路径
private-key: string # 证书对应的私钥 PEM 格式,或者私钥路径
custom-certifactes:
- |
-----BEGIN CERTIFICATE-----
format/pem...
-----END CERTIFICATE-----
experimental:
profile:
store-selected: false
store-fake-ip: true